nvim-config

Log | Files | Refs | Submodules | README

commit 7158252171f4e3e995956112ac6d093704ea0e6c
parent 68e905cec68449e29247991c03e3ceb183be388a
Author: Thomas Vigouroux <thomas.vigouroux@protonmail.com>
Date:   Sat, 25 Feb 2023 07:38:08 +0100

update

Diffstat:
Mafter/ftplugin/c.lua | 3---
Mafter/ftplugin/markdown.lua | 2++
Aafter/ftplugin/teal.lua | 1+
Mafter/ftplugin/tex.lua | 1-
Aafter/plugin/mappings.lua | 1+
Mafter/plugin/mappings.vim | 5+----
Aafter/queries/latex/highlights.scm | 21+++++++++++++++++++++
Minit.lua | 6++----
Mlua/completree-config.lua | 16++++++++++++++++
Mlua/dap-config.lua | 2++
Mlua/lsp_config.lua | 24+++++++++++++++++-------
Alua/obsidian-config.lua | 6++++++
Mlua/plugins.lua | 2++
Alua/tltypes.lua | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mlua/ts_config.lua | 12++++++++++++
Alua/zest.lua | 45+++++++++++++++++++++++++++++++++++++++++++++
Aplugin/show_languagetree.lua | 21+++++++++++++++++++++
Dplugin/zest.lua | 142-------------------------------------------------------------------------------
Dqueries/latex/highlights.scm | 252-------------------------------------------------------------------------------
Dspell/default.utf-8.add | 35-----------------------------------
20 files changed, 221 insertions(+), 448 deletions(-)

