Skip to content

Commit de2c2db

Browse files
committed
updates
1 parent 398af69 commit de2c2db

File tree

7 files changed

+44
-7
lines changed

7 files changed

+44
-7
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@ package-lock.json
1414
.packages
1515
pubspec.lock
1616
.antlr
17-
libdart.dylib
17+
*.so
18+
*.dll
19+
*.dylib
1820
doc

.vscode/settings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+
}

tree_sitter/Makefile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1+
ifeq ($(shell uname),Darwin)
2+
SOEXT = dylib
3+
else
4+
SOEXT = so
5+
endif
6+
17
dart: 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

413
tree-sitter:
514
cd tree-sitter && make

tree_sitter/example/tree_sitter.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
import 'dart:io';
2+
3+
import 'package:dylib/dylib.dart';
14
import 'package:tree_sitter/tree_sitter.dart';
25

36
void 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);

tree_sitter/lib/tree_sitter.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ library;
66
import 'dart:convert';
77
import 'dart:ffi';
88
import 'dart:ffi' as ffi;
9+
import 'dart:io';
910

11+
import 'package:dylib/dylib.dart';
1012
import 'package:ffi/ffi.dart';
1113
import '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
2224
final 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

tree_sitter/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ environment:
77
sdk: ">=3.0.0 <3.2.0"
88

99
dependencies:
10+
dylib: ^0.3.3
1011
ffi: ^2.0.1
1112
path: ^1.8.3
1213

tree_sitter/test/tree_sitter_test.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
import 'dart:io';
2+
3+
import 'package:dylib/dylib.dart';
14
import 'package:test/test.dart';
25
import 'package:tree_sitter/tree_sitter.dart';
36

47
void 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);

0 commit comments

Comments
 (0)