-
Notifications
You must be signed in to change notification settings - Fork 62
/
Copy pathediting.lua
143 lines (134 loc) · 3.4 KB
/
editing.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
return {
-- disables hungry features for files larget than 2MB
{ 'LunarVim/bigfile.nvim' },
-- add/delete/change can be done with the keymaps
-- ys{motion}{char}, ds{char}, and cs{target}{replacement}
{
'kylechui/nvim-surround',
event = 'VeryLazy',
opts = {},
},
{ -- commenting with e.g. `gcc` or `gcip`
-- respects TS, so it works in quarto documents 'numToStr/Comment.nvim',
'numToStr/Comment.nvim',
version = nil,
cond = function()
return vim.fn.has 'nvim-0.10' == 0
end,
branch = 'master',
config = true,
},
{ -- format things as tables
'godlygeek/tabular',
},
{ -- Autoformat
'stevearc/conform.nvim',
enabled = true,
config = function()
require('conform').setup {
notify_on_error = false,
format_on_save = {
timeout_ms = 500,
lsp_fallback = true,
},
formatters_by_ft = {
lua = { 'mystylua' },
python = { 'isort', 'black' },
},
formatters = {
mystylua = {
command = 'stylua',
args = { '--indent-type', 'Spaces', '--indent-width', '2', '-' },
},
},
}
-- Customize the "injected" formatter
require('conform').formatters.injected = {
-- Set the options field
options = {
-- Set to true to ignore errors
ignore_errors = false,
-- Map of treesitter language to file extension
-- A temporary file name with this extension will be generated during formatting
-- because some formatters care about the filename.
lang_to_ext = {
bash = 'sh',
c_sharp = 'cs',
elixir = 'exs',
javascript = 'js',
julia = 'jl',
latex = 'tex',
markdown = 'md',
python = 'py',
ruby = 'rb',
rust = 'rs',
teal = 'tl',
r = 'r',
typescript = 'ts',
},
-- Map of treesitter language to formatters to use
-- (defaults to the value from formatters_by_ft)
lang_to_formatters = {},
},
}
end,
},
{ -- generate docstrings
'danymat/neogen',
cmd = { 'Neogen' },
dependencies = 'nvim-treesitter/nvim-treesitter',
config = true,
},
{
'chrishrb/gx.nvim',
keys = { { 'gx', '<cmd>Browse<cr>', mode = { 'n', 'x' } } },
cmd = { 'Browse' },
init = function()
vim.g.netrw_nogx = 1 -- disable netrw gx
end,
dependencies = { 'nvim-lua/plenary.nvim' },
submodules = false, -- not needed, submodules are required only for tests
opts = {
handler_options = {
-- you can select between google, bing, duckduckgo, and ecosia
search_engine = 'duckduckgo',
},
},
},
{
'folke/flash.nvim',
enabled = false,
event = 'VeryLazy',
opts = {
modes = {
search = {
enabled = false,
},
},
},
keys = {
{
's',
mode = { 'n', 'x', 'o' },
function()
require('flash').jump()
end,
},
{
'S',
mode = { 'o', 'x' },
function()
require('flash').treesitter()
end,
},
},
},
-- interactive global search and replace
{
'nvim-pack/nvim-spectre',
cmd = { 'Spectre' },
dependencies = {
'nvim-lua/plenary.nvim',
},
},
}