File tree Expand file tree Collapse file tree 7 files changed +44
-7
lines changed Expand file tree Collapse file tree 7 files changed +44
-7
lines changed Original file line number Diff line number Diff line change @@ -14,5 +14,7 @@ package-lock.json
1414.packages
1515pubspec.lock
1616.antlr
17- libdart.dylib
17+ * .so
18+ * .dll
19+ * .dylib
1820doc
Original file line number Diff line number Diff line change 1+ {
2+ "[dart]" : {
3+ "editor.formatOnPaste" : true ,
4+ "editor.formatOnSave" : true ,
5+ "editor.formatOnType" : true ,
6+ "editor.rulers" : [
7+ 80
8+ ],
9+ "editor.codeActionsOnSave" : {
10+ "source.organizeImports" : true ,
11+ "source.fixAll" : true
12+ }
13+ }
14+ }
Original file line number Diff line number Diff line change 1+ ifeq ($(shell uname) ,Darwin)
2+ SOEXT = dylib
3+ else
4+ SOEXT = so
5+ endif
6+
17dart : tree-sitter
2- clang -I src ../src/parser.c ../src/scanner.c tree-sitter/libtree-sitter.a --shared -o libdart.dylib
8+ clang -Isrc -Itree-sitter/lib/include ../src/parser.c ../src/scanner.c tree-sitter/libtree-sitter.a --shared -o libdart.$(SOEXT )
9+ cp tree-sitter/libtree-sitter.so .
10+ cp tree-sitter/libtree-sitter.dylib .
11+ cp tree-sitter/tree-sitter.dll .
312
413tree-sitter :
514 cd tree-sitter && make
Original file line number Diff line number Diff line change 1+ import 'dart:io' ;
2+
3+ import 'package:dylib/dylib.dart' ;
14import 'package:tree_sitter/tree_sitter.dart' ;
25
36void main () {
4- final parser =
5- Parser (sharedLibrary: 'libdart.dylib' , entryPoint: 'tree_sitter_dart' );
7+ final parser = Parser (
8+ sharedLibrary: resolveDylibPath ('dart' , path: Directory .current.path),
9+ entryPoint: 'tree_sitter_dart' );
610 final program = "class A {}" ;
711 final tree = parser.parse (program);
812 print (tree.root.child (0 ).namedChild (0 ).string);
Original file line number Diff line number Diff line change 66import 'dart:convert' ;
77import 'dart:ffi' ;
88import 'dart:ffi' as ffi;
9+ import 'dart:io' ;
910
11+ import 'package:dylib/dylib.dart' ;
1012import 'package:ffi/ffi.dart' ;
1113import 'package:tree_sitter/tree_sitter.dart' ;
1214
@@ -20,7 +22,8 @@ final treeSitterApi = TreeSitterConfig.instance.ffiApi;
2022
2123/// Configuration of the package to find the correct shared libraries
2224final class TreeSitterConfig {
23- static String _dylibLocation = 'tree-sitter/libtree-sitter.dylib' ;
25+ static String _dylibLocation =
26+ resolveDylibPath ('tree-sitter' , path: Directory .current.path);
2427 late final ffiApi = TreeSitter (DynamicLibrary .open (_dylibLocation));
2528
2629 /// Sets the path to find the tree sitter shared libraries
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ environment:
77 sdk : " >=3.0.0 <3.2.0"
88
99dependencies :
10+ dylib : ^0.3.3
1011 ffi : ^2.0.1
1112 path : ^1.8.3
1213
Original file line number Diff line number Diff line change 1+ import 'dart:io' ;
2+
3+ import 'package:dylib/dylib.dart' ;
14import 'package:test/test.dart' ;
25import 'package:tree_sitter/tree_sitter.dart' ;
36
47void main () {
58 test ('calculate' , () {
6- final parser =
7- Parser (sharedLibrary: 'libdart.dylib' , entryPoint: 'tree_sitter_dart' );
9+ final parser = Parser (
10+ sharedLibrary: resolveDylibPath ('dart' , path: Directory .current.path),
11+ entryPoint: 'tree_sitter_dart' );
812 final program = "class A {}" ;
913 final tree = parser.parse (program);
1014 print (tree.root.string);
You can’t perform that action at this time.
0 commit comments