File tree 7 files changed +137
-0
lines changed
7 files changed +137
-0
lines changed Original file line number Diff line number Diff line change
1
+ # ast-grep napi language for php
2
+
3
+ ## Installation
4
+
5
+ In a pnpm project, run:
6
+
7
+ ``` bash
8
+ pnpm install @ast-grep/lang-php
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 php from ' @ast-grep/lang-php'
18
+ import { registerDynamicLanguage , parse } from ' @ast-grep/napi'
19
+
20
+ registerDynamicLanguage ({ php })
21
+
22
+ const sg = parse (' php' , ` 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 : [ 'php' ] ,
7
+ languageSymbol : 'tree_sitter_php' ,
8
+ expandoChar : '$' ,
9
+ }
Original file line number Diff line number Diff line change
1
+ const { setup } = require ( '@ast-grep/nursery' )
2
+ const languageRegistration = require ( './index' )
3
+
4
+ setup ( {
5
+ dirname : __dirname ,
6
+ name : 'php' ,
7
+ treeSitterPackage : 'tree-sitter-php' ,
8
+ languageRegistration,
9
+ testRunner : parse => {
10
+ // add test here
11
+ } ,
12
+ } )
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " @ast-grep/lang-php" ,
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-php" : " 0.23.12"
39
+ },
40
+ "publishConfig" : {
41
+ "access" : " public" ,
42
+ "registry" : " https://registry.npmjs.org/"
43
+ },
44
+ "pnpm" : {
45
+ "onlyBuiltDependencies" : [" @ast-grep/lang-php" , " 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