difftastic/vendor/tree-sitter-qmljs
Yuya Nishihara 79d594fc56 Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94'
git-subtree-dir: vendor/tree-sitter-qmljs
git-subtree-mainline: fe5ef8757d
git-subtree-split: 3bcf9c4d09
2022-09-10 11:36:22 +07:00
..
.github/workflows Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
bindings Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
examples Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
queries Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
src Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
test Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
.gitignore Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
Cargo.toml Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
LICENSE Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
Makefile Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
README.md Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
binding.gyp Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
grammar.js Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00
package.json Add 'vendor/tree-sitter-qmljs/' from commit '3bcf9c4d0911e74307c6d704c1ea242a1e4a2f94' 2022-09-10 11:36:22 +07:00

README.md

tree-sitter-qmljs

QML grammar for the tree-sitter parsing library.

References

Pitfalls

Since grouped binding notation is syntactically ambiguous, it is parsed as an object definition.

// (ui_object_definition type_name: (identifier "Button") ...)
Button {
    // (ui_object_definition type_name: (identifier "icon") ...)
    icon { source: "foo.png"; color: "transparent" }
}

Building

Use the master branch, which contains all generated files.

$ git checkout master
$ npm install
$ cargo build --release

Hacking

Use the dev branch, but you'll first need to run npm install in the master branch.

$ git checkout master
$ npm install
$ git checkout dev

Generate code and run tests:

$ make generate tests

Make sure example QML files can be parsed:

$ make fetch-examples parse-examples