Refresh generated neovim config
This commit is contained in:
@ -15,6 +15,12 @@ Unreleased
|
||||
Added
|
||||
=====
|
||||
|
||||
- Recipes section in the manual
|
||||
|
||||
- Django HTML support (preliminary, will only pass through injected languages)
|
||||
|
||||
- WebGL Shading Language (WGSL) support
|
||||
|
||||
- Missing patterns for C++:
|
||||
|
||||
- `condition_clause`
|
||||
@ -26,12 +32,22 @@ Added
|
||||
|
||||
- `loop_macro`
|
||||
|
||||
- Missing patterns for Cue:
|
||||
|
||||
- `dynamic`
|
||||
- `index_expression`
|
||||
|
||||
|
||||
- Missing patterns for Javascript:
|
||||
|
||||
- `array_pattern`
|
||||
- `for_in_statement`
|
||||
- `for_statement`
|
||||
|
||||
- Missing patterns for Rust:
|
||||
|
||||
- `bracketed_type`
|
||||
|
||||
- Missing patterns for Typescript:
|
||||
|
||||
- `enum_body`
|
||||
|
||||
@ -22,8 +22,9 @@ TABLE OF CONTENTS *rb-delimiters-contents*
|
||||
3.2 Custom queries ........................ |rb-delimiters-custom-query|
|
||||
3.3 Custom strategies ..................... |rb-delimiters-custom-strategy|
|
||||
3.4 Adding new languages .................. |rb-delimiters-custom-lang|
|
||||
4. Acknowledgements .......................... |rb-delimiters-credit|
|
||||
5. Further reading ........................... |rb-delimiters-reading|
|
||||
4. Recipes ................................... |rb-delimiters-recipes|
|
||||
5. Acknowledgements .......................... |rb-delimiters-credit|
|
||||
6. Further reading ........................... |rb-delimiters-reading|
|
||||
|
||||
|
||||
==============================================================================
|
||||
@ -698,6 +699,24 @@ language. If the query is mature enough please consider upstreaming it so
|
||||
everyone can benefit.
|
||||
|
||||
|
||||
==============================================================================
|
||||
RECIPES *rb-delimiters-recipes*
|
||||
|
||||
Various tricks and hacks which have accumulated over time.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
DISABLE WITHOUT BLACKLISTING
|
||||
|
||||
If you wish to disable rainbow delimiters for a language but for whatever
|
||||
reason you do not want to blacklist this language you can create a custom
|
||||
query (|rb-delimiters-custom-query|) without any patterns. Then set the name
|
||||
of that query as the query for that language (|rb-delimiters-query|).
|
||||
|
||||
Or you could name your custom query the same as the default query (by default
|
||||
`rainbow-delimiters`), then you do not have to change your configuration.
|
||||
|
||||
|
||||
==============================================================================
|
||||
ACKNOWLEDGMENTS *rb-delimiters-credit*
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ rb-delimiters-intro rainbow-delimiters.txt /*rb-delimiters-intro*
|
||||
rb-delimiters-logging rainbow-delimiters.txt /*rb-delimiters-logging*
|
||||
rb-delimiters-query rainbow-delimiters.txt /*rb-delimiters-query*
|
||||
rb-delimiters-reading rainbow-delimiters.txt /*rb-delimiters-reading*
|
||||
rb-delimiters-recipes rainbow-delimiters.txt /*rb-delimiters-recipes*
|
||||
rb-delimiters-setup rainbow-delimiters.txt /*rb-delimiters-setup*
|
||||
rb-delimiters-strategy rainbow-delimiters.txt /*rb-delimiters-strategy*
|
||||
rb-delimiters.disable rainbow-delimiters.txt /*rb-delimiters.disable*
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
---@class (exact) rainbow_delimiters.buffer_settings
|
||||
---@field strategy rainbow_delimiters.strategy
|
||||
---@field parser LanguageTree
|
||||
---@field parser vim.treesitter.LanguageTree
|
||||
---@field lang string
|
||||
|
||||
|
||||
@ -100,6 +100,7 @@
|
||||
---@field vim (rainbow_delimiters.strategy | fun(bufnr: integer): rainbow_delimiters.strategy?)?
|
||||
---@field vimdoc (rainbow_delimiters.strategy | fun(bufnr: integer): rainbow_delimiters.strategy?)?
|
||||
---@field vue (rainbow_delimiters.strategy | fun(bufnr: integer): rainbow_delimiters.strategy?)?
|
||||
---@field wgsl (rainbow_delimiters.strategy | fun(bufnr: integer): rainbow_delimiters.strategy?)?
|
||||
---@field yaml (rainbow_delimiters.strategy | fun(bufnr: integer): rainbow_delimiters.strategy?)?
|
||||
---@field zig (rainbow_delimiters.strategy | fun(bufnr: integer): rainbow_delimiters.strategy?)?
|
||||
---User defined language, not part of rainbow_delimiters support
|
||||
@ -167,6 +168,7 @@
|
||||
---@field vim (('rainbow-delimiters' | string) | fun(bufnr: integer): ('rainbow-delimiters' | string))?
|
||||
---@field vimdoc (('rainbow-delimiters' | string) | fun(bufnr: integer): ('rainbow-delimiters' | string))?
|
||||
---@field vue (('rainbow-delimiters' | string) | fun(bufnr: integer): ('rainbow-delimiters' | string))?
|
||||
---@field wgsl (('rainbow-delimiters' | string) | fun(bufnr: integer): ('rainbow-delimiters' | string))?
|
||||
---@field yaml (('rainbow-delimiters' | string) | fun(bufnr: integer): ('rainbow-delimiters' | string))?
|
||||
---@field zig (('rainbow-delimiters' | string) | fun(bufnr: integer): ('rainbow-delimiters' | string))?
|
||||
---User defined language, not part of rainbow_delimiters support
|
||||
@ -234,6 +236,7 @@
|
||||
---@field vim (integer | fun(bufnr: integer): integer)?
|
||||
---@field vimdoc (integer | fun(bufnr: integer): integer)?
|
||||
---@field vue (integer | fun(bufnr: integer): integer)?
|
||||
---@field wgsl (integer | fun(bufnr: integer): integer)?
|
||||
---@field yaml (integer | fun(bufnr: integer): integer)?
|
||||
---@field zig (integer | fun(bufnr: integer): integer)?
|
||||
---User defined language, not part of rainbow_delimiters support
|
||||
@ -301,6 +304,7 @@
|
||||
---| 'vim'
|
||||
---| 'vimdoc'
|
||||
---| 'vue'
|
||||
---| 'wgsl'
|
||||
---| 'yaml'
|
||||
---| 'zig'
|
||||
---User defined language, not part of rainbow_delimiters support
|
||||
|
||||
@ -15,7 +15,6 @@
|
||||
limitations under the License.
|
||||
--]]
|
||||
|
||||
local api = vim.api
|
||||
local get_query = vim.treesitter.query.get
|
||||
local get_parser = vim.treesitter.get_parser
|
||||
local log = require 'rainbow-delimiters.log'
|
||||
@ -69,7 +68,7 @@ M.buffers = {}
|
||||
---
|
||||
---@param lang string Name of the language to get the query for
|
||||
---@param bufnr integer Use this buffer as the current buffer
|
||||
---@return Query? query The query object
|
||||
---@return vim.treesitter.Query? query The query object
|
||||
function M.get_query(lang, bufnr)
|
||||
local name = config['query'][lang]
|
||||
if type(name) == "function" then
|
||||
@ -100,9 +99,9 @@ function M.highlight(bufnr, lang, node, hlgroup)
|
||||
priority = priority(bufnr)
|
||||
end
|
||||
local opts = {
|
||||
regtype = 'c',
|
||||
regtype = 'v',
|
||||
inclusive = true,
|
||||
priority = priority,
|
||||
priority = priority,
|
||||
}
|
||||
|
||||
local nsid = M.nsids[lang]
|
||||
@ -194,7 +193,7 @@ function M.attach(bufnr)
|
||||
if not M.buffers[bnr] then return end
|
||||
M.detach(bufnr)
|
||||
end,
|
||||
---@param child LanguageTree
|
||||
---@param child vim.treesitter.LanguageTree
|
||||
on_child_removed = function(child)
|
||||
M.clear_namespace(bufnr, child:lang())
|
||||
end,
|
||||
|
||||
@ -165,7 +165,7 @@ end
|
||||
|
||||
---Update highlights for every tree in given buffer.
|
||||
---@param bufnr integer # Buffer number
|
||||
---@param parser LanguageTree
|
||||
---@param parser vim.treesitter.LanguageTree
|
||||
local function full_update(bufnr, parser)
|
||||
log.debug('Performing full updated on buffer %d', bufnr)
|
||||
local function callback(tree, sub_parser)
|
||||
@ -179,7 +179,7 @@ end
|
||||
|
||||
---Sets up all the callbacks and performs an initial highlighting
|
||||
---@param bufnr integer # Buffer number
|
||||
---@param parser LanguageTree
|
||||
---@param parser vim.treesitter.LanguageTree
|
||||
---@param start_parent_lang string? # Parent language or nil
|
||||
local function setup_parser(bufnr, parser, start_parent_lang)
|
||||
log.debug('Setting up parser for buffer %d', bufnr)
|
||||
@ -261,7 +261,7 @@ local function setup_parser(bufnr, parser, start_parent_lang)
|
||||
end,
|
||||
-- New languages can be added into the text at some later time, e.g.
|
||||
-- code snippets in Markdown
|
||||
---@param child LanguageTree
|
||||
---@param child vim.treesitter.LanguageTree
|
||||
on_child_added = function(child)
|
||||
setup_parser(bufnr, child, lang)
|
||||
end,
|
||||
|
||||
@ -235,7 +235,7 @@ end
|
||||
---Callback function to re-highlight the buffer according to the current cursor
|
||||
---position.
|
||||
---@param bufnr integer
|
||||
---@param parser LanguageTree
|
||||
---@param parser vim.treesitter.LanguageTree
|
||||
local function local_rainbow(bufnr, parser)
|
||||
parser:for_each_tree(function(tree, sub_parser)
|
||||
update_local(bufnr, tree, sub_parser:lang())
|
||||
@ -244,7 +244,7 @@ end
|
||||
|
||||
---Sets up all the callbacks and performs an initial highlighting
|
||||
---@param bufnr integer # Buffer number
|
||||
---@param parser LanguageTree
|
||||
---@param parser vim.treesitter.LanguageTree
|
||||
local function setup_parser(bufnr, parser)
|
||||
log.debug('Setting up parser for buffer %d', bufnr)
|
||||
util.for_each_child(nil, parser:lang(), parser, function(p, lang, _parent_lang)
|
||||
@ -274,7 +274,7 @@ local function setup_parser(bufnr, parser)
|
||||
end,
|
||||
-- New languages can be added into the text at some later time, e.g.
|
||||
-- code snippets in Markdown
|
||||
---@param child LanguageTree
|
||||
---@param child vim.treesitter.LanguageTree
|
||||
on_child_added = function(child)
|
||||
setup_parser(bufnr, child)
|
||||
end,
|
||||
|
||||
@ -27,8 +27,8 @@ local M = {}
|
||||
---replacement.
|
||||
---@param parent_lang string? # Parent language or nil
|
||||
---@param lang string
|
||||
---@param language_tree LanguageTree
|
||||
---@param thunk fun(p: LanguageTree, lang: string, parent_lang: string?)
|
||||
---@param language_tree vim.treesitter.LanguageTree
|
||||
---@param thunk fun(p: vim.treesitter.LanguageTree, lang: string, parent_lang: string?)
|
||||
function M.for_each_child(parent_lang, lang, language_tree, thunk)
|
||||
thunk(language_tree, lang, parent_lang)
|
||||
local children = language_tree:children()
|
||||
|
||||
@ -2,6 +2,10 @@
|
||||
"{" @delimiter
|
||||
"}" @delimiter @sentinel) @container
|
||||
|
||||
(index_expression
|
||||
"[" @delimiter
|
||||
"]" @delimiter @sentinel) @container
|
||||
|
||||
(list_lit
|
||||
"[" @delimiter
|
||||
"]" @delimiter @sentinel) @container
|
||||
@ -18,6 +22,10 @@
|
||||
"(" @delimiter
|
||||
")" @delimiter @sentinel) @container
|
||||
|
||||
(dynamic
|
||||
"(" @delimiter
|
||||
")" @delimiter @sentinel) @container
|
||||
|
||||
(parenthesized_expression
|
||||
"(" @delimiter
|
||||
")" @delimiter @sentinel) @container
|
||||
|
||||
@ -131,3 +131,7 @@
|
||||
(visibility_modifier
|
||||
"(" @delimiter
|
||||
")" @delimiter @sentinel) @container
|
||||
|
||||
(bracketed_type
|
||||
"<" @delimiter
|
||||
">" @delimiter @sentinel) @container
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/sh
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/sh
|
||||
# SPDX-License-Identifier: Unlicense
|
||||
|
||||
# This is free and unencumbered software released into the public domain.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
# Command substitution
|
||||
echo $(basedir $(pwd))
|
||||
|
||||
@ -23,3 +23,5 @@ elems: {
|
||||
|
||||
_env: string | *"dev" @tag(env,type=string)
|
||||
host: "\(_env).example.com"
|
||||
|
||||
environments: (_env): "\(numList[1])"
|
||||
|
||||
@ -130,6 +130,8 @@ fn main() {
|
||||
|
||||
let test_tuple: (u32, u32) = (0, 1);
|
||||
tuple_param(test_tuple);
|
||||
|
||||
let a = <u32 as From<u8>>::from(1u8);
|
||||
}
|
||||
|
||||
use level_1::{
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/sh
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/sh
|
||||
# SPDX-License-Identifier: Unlicense
|
||||
|
||||
# This is free and unencumbered software released into the public domain.
|
||||
|
||||
@ -2,27 +2,43 @@
|
||||
|
||||
local say = require 'say'
|
||||
local assert = require 'luassert'
|
||||
local filter = vim.fn.filter
|
||||
|
||||
|
||||
---Globally unique key to retrieve the current Neovim channel from the test
|
||||
---state.
|
||||
local NVIM_STATE_KEY = {}
|
||||
|
||||
local function nvim(state, args, level)
|
||||
local function nvim_client(state, args, _level)
|
||||
assert(args.n > 0, "No Neovim channel provided to the modifier")
|
||||
assert(rawget(state, NVIM_STATE_KEY) == nil, "Neovim already set")
|
||||
rawset(state, NVIM_STATE_KEY, args[1])
|
||||
return state
|
||||
end
|
||||
|
||||
---Asserts that there are Rainbow Delimiters extmarks at the given position
|
||||
---Asserts that there are Rainbow Delimiters extmarks at the given position.
|
||||
---
|
||||
---Arguments:
|
||||
---
|
||||
--- 1) row Zero-indexed row of the character position
|
||||
--- 2) column Zero-indexed column of the character position
|
||||
--- 3) lang Expected language of the extmark
|
||||
--- 4) hl_group Optional, expected highlight group of the extmark
|
||||
---
|
||||
---@param arguments integer[] Row and column, both zero-based
|
||||
local function has_extmarks_at(_state, arguments, lang)
|
||||
---@return boolean
|
||||
local function has_extmarks_at(_state, arguments)
|
||||
local nvim = rawget(_state, NVIM_STATE_KEY)
|
||||
assert(nvim ~= nil, 'No Neovim channel set, use the nvim modifier to set the channel')
|
||||
local row, column = arguments[1], arguments[2]
|
||||
local row, column, lang, hl_group = arguments[1], arguments[2], arguments[3], arguments[4]
|
||||
local nsid = nvim:exec_lua('return require("rainbow-delimiters.lib").nsids[...]', {lang})
|
||||
|
||||
local extmarks = nvim:exec_lua('return vim.inspect_pos(...).extmarks', {0, row, column})
|
||||
filter(extmarks, function(_, v) return v.ns_id == nsid end)
|
||||
extmarks = vim.tbl_filter(function(v) return v.ns_id == nsid end, extmarks)
|
||||
if hl_group then
|
||||
local function same_hl_group(extmark) return extmark.opts.hl_group == hl_group end
|
||||
extmarks = vim.tbl_filter(same_hl_group, extmarks)
|
||||
end
|
||||
|
||||
return #extmarks > 0
|
||||
end
|
||||
|
||||
@ -32,4 +48,4 @@ say:set('assertion.extmarks_at.negative', 'Expected no extmarks at (%s, %s)')
|
||||
assert:register(
|
||||
'assertion', 'has_extmarks_at', has_extmarks_at,
|
||||
'assertion.has_extmarks_at.positive', 'assertion.has_extmarks_at.negative')
|
||||
assert:register('modifier', 'nvim', nvim)
|
||||
assert:register('modifier', 'nvim', nvim_client)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/php4qidg2bxzmm79vpri025bqi0fa889-coreutils-9.5/bin/env -S -l
|
||||
#!/nix/store/i7qhgc0bs725qw3wdanznfkdna4z2ns2-coreutils-9.5/bin/env -S -l
|
||||
|
||||
-- Equivalent to print(), but this will ensure consistent output regardless of
|
||||
-- operating system.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
curl -L https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-macos.tar.gz | tar -xz
|
||||
sudo ln -s "$PWD"/nvim-macos/bin/nvim /usr/local/bin
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-linux64.tar.gz
|
||||
tar -zxf nvim-linux64.tar.gz
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
curl -L https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/nvim-win64.zip -o nvim-win64.zip
|
||||
unzip nvim-win64
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
# Can be used as a pre-push hook
|
||||
# Just symlink this file to .git/hooks/pre-push
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
HERE="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
cd $HERE/..
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/bash
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/bash
|
||||
|
||||
make_ignored() {
|
||||
if [ -n "$1" ]
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/php4qidg2bxzmm79vpri025bqi0fa889-coreutils-9.5/bin/env -S -l
|
||||
#!/nix/store/i7qhgc0bs725qw3wdanznfkdna4z2ns2-coreutils-9.5/bin/env -S -l
|
||||
|
||||
---@class Parser
|
||||
---@field name string
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/php4qidg2bxzmm79vpri025bqi0fa889-coreutils-9.5/bin/env -S -l
|
||||
#!/nix/store/i7qhgc0bs725qw3wdanznfkdna4z2ns2-coreutils-9.5/bin/env -S -l
|
||||
|
||||
---@type string|any[]
|
||||
local skip_langs = vim.fn.getenv "SKIP_LOCKFILE_UPDATE_FOR_LANGS"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/nix/store/306znyj77fv49kwnkpxmb0j2znqpa8bj-bash-5.2p26/bin/sh
|
||||
#!/nix/store/agkxax48k35wdmkhmmija2i2sxg8i7ny-bash-5.2p26/bin/sh
|
||||
# SPDX-License-Identifier: Unlicense
|
||||
|
||||
# This is free and unencumbered software released into the public domain.
|
||||
|
||||
Reference in New Issue
Block a user