diff options
| author | Caleb White <cdwhite3@pm.me> | 2025-06-19 10:42:38 -0500 |
|---|---|---|
| committer | Christian Clason <ch.clason+github@icloud.com> | 2025-07-11 17:34:30 +0200 |
| commit | c9e4edc127a90c3969e1bf5cdeab8892247e9c41 (patch) | |
| tree | ce134fb785edb1a549f6b17c0100f77c7ca618cd /runtime/queries/blade/injections.scm | |
| parent | feat(ziggy,ziggy-schema): update parser and queries (diff) | |
| download | nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.tar nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.tar.gz nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.tar.bz2 nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.tar.lz nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.tar.xz nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.tar.zst nvim-treesitter-c9e4edc127a90c3969e1bf5cdeab8892247e9c41.zip | |
feat(blade): update blade parser and queries
Diffstat (limited to 'runtime/queries/blade/injections.scm')
| -rw-r--r-- | runtime/queries/blade/injections.scm | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/runtime/queries/blade/injections.scm b/runtime/queries/blade/injections.scm index 12fa9f953..e8a0d708d 100644 --- a/runtime/queries/blade/injections.scm +++ b/runtime/queries/blade/injections.scm @@ -1,15 +1,65 @@ -((text) @injection.content - (#set! injection.combined) - (#set! injection.language html)) +; inherits: html + +((php_only) @injection.content + (#set! injection.language "php_only")) + +((parameter) @injection.content + (#set! injection.include-children) + (#set! injection.language "php_only")) ((text) @injection.content (#has-ancestor? @injection.content "envoy") (#set! injection.combined) (#set! injection.language bash)) -((php_only) @injection.content - (#set! injection.combined) - (#set! injection.language php_only)) +; Livewire attributes +; <div wire:click="baz++"> +(attribute + (attribute_name) @_attr + (#any-of? @_attr "wire:model" "wire:click" "wire:stream" "wire:text" "wire:show") + (quoted_attribute_value + (attribute_value) @injection.content) + (#set! injection.language "javascript")) -((parameter) @injection.content - (#set! injection.language php_only)) +; AlpineJS attributes +; <div x-data="{ foo: 'bar' }" x-init="baz()"> +(attribute + (attribute_name) @_attr + (#lua-match? @_attr "^x%-%l+") + (#not-any-of? @_attr "x-teleport" "x-ref" "x-transition") + (quoted_attribute_value + (attribute_value) @injection.content) + (#set! injection.language "javascript")) + +(attribute + (attribute_name) @_attr + (#lua-match? @_attr "^[:@]%l+") + (quoted_attribute_value + (attribute_value) @injection.content) + (#set! injection.language "javascript")) + +; Blade escaped JS attributes +; <x-foo ::bar="baz" /> +(element + (_ + (tag_name) @_tag + (#lua-match? @_tag "^x%-%l+") + (attribute + (attribute_name) @_attr + (#lua-match? @_attr "^::%l+") + (quoted_attribute_value + (attribute_value) @injection.content) + (#set! injection.language "javascript")))) + +; Blade PHP attributes +; <x-foo :bar="$baz" /> +(element + (_ + (tag_name) @_tag + (#lua-match? @_tag "^x%-%l+") + (attribute + (attribute_name) @_attr + (#lua-match? @_attr "^:%l+") + (quoted_attribute_value + (attribute_value) @injection.content) + (#set! injection.language "php_only")))) |
