@@ -1085,71 +1085,6 @@ function Chat:fold_heading(heading)
10851085 return self
10861086end
10871087
1088- --- Fold code under the user's heading in the chat buffer
1089- --- @return self
1090- function Chat :fold_code ()
1091- -- NOTE: Folding is super brittle in Neovim
1092- if not self .has_folded_code then
1093- api .nvim_create_autocmd (" InsertLeave" , {
1094- group = self .aug ,
1095- buffer = self .bufnr ,
1096- desc = " Always fold code when a slash command is used" ,
1097- callback = function ()
1098- self :fold_code ()
1099- end ,
1100- })
1101- self .has_folded_code = true
1102- end
1103-
1104- local query = vim .treesitter .query .parse (
1105- " markdown" ,
1106- [[
1107- (section
1108- (
1109- (atx_heading
1110- (atx_h2_marker)
1111- heading_content: (_) @role
1112- )
1113- ([
1114- (fenced_code_block)
1115- (indented_code_block)
1116- ] @code (#trim! @code))
1117- ))
1118- ]]
1119- )
1120-
1121- local parser = vim .treesitter .get_parser (self .bufnr , " markdown" )
1122- local tree = parser :parse ()[1 ]
1123-
1124- vim .o .foldmethod = " manual"
1125-
1126- local role
1127- for _ , matches in query :iter_matches (tree :root (), self .bufnr , nil , nil , { all = false }) do
1128- local match = {}
1129- for id , node in pairs (matches ) do
1130- match = vim .tbl_extend (" keep" , match , {
1131- [query .captures [id ]] = {
1132- node = node ,
1133- },
1134- })
1135- end
1136-
1137- if match .role then
1138- role = vim .trim (vim .treesitter .get_node_text (match .role .node , self .bufnr ))
1139- if role :match (user_role ) and match .code then
1140- local start_row , _ , end_row , _ = match .code .node :range ()
1141- if start_row < end_row then
1142- api .nvim_buf_call (self .bufnr , function ()
1143- vim .cmd (string.format (" %d,%dfold" , start_row , end_row ))
1144- end )
1145- end
1146- end
1147- end
1148- end
1149-
1150- return self
1151- end
1152-
11531088--- CodeCompanion models completion source
11541089--- @param request table
11551090--- @param callback fun ( request : table )
0 commit comments