diff options
| author | Stefan Weigl-Bosker <stefan@s00.xyz> | 2026-02-25 22:23:10 -0500 |
|---|---|---|
| committer | Stefan Weigl-Bosker <stefan@s00.xyz> | 2026-02-25 22:23:10 -0500 |
| commit | 6f7dea05e7d1929936989e349ef43e9d42215b66 (patch) | |
| tree | 106975be14f8dc99a8baccfd3d89fec1fcda5b4b /modules | |
| parent | 25c75e648b9432567b874db2c3b9e787b038faa9 (diff) | |
| download | home-6f7dea05e7d1929936989e349ef43e9d42215b66.tar.gz | |
modules/neovim: prep for breaking treesitter changes
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/neovim/default.nix | 1 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/treesitter.lua | 105 |
2 files changed, 85 insertions, 21 deletions
diff --git a/modules/neovim/default.nix b/modules/neovim/default.nix index dacb7d7..d940448 100644 --- a/modules/neovim/default.nix +++ b/modules/neovim/default.nix @@ -114,6 +114,7 @@ in nvim-treesitter-parsers.prolog nvim-treesitter-parsers.mlir nvim-treesitter-parsers.starlark + nvim-treesitter-context nvim-treesitter-textobjects diff --git a/modules/neovim/nvim/lua/config/treesitter.lua b/modules/neovim/nvim/lua/config/treesitter.lua index b30781d..f47f60b 100644 --- a/modules/neovim/nvim/lua/config/treesitter.lua +++ b/modules/neovim/nvim/lua/config/treesitter.lua @@ -1,24 +1,87 @@ -require("nvim-treesitter.configs").setup { - highlight = { enable = true }, - indent = { enable = false }, - incremental_selection = { - enable = true, - keymaps = { - -- init_selection = "gnn", - node_incremental = "aa", - node_decremental = "ii", - }, - }, - -- highlight = { - -- enable = false, - -- disable = function(lang, buf) - -- local max_filesize = 100 * 1024 -- 100 KB - -- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) - -- if ok and stats and stats.size > max_filesize then - -- return true - -- end - -- end, - -- }, +-- require("nvim-treesitter.configs").setup { +-- highlight = { enable = true }, +-- indent = { enable = false }, +-- incremental_selection = { +-- enable = true, +-- keymaps = { +-- -- init_selection = "gnn", +-- node_incremental = "aa", +-- node_decremental = "ii", +-- }, +-- }, +-- highlight = { +-- enable = false, +-- disable = function(lang, buf) +-- local max_filesize = 100 * 1024 -- 100 KB +-- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) +-- if ok and stats and stats.size > max_filesize then +-- return true +-- end +-- end, +-- }, +-- } + +vim.api.nvim_create_autocmd("FileType", { + pattern = { + "lua", + "cpp", + "nix", + "scala", + "nu", + "go", + "rst", + "css", + "yaml", + "toml", + "scss", + "json", + "html", + "bash", + "query", + "ocaml", + "ocaml-interface", + "tex", + "python", + "bibtex", + "comment", + "dockerfile", + "make", + "cmake", + "scheme", + "llvm", + "html", + "glsl", + "devicetree", + "cuda", + "c", + "cpp", + "zig", + "rust", + "haskell", + "toml", + "markdown", + "markdown-inline", + "tablegen", + }, + callback = function() + vim.treesitter.start() + end, +}) + +require'treesitter-context'.setup{ + enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) + multiwindow = false, -- Enable multiwindow support. + max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit. + min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit. + line_numbers = true, + multiline_threshold = 20, -- Maximum number of lines to show for a single context + trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' + mode = 'cursor', -- Line used to calculate context. Choices: 'cursor', 'topline' + -- Separator between context and content. Should be a single character string, like '-'. + -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. + separator = nil, + zindex = 20, -- The Z-index of the context window + on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching } -- require("nvim-treesitter-textobjects").setup({ |