@@ -28,17 +28,21 @@ local neorg = require("neorg.core")
28
28
local modules = neorg .modules
29
29
30
30
local module = modules .create (" core.promo" )
31
+ local indent
31
32
32
33
module .setup = function ()
33
34
return {
34
35
success = true ,
35
36
requires = {
36
37
" core.integrations.treesitter" ,
38
+ " core.esupports.indent" ,
37
39
},
38
40
}
39
41
end
40
42
41
43
module .load = function ()
44
+ --- @type core.esupports.indent
45
+ indent = module .required [" core.esupports.indent" ]
42
46
modules .await (" core.keybinds" , function (keybinds )
43
47
keybinds .register_keybinds (
44
48
module .name ,
@@ -83,30 +87,6 @@ module.private = {
83
87
get_line = function (buffer , target_row )
84
88
return vim .api .nvim_buf_get_lines (buffer , target_row , target_row + 1 , true )[1 ]
85
89
end ,
86
-
87
- buffer_set_line_indent = function (buffer , start_row , new_indent )
88
- local line = module .private .get_line (buffer , start_row )
89
-
90
- if line :match (" ^%s*$" ) then
91
- return
92
- end
93
-
94
- local leading_whitespace = line :match (" ^%s*" ):len ()
95
-
96
- return vim .api .nvim_buf_set_text (buffer , start_row , 0 , start_row , leading_whitespace , { (" " ):rep (new_indent ) })
97
- end ,
98
-
99
- reindent_range = function (buffer , row_start , row_end )
100
- local indent_module = modules .get_module (" core.esupports.indent" )
101
- if not indent_module then
102
- return
103
- end
104
-
105
- for i = row_start , row_end - 1 do
106
- local indent_level = indent_module .indentexpr (buffer , i )
107
- module .private .buffer_set_line_indent (buffer , i , indent_level )
108
- end
109
- end ,
110
90
}
111
91
112
92
--- @class core.promo
@@ -191,7 +171,7 @@ module.public = {
191
171
local current_visual_indent = vim .fn .indent (row + 1 )
192
172
local new_indent = math.max (0 , current_visual_indent + n_space_diff )
193
173
194
- module . private .buffer_set_line_indent (buffer , row , new_indent )
174
+ indent .buffer_set_line_indent (buffer , row , new_indent )
195
175
return
196
176
end
197
177
@@ -290,7 +270,7 @@ module.public = {
290
270
return
291
271
end
292
272
293
- module . private .reindent_range (buffer , indent_row_start , indent_row_end )
273
+ indent .reindent_range (buffer , indent_row_start , indent_row_end )
294
274
end ,
295
275
}
296
276
@@ -312,15 +292,15 @@ module.on_event = neorg.utils.wrap_dotrepeat(function(event)
312
292
for i = start_pos [1 ], end_pos [1 ] do
313
293
module .public .promote_or_demote (event .buffer , " promote" , i - 1 , false , false )
314
294
end
315
- module . private .reindent_range (event .buffer , start_pos [1 ], end_pos [1 ])
295
+ indent .reindent_range (event .buffer , start_pos [1 ], end_pos [1 ])
316
296
elseif event .split_type [2 ] == " core.promo.demote_range" then
317
297
local start_pos = vim .api .nvim_buf_get_mark (event .buffer , " <" )
318
298
local end_pos = vim .api .nvim_buf_get_mark (event .buffer , " >" )
319
299
320
300
for i = start_pos [1 ], end_pos [1 ] do
321
301
module .public .promote_or_demote (event .buffer , " demote" , i - 1 , false , false )
322
302
end
323
- module . private .reindent_range (event .buffer , start_pos [1 ], end_pos [1 ])
303
+ indent .reindent_range (event .buffer , start_pos [1 ], end_pos [1 ])
324
304
end
325
305
end )
326
306
0 commit comments