add tree-sitter syntax highlighting via dart:ffi
Vendor libtree-sitter.so (v0.26.8, wasmtime 44.0 statically linked) and call its C API through dart:ffi. Grammar WASM files are loaded by tree-sitter's embedded wasmtime engine via ts_wasm_store_load_language. 48 grammars compiled with tree-sitter build --wasm, 48 highlight queries (42 from upstream repos, 6 written in-house for comment, erlang, gdscript, gitignore, hcl, hlsl, swift). SQLite grammar replaces full SQL (974K-line parser exhausted RAM at compile time). Removes wasm_run and wasm_run_flutter — they downloaded a 22 MB binary from GitHub at first launch, violating the no-network-on- default-launch-path policy. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
;;;
|
||||
|
||||
";" @punctuation.delimiter
|
||||
"," @punctuation.delimiter
|
||||
"." @punctuation.delimiter
|
||||
|
||||
"(" @punctuation.bracket
|
||||
")" @punctuation.bracket
|
||||
|
||||
[
|
||||
"||"
|
||||
"~" "&" "|" "<<" ">>"
|
||||
"+" "-" "*" "/" "%"
|
||||
"=" "==" "!=" "<>" ">" ">=" "<" "<="
|
||||
"->" "->>"
|
||||
] @operator
|
||||
|
||||
;;;
|
||||
|
||||
(signed_number) @number
|
||||
|
||||
(numeric_literal) @number
|
||||
(string_literal) @string
|
||||
(blob_literal) @string.special
|
||||
(identifier) @constant
|
||||
(bind_parameter) @variable.parameter
|
||||
(comment) @comment
|
||||
|
||||
;;;
|
||||
|
||||
(ABORT) @keyword
|
||||
(ACTION) @keyword
|
||||
(ADD) @keyword
|
||||
(AFTER) @keyword
|
||||
(ALL) @keyword
|
||||
(ALTER) @keyword
|
||||
(ALWAYS) @keyword
|
||||
(ANALYZE) @keyword
|
||||
(AND) @keyword
|
||||
(AS) @keyword
|
||||
(ASC) @keyword
|
||||
(ATTACH) @keyword
|
||||
(AUTOINCREMENT) @keyword
|
||||
(BEFORE) @keyword
|
||||
(BEGIN) @keyword
|
||||
(BETWEEN) @keyword
|
||||
(BY) @keyword
|
||||
(CASCADE) @keyword
|
||||
(CASE) @keyword
|
||||
(CAST) @keyword
|
||||
(CHECK) @keyword
|
||||
(COLLATE) @keyword
|
||||
(COLUMN) @keyword
|
||||
(COMMIT) @keyword
|
||||
(CONFLICT) @keyword
|
||||
(CONSTRAINT) @keyword
|
||||
(CREATE) @keyword
|
||||
(CROSS) @keyword
|
||||
(CURRENT) @keyword
|
||||
(CURRENT_DATE) @keyword
|
||||
(CURRENT_TIME) @keyword
|
||||
(CURRENT_TIMESTAMP) @keyword
|
||||
(DATABASE) @keyword
|
||||
(DEFAULT) @keyword
|
||||
(DEFERRABLE) @keyword
|
||||
(DEFERRED) @keyword
|
||||
(DELETE) @keyword
|
||||
(DESC) @keyword
|
||||
(DETACH) @keyword
|
||||
(DISTINCT) @keyword
|
||||
(DO) @keyword
|
||||
(DROP) @keyword
|
||||
(EACH) @keyword
|
||||
(ELSE) @keyword
|
||||
(END) @keyword
|
||||
(ESCAPE) @keyword
|
||||
(EXCEPT) @keyword
|
||||
(EXCLUDE) @keyword
|
||||
(EXCLUSIVE) @keyword
|
||||
(EXISTS) @keyword
|
||||
(EXPLAIN) @keyword
|
||||
(FAIL) @keyword
|
||||
(FALSE) @keyword
|
||||
(FILTER) @keyword
|
||||
(FIRST) @keyword
|
||||
(FOLLOWING) @keyword
|
||||
(FOR) @keyword
|
||||
(FOREIGN) @keyword
|
||||
(FROM) @keyword
|
||||
(GENERATED) @keyword
|
||||
(GLOB) @keyword
|
||||
(GROUP) @keyword
|
||||
(GROUPS) @keyword
|
||||
(HAVING) @keyword
|
||||
(IF) @keyword
|
||||
(IGNORE) @keyword
|
||||
(IMMEDIATE) @keyword
|
||||
(IN) @keyword
|
||||
(INDEX) @keyword
|
||||
(INDEXED) @keyword
|
||||
(INITIALLY) @keyword
|
||||
(INNER) @keyword
|
||||
(INSERT) @keyword
|
||||
(INSTEAD) @keyword
|
||||
(INTERSECT) @keyword
|
||||
(INTO) @keyword
|
||||
(IS) @keyword
|
||||
(ISNULL) @keyword
|
||||
(JOIN) @keyword
|
||||
(KEY) @keyword
|
||||
(LAST) @keyword
|
||||
(LEFT) @keyword
|
||||
(LIKE) @keyword
|
||||
(LIMIT) @keyword
|
||||
(MATCH) @keyword
|
||||
(MATERIALIZED) @keyword
|
||||
(NATURAL) @keyword
|
||||
(NO) @keyword
|
||||
(NOT) @keyword
|
||||
(NOTHING) @keyword
|
||||
(NOTNULL) @keyword
|
||||
(NULL) @keyword
|
||||
(NULLS) @keyword
|
||||
(OF) @keyword
|
||||
(OFFSET) @keyword
|
||||
(ON) @keyword
|
||||
(OR) @keyword
|
||||
(ORDER) @keyword
|
||||
(OTHERS) @keyword
|
||||
(OUTER) @keyword
|
||||
(OVER) @keyword
|
||||
(PARTITION) @keyword
|
||||
(PLAN) @keyword
|
||||
(PRAGMA) @keyword
|
||||
(PRECEDING) @keyword
|
||||
(PRIMARY) @keyword
|
||||
(QUERY) @keyword
|
||||
(RAISE) @keyword
|
||||
(RANGE) @keyword
|
||||
(RECURSIVE) @keyword
|
||||
(REFERENCES) @keyword
|
||||
(REGEXP) @keyword
|
||||
(REINDEX) @keyword
|
||||
(RELEASE) @keyword
|
||||
(RENAME) @keyword
|
||||
(REPLACE) @keyword
|
||||
(RESTRICT) @keyword
|
||||
(RETURNING) @keyword
|
||||
(ROLLBACK) @keyword
|
||||
(ROW) @keyword
|
||||
(ROWID) @keyword
|
||||
(ROWS) @keyword
|
||||
(SAVEPOINT) @keyword
|
||||
(SELECT) @keyword
|
||||
(SET) @keyword
|
||||
(STORED) @keyword
|
||||
(TABLE) @keyword
|
||||
(TEMP) @keyword
|
||||
(TEMPORARY) @keyword
|
||||
(THEN) @keyword
|
||||
(TIES) @keyword
|
||||
(TO) @keyword
|
||||
(TRANSACTION) @keyword
|
||||
(TRIGGER) @keyword
|
||||
(TRUE) @keyword
|
||||
(UNBOUNDED) @keyword
|
||||
(UNION) @keyword
|
||||
(UNIQUE) @keyword
|
||||
(UPDATE) @keyword
|
||||
(USING) @keyword
|
||||
(VACUUM) @keyword
|
||||
(VALUES) @keyword
|
||||
(VIEW) @keyword
|
||||
(VIRTUAL) @keyword
|
||||
(WHEN) @keyword
|
||||
(WHERE) @keyword
|
||||
(WINDOW) @keyword
|
||||
(WITH) @keyword
|
||||
(WITHOUT) @keyword
|
||||
Reference in New Issue
Block a user