|
9 | 9 | -- treesitter |
10 | 10 |
|
11 | 11 | return { |
12 | | - "nvim-treesitter/nvim-treesitter", |
13 | | - modules = {}, |
14 | | - build = ":TSUpdate", |
15 | | - event = { "BufReadPost", "BufNewFile" }, |
16 | | - dependencies = { |
17 | | - "nvim-treesitter/nvim-treesitter-textobjects", |
18 | | - "nvim-treesitter/playground", |
19 | | - }, |
20 | | - config = function() |
21 | | - require("nvim-treesitter.configs").setup({ |
22 | | - ensure_installed = { |
23 | | - "bash", |
24 | | - "c", |
25 | | - "cmake", |
26 | | - "comment", |
27 | | - "css", |
28 | | - "diff", |
29 | | - "dot", |
30 | | - "hjson", |
31 | | - "html", |
32 | | - "http", |
33 | | - "java", |
34 | | - "javascript", |
35 | | - "latex", |
36 | | - "lua", |
37 | | - "markdown", |
38 | | - "markdown_inline", |
39 | | - "php", |
40 | | - "python", |
41 | | - "query", |
42 | | - "regex", |
43 | | - "rust", |
44 | | - "scss", |
45 | | - "sql", |
46 | | - "toml", |
47 | | - "typescript", |
48 | | - "vim", |
49 | | - "vimdoc", |
50 | | - "yaml", |
51 | | - "scala", |
52 | | - }, |
53 | | - sync_install = false, |
54 | | - auto_install = true, |
55 | | - ignore_install = {}, |
| 12 | + "nvim-treesitter/nvim-treesitter", |
| 13 | + lazy = false, |
| 14 | + modules = {}, |
| 15 | + build = ":TSUpdate", |
| 16 | + event = { "BufReadPost", "BufNewFile" }, |
| 17 | + dependencies = { |
| 18 | + "nvim-treesitter/nvim-treesitter-textobjects", |
| 19 | + "nvim-treesitter/playground", |
| 20 | + }, |
| 21 | + config = function() |
| 22 | + require("nvim-treesitter.configs").setup({ |
| 23 | + ensure_installed = { |
| 24 | + "bash", |
| 25 | + "c", |
| 26 | + "cmake", |
| 27 | + "comment", |
| 28 | + "css", |
| 29 | + "diff", |
| 30 | + "dot", |
| 31 | + "hjson", |
| 32 | + "html", |
| 33 | + "http", |
| 34 | + "java", |
| 35 | + "javascript", |
| 36 | + "latex", |
| 37 | + "lua", |
| 38 | + "markdown", |
| 39 | + "markdown_inline", |
| 40 | + "php", |
| 41 | + "python", |
| 42 | + "query", |
| 43 | + "regex", |
| 44 | + "rust", |
| 45 | + "scss", |
| 46 | + "sql", |
| 47 | + "toml", |
| 48 | + "typescript", |
| 49 | + "vim", |
| 50 | + "vimdoc", |
| 51 | + "yaml", |
| 52 | + "scala", |
| 53 | + "dockerfile", |
| 54 | + "go", |
| 55 | + "typst", |
| 56 | + "zig", |
| 57 | + }, |
| 58 | + sync_install = false, |
| 59 | + auto_install = true, |
| 60 | + ignore_install = {}, |
56 | 61 |
|
57 | | - -- 🎨 Syntax highlighting |
58 | | - highlight = { |
59 | | - enable = true, |
60 | | - disable = function(lang, buf) |
61 | | - local max_filesize = 100 * 1024 -- 100 KB |
62 | | - local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) |
63 | | - if ok and stats and stats.size > max_filesize then |
64 | | - return true |
65 | | - end |
66 | | - end, |
67 | | - additional_vim_regex_highlighting = false, |
68 | | - }, |
| 62 | + -- 🎨 Syntax highlighting |
| 63 | + highlight = { |
| 64 | + enable = true, |
| 65 | + disable = function(lang, buf) |
| 66 | + local max_filesize = 100 * 1024 -- 100 KB |
| 67 | + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) |
| 68 | + if ok and stats and stats.size > max_filesize then |
| 69 | + return true |
| 70 | + end |
| 71 | + end, |
| 72 | + additional_vim_regex_highlighting = false, |
| 73 | + }, |
69 | 74 |
|
70 | | - -- 🧱 Smart indenting |
71 | | - indent = { |
72 | | - enable = true, |
73 | | - }, |
| 75 | + -- 🧱 Smart indenting |
| 76 | + indent = { |
| 77 | + enable = true, |
| 78 | + }, |
74 | 79 |
|
75 | | - -- 🎯 Incremental selection |
76 | | - incremental_selection = { |
77 | | - enable = true, |
78 | | - keymaps = { |
79 | | - init_selection = "<C-space>", |
80 | | - node_incremental = "<C-space>", |
81 | | - node_decremental = "<BS>", |
82 | | - scope_incremental = "<C-s>", |
83 | | - }, |
84 | | - }, |
| 80 | + -- 🎯 Incremental selection |
| 81 | + incremental_selection = { |
| 82 | + enable = true, |
| 83 | + keymaps = { |
| 84 | + init_selection = "<C-space>", |
| 85 | + node_incremental = "<C-space>", |
| 86 | + node_decremental = "<BS>", |
| 87 | + scope_incremental = "<C-s>", |
| 88 | + }, |
| 89 | + }, |
85 | 90 |
|
86 | | - -- 🧠 Textobjects (selection + movement) |
87 | | - textobjects = { |
88 | | - select = { |
89 | | - enable = true, |
90 | | - lookahead = true, |
91 | | - keymaps = { |
92 | | - ["af"] = "@function.outer", |
93 | | - ["if"] = "@function.inner", |
94 | | - ["ac"] = "@class.outer", |
95 | | - ["ic"] = "@class.inner", |
96 | | - }, |
97 | | - }, |
98 | | - move = { |
99 | | - enable = true, |
100 | | - set_jumps = true, |
101 | | - goto_next_start = { |
102 | | - ["]f"] = "@function.outer", |
103 | | - ["]c"] = "@class.outer", |
104 | | - }, |
105 | | - goto_previous_start = { |
106 | | - ["[f"] = "@function.outer", |
107 | | - ["[c"] = "@class.outer", |
108 | | - }, |
109 | | - }, |
110 | | - }, |
111 | | - }) |
| 91 | + -- 🧠 Textobjects (selection + movement) |
| 92 | + textobjects = { |
| 93 | + select = { |
| 94 | + enable = true, |
| 95 | + lookahead = true, |
| 96 | + keymaps = { |
| 97 | + ["af"] = "@function.outer", |
| 98 | + ["if"] = "@function.inner", |
| 99 | + ["ac"] = "@class.outer", |
| 100 | + ["ic"] = "@class.inner", |
| 101 | + }, |
| 102 | + }, |
| 103 | + move = { |
| 104 | + enable = true, |
| 105 | + set_jumps = true, |
| 106 | + goto_next_start = { |
| 107 | + ["]f"] = "@function.outer", |
| 108 | + ["]c"] = "@class.outer", |
| 109 | + }, |
| 110 | + goto_previous_start = { |
| 111 | + ["[f"] = "@function.outer", |
| 112 | + ["[c"] = "@class.outer", |
| 113 | + }, |
| 114 | + }, |
| 115 | + }, |
| 116 | + }) |
112 | 117 |
|
113 | | - -- Optional: Enable smart folding |
| 118 | + -- Optional: Enable smart folding |
114 | 119 |
|
115 | | - vim.o.foldenable = false -- disable folding on startup |
116 | | - vim.o.foldmethod = "expr" |
117 | | - vim.o.foldexpr = "nvim_treesitter#foldexpr()" |
| 120 | + vim.o.foldenable = false -- disable folding on startup |
| 121 | + vim.o.foldmethod = "expr" |
| 122 | + vim.o.foldexpr = "nvim_treesitter#foldexpr()" |
118 | 123 |
|
119 | | - -- Keymap to toggle folding logic |
120 | | - vim.keymap.set("n", "<leader>tf", function() |
121 | | - if vim.o.foldmethod == "manual" then |
122 | | - vim.o.foldmethod = "expr" |
123 | | - vim.o.foldexpr = "nvim_treesitter#foldexpr()" |
124 | | - print("Folding enabled") |
125 | | - else |
126 | | - vim.o.foldmethod = "manual" |
127 | | - print("Folding disabled") |
128 | | - end |
129 | | - end, { desc = "Toggle folding (Treesitter)" }) |
130 | | - end, |
| 124 | + -- Keymap to toggle folding logic |
| 125 | + vim.keymap.set("n", "<leader>tf", function() |
| 126 | + if vim.o.foldmethod == "manual" then |
| 127 | + vim.o.foldmethod = "expr" |
| 128 | + vim.o.foldexpr = "nvim_treesitter#foldexpr()" |
| 129 | + print("Folding enabled") |
| 130 | + else |
| 131 | + vim.o.foldmethod = "manual" |
| 132 | + print("Folding disabled") |
| 133 | + end |
| 134 | + end, { desc = "Toggle folding (Treesitter)" }) |
| 135 | + end, |
131 | 136 | } |
0 commit comments