1
0
Fork 0
mirror of https://github.com/pnx/dotfiles synced 2026-06-16 03:14:55 +02:00

nvim: treesitter: fix blade/php highlight

This commit is contained in:
Henrik Hautakoski 2024-02-29 13:13:51 +01:00
parent 0ac177ee21
commit 23a91b642f
5 changed files with 66 additions and 1 deletions

View file

@ -21,3 +21,10 @@ vim.opt.numberwidth = 6
-- indent
vim.opt.smartindent = true
-- Filetypes
vim.filetype.add({
pattern = {
['.*%.blade%.php'] = 'blade',
},
})

View file

@ -18,7 +18,8 @@ return {
"vim",
"vimdoc",
"query",
"php",
"php",
"blade",
"go",
"javascript",
"typescript",
@ -27,6 +28,7 @@ return {
"html",
"vue",
"json",
"jsonc",
"yaml",
"toml",
"xml",
@ -57,6 +59,19 @@ return {
}
},
config = function(_, opts)
local parser_config = require('nvim-treesitter.parsers').get_parser_configs()
parser_config.blade = {
install_info = {
url = 'https://github.com/EmranMR/tree-sitter-blade',
branch = "main",
files = { 'src/parser.c' },
generate_requires_npm = true,
requires_generate_from_grammar = true,
},
filetype = 'blade',
}
require("nvim-treesitter.configs").setup(opts)
end,
}

View file

@ -0,0 +1,5 @@
(directive) @keyword
(directive_start) @keyword
(directive_end) @keyword
(comment) @comment
(keyword) @keyword

View file

@ -0,0 +1,15 @@
((text) @injection.content
(#not-has-ancestor? @injection.content "envoy")
(#set! injection.combined)
(#set! injection.language php))
; could be bash or zsh
; or whatever tree-sitter grammar you have.
((text) @injection.content
(#has-ancestor? @injection.content "envoy")
(#set! injection.combined)
(#set! injection.language bash))
((php_only) @injection.content (#set! injection.language php))
((parameter) @injection.content (#set! injection.language php))

View file

@ -0,0 +1,23 @@
; inherits: php_only
; php tags should be tagged as preprocessor tokens
(php_tag) @preproc
; Tag names in class definition as regular text.
(class_declaration [
name: (name) @text
(base_clause (name) @text)
(class_interface_clause (name) @text)
])
; tag "use" traits as text
(use_declaration (name) @text)
; tag namespace classes in "use" as text
(namespace_use_declaration (namespace_use_clause [
(qualified_name [
(name) @text
(namespace_name_as_prefix (namespace_name (name) @text))
])
(namespace_aliasing_clause (name) @text)
]))