File tree 8 files changed +138
-0
lines changed
8 files changed +138
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " @ast-grep/lang-lua " : patch
3
+ ---
4
+
5
+ Add @ast-grep/lang-lua
Original file line number Diff line number Diff line change
1
+ # ast-grep napi language for lua
2
+
3
+ ## Installation
4
+
5
+ In a pnpm project, run:
6
+
7
+ ``` bash
8
+ pnpm install @ast-grep/lang-lua
9
+ pnpm install @ast-grep/napi
10
+ # install the tree-sitter-cli if no prebuild is available
11
+ pnpm install @tree-sitter/cli --save-dev
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ``` js
17
+ import lua from ' @ast-grep/lang-lua'
18
+ import { registerDynamicLanguage , parse } from ' @ast-grep/napi'
19
+
20
+ registerDynamicLanguage ({ lua })
21
+
22
+ const sg = parse (' lua' , ` your code` )
23
+ sg .root ().kind ()
24
+ ```
Original file line number Diff line number Diff line change
1
+ type LanguageRegistration = {
2
+ libraryPath : string
3
+ extensions : string [ ]
4
+ languageSymbol ?: string
5
+ metaVarChar ?: string
6
+ expandoChar ?: string
7
+ }
8
+
9
+ declare const registration : LanguageRegistration
10
+ export default registration
Original file line number Diff line number Diff line change
1
+ const path = require ( 'node:path' )
2
+ const libPath = path . join ( __dirname , 'parser.so' )
3
+
4
+ module . exports = {
5
+ libraryPath : libPath ,
6
+ extensions : [ 'lua' ] ,
7
+ languageSymbol : 'tree_sitter_lua' ,
8
+ expandoChar : '$' ,
9
+ }
Original file line number Diff line number Diff line change
1
+ const { setup } = require ( '@ast-grep/nursery' )
2
+ const assert = require ( 'node:assert' )
3
+ const languageRegistration = require ( './index' )
4
+
5
+ setup ( {
6
+ dirname : __dirname ,
7
+ name : 'lua' ,
8
+ treeSitterPackage : 'tree-sitter-lua' ,
9
+ languageRegistration,
10
+ testRunner : parse => {
11
+ const sg = parse ( 'print("Hello World")' )
12
+ const root = sg . root ( )
13
+ const node = root . find ( 'print($S)' )
14
+ assert . equal ( node . kind ( ) , 'function_call' )
15
+ } ,
16
+ } )
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " @ast-grep/lang-lua" ,
3
+ "version" : " 0.0.1" ,
4
+ "description" : " " ,
5
+ "main" : " index.js" ,
6
+ "scripts" : {
7
+ "build" : " tree-sitter build -o parser.so" ,
8
+ "source" : " node nursery.js source" ,
9
+ "prepublishOnly" : " node nursery.js source" ,
10
+ "postinstall" : " node postinstall.js" ,
11
+ "test" : " node nursery.js test"
12
+ },
13
+ "files" : [
14
+ " index.js" ,
15
+ " index.d.ts" ,
16
+ " type.d.ts" ,
17
+ " postinstall.js" ,
18
+ " src" ,
19
+ " prebuilds"
20
+ ],
21
+ "keywords" : [" ast-grep" ],
22
+ "author" : " " ,
23
+ "license" : " ISC" ,
24
+ "dependencies" : {
25
+ "@ast-grep/setup-lang" : " 0.0.3"
26
+ },
27
+ "peerDependencies" : {
28
+ "tree-sitter-cli" : " 0.24.6"
29
+ },
30
+ "peerDependenciesMeta" : {
31
+ "tree-sitter-cli" : {
32
+ "optional" : true
33
+ }
34
+ },
35
+ "devDependencies" : {
36
+ "@ast-grep/nursery" : " 0.0.2" ,
37
+ "tree-sitter-cli" : " 0.24.6" ,
38
+ "tree-sitter-lua" : " 2.1.3"
39
+ },
40
+ "publishConfig" : {
41
+ "access" : " public" ,
42
+ "registry" : " https://registry.npmjs.org/"
43
+ },
44
+ "pnpm" : {
45
+ "onlyBuiltDependencies" : [" @ast-grep/lang-lua" , " tree-sitter-cli" ]
46
+ }
47
+ }
Original file line number Diff line number Diff line change
1
+ const { postinstall } = require ( '@ast-grep/setup-lang' )
2
+ postinstall ( {
3
+ dirname : __dirname ,
4
+ } )
You can’t perform that action at this time.
0 commit comments