diff --git a/after/ftplugin/c.lua b/after/ftplugin/c.lua @@ -1,8 +1,5 @@ vim.opt_local.expandtab = true vim.opt_local.textwidth = 100 -vim.opt_local.tabstop = 4 -vim.opt_local.softtabstop = 4 -vim.opt_local.shiftwidth = 4 vim.opt_local.foldmethod = "expr" vim.opt_local.foldexpr = "nvim_treesitter#foldexpr()" vim.opt_local.foldlevel = 0 diff --git a/after/ftplugin/markdown.lua b/after/ftplugin/markdown.lua @@ -1,3 +1,5 @@ vim.opt_local.textwidth = 70 vim.opt_local.wrap = false vim.opt_local.conceallevel = 0 + +vim.opt_local.includeexpr = "v:lua.require'zest'.find_file(v:fname)" diff --git a/after/ftplugin/teal.lua b/after/ftplugin/teal.lua @@ -0,0 +1 @@ +vim.bo.makeprg = "tl check %" diff --git a/after/ftplugin/tex.lua b/after/ftplugin/tex.lua @@ -5,7 +5,6 @@ vim.opt_local.conceallevel = 0 vim.opt_local.foldmethod = "marker" vim.opt_local.foldmarker = "%(,%)" vim.opt_local.wrap = false -vim.opt_local.spell = true vim.opt_local.spellcapcheck = "\\(verb.\\+\\)\\@<![.?!]\\_[\\])'\"\t\n]\\+" vim.cmd [[normal zx]] diff --git a/after/plugin/mappings.lua b/after/plugin/mappings.lua @@ -0,0 +1 @@ +vim.keymap.set('n', '<Leader>zn', require'zest'.open) diff --git a/after/plugin/mappings.vim b/after/plugin/mappings.vim @@ -1,4 +1,4 @@ -" Last Change: 2022 Aug 25 +" Last Change: 2023 Feb 16 vnoremap <silent> < <gv vnoremap <silent> > >gv @@ -30,6 +30,3 @@ nnoremap <silent> <C-I> <C-I>zz nnoremap ]c <cmd>cnext<CR> nnoremap [c <cmd>cprevious<CR> - -nnoremap <Leader>zs <cmd>1Zest search<CR> -nnoremap <Leader>zc <cmd>Zest create<CR> diff --git a/after/queries/latex/highlights.scm b/after/queries/latex/highlights.scm @@ -0,0 +1,21 @@ +;; extends + +;; Some commands should not be spellchecked +[ + (command_name) + (begin) + (end) + (citation) + (color_reference) + (package_include) + (new_command_definition) + (environment_definition) + ] @nospell + +;; Exclude some enviroments from spell-checking +( + (generic_environment (begin name: (curly_group_text text: (_) @_txt))) @nospell + (#eq? @_txt "tikzpicture") + ) + +(key_value_pair key: (_) @nospell) diff --git a/init.lua b/init.lua @@ -1,7 +1,5 @@ local M = {} -vim.g.azy_ui_debug = 1 - local ok, imp = pcall(require, 'impatient') -- if ok then @@ -28,8 +26,8 @@ o.splitright = true o.lazyredraw = true o.foldenable = false o.spelllang = { "en", "fr" } -vim.o.spellfile = table.concat(vim.api.nvim_get_runtime_file("spell/*.add", true) or {}, ",") -o.spelloptions = { "noplainbuffer" } +-- vim.o.spellfile = table.concat(vim.api.nvim_get_runtime_file("spell/*.add", true) or {}, ",") +o.spelloptions = { 'noplainbuffer' } o.textwidth = 100 o.colorcolumn = "+0" o.signcolumn = "yes:1" diff --git a/lua/completree-config.lua b/lua/completree-config.lua @@ -54,6 +54,8 @@ comp.setup { default = cdef.ins_completion "C-N", vim = cdef.ins_completion "C-V", teal = cc.pipeline(cc.optional(s.treesitter_matches {}, s.luasnip_matches {}), ccomp.fzy), + spthy = cc.pipeline(s.luasnip_matches {}, ccomp.fzy), + mail = cc.pipeline(s.luasnip_matches {}, ccomp.fzy), dockerfile = cdef.ins_completion "C-F", c = lsp_completion, cpp = lsp_completion, @@ -173,3 +175,17 @@ ls.add_snippets('mail', { f(commit_line, {}, { user_args = { "Tested-by" } }) }), }) + +ls.add_snippets('spthy', { + s({ trig = 'rule', name = 'Protocol rule' }, { + t { "rule " }, + i(1, "RuleName"), + t { ":", " [ " }, + i(2, "Left"), + t { ' ]', ' --[' }, + i(3, "Events"), + t { ']->', ' [ ' }, + i(4, "Right"), + t { " ]", "" } + }) +}) diff --git a/lua/dap-config.lua b/lua/dap-config.lua @@ -35,6 +35,8 @@ dap.defaults.fallback.force_external_terminal = true local widgets = require "dap.ui.widgets" +local sbar = widgets.sidebar(widgets.frames) + dap.listeners.after['event_initialized']['me'] = function() end diff --git a/lua/lsp_config.lua b/lua/lsp_config.lua @@ -8,7 +8,7 @@ vim.diagnostic.config { vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) -local function on_attach(client, bufnr) +local function on_attach(attach_opts, client, bufnr) local function set_keymap(lhs, func, ...) local args = { ... } vim.keymap.set("n", lhs, "", { @@ -27,17 +27,22 @@ local function on_attach(client, bufnr) callback = function() pcall(func) end }) end + if attach_opts.no_semantic_tokens then + client.server_capabilities.semanticTokensProvider = nil + end -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions if client.server_capabilities.hoverProvider then set_keymap('K', vim.lsp.buf.hover) end + set_keymap('<Leader>d', vim.lsp.buf.definition) set_keymap('gr', vim.lsp.buf.rename) set_keymap('<Leader>a', vim.lsp.buf.code_action) set_keymap('[d', vim.diagnostic.goto_prev) set_keymap(']d', vim.diagnostic.goto_next) set_keymap('<Leader>q', vim.diagnostic.setqflist) + set_keymap('<Leader>=', vim.lsp.buf.format) set_keymap('gR', require "azy.builtins".lsp.references()) set_keymap('<Leader>s', require "azy.builtins".lsp.workspace_symbols()) @@ -48,7 +53,8 @@ local function on_attach(client, bufnr) end, vim.lsp.buf.list_workspace_folders()))) -- LSP lines setup - set_keymap('<Leader>l', require("lsp_lines").toggle) + set_keymap('<Leader>lr', vim.lsp.codelens.run) + set_keymap('<Leader>ll', require("lsp_lines").toggle) set_autocmd("InsertEnter", function() -- Force off lsp_lines on enter vim.diagnostic.config { virtual_lines = false } @@ -178,7 +184,9 @@ end local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true capabilities.workspace.configuration = true -local default_config = { capabilities = capabilities, on_attach = on_attach } +local function mk_config(extras) + return { capabilities = capabilities, on_attach = function(...) on_attach(extras, ...) end} +end -- A bit of notes for the future me -- filetypes (table) List of filetypes for this lsp @@ -189,7 +197,9 @@ local default_config = { capabilities = capabilities, on_attach = on_attach } -- nvim_create_user_command, with first argument being the client) to create in the buffer where the thing is started local system_lsps = { hls = { + command = { "haskell-language-server-wrapper", "--lsp" }, filetypes = { "haskell" }, + root_markers = { "Setup.hs", "stack.yaml" }, }, zls = { @@ -207,7 +217,7 @@ local system_lsps = { tsserver = { command = { "typescript-language-server", "--stdio" }, filetypes = { "typescript", "javascript" }, - root_markers = { "package.json", ".git" } + root_markers = { "tsconfig.json", "package.json", ".git" } }, ocamllsp = { @@ -361,14 +371,14 @@ for lname, config in pairs(system_lsps) do if not config.filetypes then vim.notify(string.format("No filetypes defined for %s", lname)) else - setup_lsp(lname, config.filetypes, config.command or { lname }, config.ucommands or {}, config.cfg or default_config) + setup_lsp(lname, config.filetypes, config.command or { lname }, config.ucommands or {}, config.cfg or mk_config(config.attach_opts or {})) end end require 'ltex-ls'.setup { on_attach = on_attach, capabilities = capabilities, - filetypes = { "latex", "tex", "bib", "markdown", "gitcommit", "text" }, + filetypes = { "latex", "tex", "bib", "markdown", "gitcommit", "text", "mail" }, use_spellfile = true, handlers = { ["ltex/workspaceSpecificConfiguration"] = vim.lsp.with(require 'ltex-ls.handlers'.workspace_configuration, @@ -385,7 +395,7 @@ require 'ltex-ls'.setup { motherTongue = "fr", }, disabledRules = { - en = { "TOO_LONG_SENTENCE" }, + en = { "TOO_LONG_SENTENCE", "REGARD", "PASSIVE_VOICE" }, fr = { "APOS_TYP", "FRENCH_WHITESPACE", "FR_SPELLING_RULE", "COMMA_PARENTHESIS_WHITESPACE" } }, latex = { diff --git a/lua/obsidian-config.lua b/lua/obsidian-config.lua @@ -0,0 +1,6 @@ +require 'obsidian'.setup { + dir = "~/obsvault", + completion = { + nvim_cmp = false, -- if using nvim-cmp, otherwise set to false + } +} diff --git a/lua/plugins.lua b/lua/plugins.lua @@ -46,6 +46,7 @@ return packer.startup(function(use) config = function() require "notifier".setup { component_name_recall = true, + status_width = 50, notify = { clear_time = 5000 }, @@ -113,6 +114,7 @@ return packer.startup(function(use) -- One true colorscheme localuse 'vigoux/oak' -- Not sure it is that binary + use 'romgrk/doom-one.vim' -- Byte update debugging help use { 'tjdevries/nsync.nvim', opt = true } diff --git a/lua/tltypes.lua b/lua/tltypes.lua @@ -0,0 +1,72 @@ +local M = {} +local a = vim.api + +local types + +local function get_type(id) + local tmp = types.types[tostring(id)] + + local meta = { + __index = function(tbl, index) + if index == 'file' or index == 'fields' or index == 'str' or index == 'ref' then + return rawget(tbl, index) + end + + if index == 'y' or index == 'x' then + return tonumber(rawget(tbl, index)) + end + + if rawget(tbl, 'fields') then + return get_type(tbl.fields[index]) + end + + return nil + end + } + + if not tmp then + error(string.format("Invalid type identifier: %s", tostring(id))) + end + + if tmp.ref then + return get_type(tmp.ref) + else + return setmetatable(tmp, meta) + end +end + +local function put_lines(lines) + a.nvim_buf_set_lines(0, -2, -1, false, vim.split(lines, '\n', { plain = true })) +end + +local function input_cb(text) + if tostring(tonumber(text)) == text then + put_lines(vim.inspect(get_type(text))) + elseif text:sub(1, 1) == '*' then + put_lines(vim.inspect(types.types[text:sub(2)])) + else + put_lines(text) + end + a.nvim_buf_set_option(0, 'modified', false) +end + +function M.repl(paths) + types = vim.json.decode(vim.fn.system { "tl", "types", unpack(vim.fn.glob(paths, false, true)) }) + vim.cmd[[split]] + local win = a.nvim_get_current_win() + + local repl_buf = a.nvim_create_buf(false, true) + + vim.fn.prompt_setcallback(repl_buf, input_cb) + + vim.fn.prompt_setprompt(repl_buf, "tltype> ") + + a.nvim_buf_set_option(repl_buf, 'buftype', 'prompt') + a.nvim_buf_set_option(repl_buf, 'bufhidden', 'wipe') + a.nvim_buf_set_name(repl_buf, [[Architext REPL]]) + a.nvim_win_set_buf(win, repl_buf) + + vim.cmd.startinsert() +end + +return M diff --git a/lua/ts_config.lua b/lua/ts_config.lua @@ -1,3 +1,15 @@ +local parser_config = require "nvim-treesitter.parsers".get_parser_configs() +if not parser_config.vim then + parser_config.vim = { + install_info = { + url = "/home/vigourth/src/perso/tree-sitter-viml/", + files = {"src/parser.c", "src/scanner.c"} + }, + filetype = "vim", + maintainers = { "@vigoux" }, +} +end + require'nvim-treesitter.configs'.setup { highlight = { enable = true, -- false will disable the whole extension diff --git a/lua/zest.lua b/lua/zest.lua @@ -0,0 +1,45 @@ +local api = vim.api +local fn = vim.fn + +local azyui = require 'azy.ui' +local asinks = require 'azy.sinks' + +local M = {} + +local ZPATH = vim.fn.expand "$HOME" .. "/obsvault/" + +local function zpath(...) + return ZPATH .. "/" .. table.concat({ ... }, "/") +end + +local function list_files() + local ret = {} + + for index, path in ipairs(vim.fs.find(function(path) return vim.endswith(path, ".md") end, { path = ZPATH, limit = math.huge })) do + ret[index] = { + search_text = fn.fnamemodify(path, ":t:r"), + extra = path, + } + end + + return ret +end + +function M.find_file(name) + for _, file in ipairs(list_files()) do + vim.pretty_print(file) + if file.search_text == name then + return file + end + end +end + +local function zest_sink(element, modifiers) + asinks.open_file({ search_text = element.extra }, modifiers) +end + +function M.open() + azyui.create(list_files(), zest_sink) +end + +return M diff --git a/plugin/show_languagetree.lua b/plugin/show_languagetree.lua @@ -0,0 +1,21 @@ +local M = {} +local ts = vim.treesitter + +function ShowLangTree(langtree, indent) + langtree = langtree or ts.get_parser() + indent = indent or '' + + print(indent .. langtree:lang()) + for _, region in pairs(langtree:included_regions()) do + if type(region[1]) == 'table' then + print(indent .. ' ' .. vim.inspect(region)) + else + print(indent .. ' ' .. vim.inspect{region[1]:range()}) + end + end + for lang,child in pairs(langtree._children) do + ShowLangTree(child, indent .. ' ') + end +end + +return M diff --git a/plugin/zest.lua b/plugin/zest.lua @@ -1,142 +0,0 @@ -local api = vim.api - -local M = {} - -if vim.fn.executable('zest') == 0 then - return -end - -local function zest(...) - return vim.fn.systemlist{'zest', ...} -end - -local function buf_is_zest(bufnr) - bufnr = bufnr or vim.api.nvim_get_current_buf() - local name = vim.api.nvim_buf_get_name(bufnr) - local fullpath = vim.fn.fnamemodify(name, ':p') - return #(zest('search', string.format("file:%s", fullpath))) ~= 0 -end - -local search -if pcall(require, 'telescope') then - local pickers = require('telescope.pickers') - local sorters = require('telescope.sorters') - local finders = require('telescope.finders') - - search = function(query) - pickers.new { - results_title = 'Zests', - -- Run an external command and show the results in the finder window - finder = finders.new_oneshot_job( - {'zest', 'search', query}, - { - entry_maker = function (line) - local file, title = unpack(vim.split(line, ':', true)) - return { - display = title, - value = file, - ordinal = title - } - end - } - ), - sorter = sorters.get_fuzzy_file(), - }:find() - end -else - local function set_qflist_with(res) - local qflist = {} - for _,r in ipairs(res) do - local filename, title = unpack(vim.split(r, ':', true)) - table.insert(qflist, { - filename = filename, - text = title - }) - end - - vim.fn.setqflist(qflist, 'r') - vim.cmd[[copen]] - end - search = function(query) - set_qflist_with(zest('search', query)) - end -end - -local function mk_query(ask, ...) - local q = table.concat({...}, " ") - if #q > 0 then - return q - elseif ask then - return vim.fn.input("Query: ") - else - return "*" - end -end - -local subcommands = { - search = function(count, ...) - search(mk_query(count > 0, ...)) - end, - ["goto"] = function(count, ...) - local res = zest('search', '-f', mk_query(false, ...)) - local file = res[count] or res[1] - - if not file then return end - vim.cmd.edit(file) - end, - refs = function() - if buf_is_zest() then - search(string.format("ref:%s", vim.fn.expand("%:p"))) - end - end, - create = function() - local fname = (zest 'create')[1] - vim.cmd.edit(fname) - end -} - -function Zest_complete(arglead, cmdline, cursorpos) - local line_to_cursor = string.sub(cmdline, 1, cursorpos+1) - local elements = vim.split(line_to_cursor, '%s+') - local suggestions = {} - - if #elements == 2 then - for sub, _ in pairs(subcommands) do - if vim.startswith(sub, arglead) then - table.insert(suggestions, sub) - end - end - end - - return suggestions -end - -function Zest(count, cmd, ...) - if not cmd or type(cmd) ~= 'string' then - print("Missing subcommand") - end - - for sub, func in pairs(subcommands) do - if cmd == sub then func(count, ...) return end - end - - print(string.format("Unsupported command: %s", cmd)) -end - -vim.api.nvim_command[[command! -complete=customlist,v:lua.Zest_complete -count=0 -nargs=+ Zest lua Zest(<count>, <f-args>)]] - -vim.api.nvim_create_autocmd("Filetype", { - pattern = "markdown", - callback = function(args) - if buf_is_zest(args.buf) then - vim.api.nvim_create_autocmd("BufUnload", { - buffer = args.buf, - callback = function() - zest "reindex" - end - }) - end - end -}) - -return M diff --git a/queries/latex/highlights.scm b/queries/latex/highlights.scm @@ -1,252 +0,0 @@ -;; General syntax -(ERROR) @error - -(command_name) @function -(caption - command: _ @function) - -(key_value_pair - key: (_) @parameter - value: (_)) - -[ - (line_comment) - (block_comment) - (comment_environment) -] @comment - -(generic_command command: (_) @_note arg: (curly_group) @comment (#eq? @_note "\\note")) - -[ - (brack_group) - (brack_group_argc) -] @parameter - -[(operator) "="] @operator - -"\\item" @punctuation.special - -((word) @punctuation.delimiter -(#eq? @punctuation.delimiter "&")) - -["[" "]" "{" "}"] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX - -;; General environments -(begin - command: _ @text.environment - name: (curly_group_text (text) @text.environment.name)) - -(end - command: _ @text.environment - name: (curly_group_text (text) @text.environment.name)) - -;; Definitions and references -(new_command_definition - command: _ @function.macro - declaration: (curly_group_command_name (_) @function)) -(old_command_definition - command: _ @function.macro - declaration: (_) @function) -(let_command_definition - command: _ @function.macro - declaration: (_) @function) - -(environment_definition - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) - -(theorem_definition - command: _ @function.macro - name: (curly_group_text (_) @text.environment.name)) - -(paired_delimiter_definition - command: _ @function.macro - declaration: (curly_group_command_name (_) @function)) - -(label_definition - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) -(label_reference_range - command: _ @function.macro - from: (curly_group_text (_) @text.reference) - to: (curly_group_text (_) @text.reference)) -(label_reference - command: _ @function.macro - names: (curly_group_text_list (_) @text.reference)) -(label_number - command: _ @function.macro - name: (curly_group_text (_) @text.reference) - number: (_) @text.reference) - -(citation - command: _ @function.macro - keys: (curly_group_text_list) @text.reference) - -(glossary_entry_definition - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) -(glossary_entry_reference - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) - -(acronym_definition - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) -(acronym_reference - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) - -(color_definition - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) -(color_reference - command: _ @function.macro - name: (curly_group_text (_) @text.reference)) - -;; Math -[ - (displayed_equation) - (inline_formula) -] @text.math - -(math_environment - (begin - command: _ @text.math - name: (curly_group_text (text) @text.math))) - -(math_environment - (text) @text.math) - -(math_environment - (end - command: _ @text.math - name: (curly_group_text (text) @text.math))) - -;; Sectioning -(title_declaration - command: _ @namespace - options: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(author_declaration - command: _ @namespace - authors: (curly_group_author_list - ((author)+ @text.title))) - -(chapter - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(part - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(section - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(subsection - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(subsubsection - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(paragraph - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -(subparagraph - command: _ @namespace - toc: (brack_group (_) @text.title)? - text: (curly_group (_) @text.title)) - -;; Beamer frames -(generic_environment - (begin - name: (curly_group_text - (text) @text.environment.name) - (#any-of? @text.environment.name "frame")) - . - (curly_group (_) @text.title)) - -((generic_command - command: (command_name) @_name - arg: (curly_group - (text) @text.title)) - (#eq? @_name "\\frametitle")) - -;; Formatting -((generic_command - command: (command_name) @_name - arg: (curly_group (_) @text.emphasis)) - (#eq? @_name "\\emph")) - -((generic_command - command: (command_name) @_name - arg: (curly_group (_) @text.emphasis)) - (#match? @_name "^(\\\\textit|\\\\mathit)$")) - -((generic_command - command: (command_name) @_name - arg: (curly_group (_) @text.strong)) - (#match? @_name "^(\\\\textbf|\\\\mathbf)$")) - -((generic_command - command: (command_name) @_name - . - arg: (curly_group (_) @text.uri)) - (#match? @_name "^(\\\\url|\\\\href)$")) - -;; File inclusion commands -(class_include - command: _ @include - path: (curly_group_path) @string) - -(package_include - command: _ @include - paths: (curly_group_path_list) @string) - -(latex_include - command: _ @include - path: (curly_group_path) @string) -(import_include - command: _ @include - directory: (curly_group_path) @string - file: (curly_group_path) @string) - -(bibtex_include - command: _ @include - path: (curly_group_path) @string) -(biblatex_include - "\\addbibresource" @include - glob: (curly_group_glob_pattern) @string.regex) - -(graphics_include - command: _ @include - path: (curly_group_path) @string) -(tikz_library_import - command: _ @include - paths: (curly_group_path_list) @string) - -( - (word) @spell - (#not-has-ancestor? @spell - "inline_formula" - "displayed_equation" - "citation" - "command_name" - "label_reference" - "begin" - "end" - "key_value_pair" - "label_definition" - ) -) diff --git a/spell/default.utf-8.add b/spell/default.utf-8.add @@ -1,35 +0,0 @@ -MaxMCSat -MaxPMCSat -Vigouroux -CEGAR -Amossys -LLVM -VERIMAG -DBA -VEX -TAVA -bitvector -Dolev -Yao -FMCAD -CEGAR -compositionnels -non-linéaires -décorrélation -API -pseudo-contrôlabilité -réimplémentation -hyper-propriétés -Informellement -l'allocateur -d'allocateurs -compositionnelle -l'overflow -concolique -surapproximation -bas-niveau -incrémental -qu'industriels -GDR -GT -bugs