break: cleanup preview.treesitter language setting (#1612)
this follows nvim-treesitter more closely but enable can also be a table
of enabled languages
The config now looks like this:
```lua
defaults = {
preview = {
treesitter = {
enable = false,
-- or
enable = { "c" },
-- disable can be set if enable isn't set
disable = { "perl", "javascript" },
},
},
},
```
This commit is contained in:
@@ -593,8 +593,17 @@ append(
|
||||
highlighting, which falls back to regex-based highlighting.
|
||||
`true`: treesitter highlighting for all available filetypes
|
||||
`false`: regex-based highlighting for all filetypes
|
||||
`table`: table of filetypes for which to attach treesitter
|
||||
highlighting
|
||||
`table`: following nvim-treesitters highlighting options:
|
||||
It contains two keys:
|
||||
- enable boolean|table: if boolean, enable all ts
|
||||
highlighing with that flag,
|
||||
disable still considered.
|
||||
Containing a list of filetypes,
|
||||
that are enabled, disabled
|
||||
ignored because it doesnt make
|
||||
any sense in this case.
|
||||
- disable table: containing a list of filetypes
|
||||
that are disabled
|
||||
Default: true
|
||||
- msg_bg_fillchar: Character to fill background of unpreviewable buffers with
|
||||
Default: "╱"
|
||||
|
||||
@@ -82,12 +82,26 @@ end
|
||||
utils.highlighter = function(bufnr, ft, opts)
|
||||
opts = opts or {}
|
||||
opts.preview = opts.preview or {}
|
||||
opts.preview.treesitter = vim.F.if_nil(
|
||||
opts.preview.treesitter,
|
||||
type(conf.preview) == "table" and conf.preview.treesitter
|
||||
)
|
||||
local ts_highlighting = opts.preview.treesitter == true
|
||||
or type(opts.preview.treesitter) == "table" and vim.tbl_contains(opts.preview.treesitter, ft)
|
||||
opts.preview.treesitter = vim.F.if_nil(opts.preview.treesitter, conf.preview.treesitter)
|
||||
if type(opts.preview.treesitter) == "boolean" then
|
||||
local temp = { enable = opts.preview.treesitter }
|
||||
opts.preview.treesitter = temp
|
||||
end
|
||||
|
||||
local ts_highlighting = (function()
|
||||
if type(opts.preview.treesitter.enable) == "table" then
|
||||
if vim.tbl_contains(opts.preview.treesitter.enable, ft) then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
if vim.tbl_contains(vim.F.if_nil(opts.preview.treesitter.disable, {}), ft) then
|
||||
return false
|
||||
end
|
||||
|
||||
return opts.preview.treesitter.enable == nil or opts.preview.treesitter.enable == true
|
||||
end)()
|
||||
|
||||
local ts_success
|
||||
if ts_highlighting then
|
||||
|
||||
Reference in New Issue
Block a user