Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc37ec3c

Browse files
authored
feat(config): add back selection source config option (#1360)
Reintroduce `selection` config option to choose between 'visual' and 'unnamed'selection sources. Update selection mark handling in select.lua to respectthe configured source, improving flexibility for user workflows.Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
1 parent8e2c2e2 commitc37ec3c

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

‎lua/CopilotChat/config.lua‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
---@fieldresourcesstring|table<string>|nil
2121
---@fieldstickystring|table<string>|nil
2222
---@fieldlanguagestring?
23+
---@fieldselection'visual'|'unnamed'|nil
2324
---@fieldtemperaturenumber?
2425
---@fieldheadlessboolean?
2526
---@fieldcallbacknil|fun(response:CopilotChat.client.Message,source:CopilotChat.source)
@@ -62,6 +63,7 @@ return {
6263
sticky=nil,-- Default sticky prompt or array of sticky prompts to use at start of every new chat (can be specified manually in prompt via >).
6364
language='English',-- Default language to use for answers
6465

66+
selection='visual',-- Selection source
6567
temperature=0.1,-- Result temperature
6668
headless=false,-- Do not write to chat buffer and use history (useful for using custom processing)
6769
callback=nil,-- Function called when full response is received

‎lua/CopilotChat/select.lua‎

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
localconstants=require('CopilotChat.constants')
1010
localutils=require('CopilotChat.utils')
11+
localconfig=require('CopilotChat.config')
1112

1213
localM= {}
1314

@@ -35,6 +36,16 @@ function M.unnamed(_)
3536
returnnil
3637
end
3738

39+
--- Get the marks used for selection
40+
---@returnstring[]
41+
functionM.marks()
42+
localmarks= {'<','>'}
43+
ifconfig.selection=='unnamed'then
44+
marks= {'[',']'}
45+
end
46+
returnmarks
47+
end
48+
3849
--- Highlight selection in target buffer or clear it
3950
---@parambufnrnumber
4051
---@paramclearboolean?
@@ -68,8 +79,9 @@ function M.get(bufnr)
6879
returnnil
6980
end
7081

71-
localstart_line=unpack(vim.api.nvim_buf_get_mark(bufnr,'<'))
72-
localfinish_line=unpack(vim.api.nvim_buf_get_mark(bufnr,'>'))
82+
localmarks=M.marks()
83+
localstart_line=unpack(vim.api.nvim_buf_get_mark(bufnr,marks[1]))
84+
localfinish_line=unpack(vim.api.nvim_buf_get_mark(bufnr,marks[2]))
7385
ifstart_line==0orfinish_line==0then
7486
returnnil
7587
end
@@ -106,17 +118,17 @@ function M.set(bufnr, winnr, start_line, end_line)
106118
return
107119
end
108120

121+
localmarks=M.marks()
122+
109123
ifnotstart_lineornotend_linethen
110-
for_,markinipairs({'<','>','[',']'})do
124+
for_,markinipairs(marks)do
111125
pcall(vim.api.nvim_buf_del_mark,bufnr,mark)
112126
end
113127
return
114128
end
115129

116-
pcall(vim.api.nvim_buf_set_mark,bufnr,'<',start_line,0, {})
117-
pcall(vim.api.nvim_buf_set_mark,bufnr,'>',end_line,0, {})
118-
pcall(vim.api.nvim_buf_set_mark,bufnr,'[',start_line,0, {})
119-
pcall(vim.api.nvim_buf_set_mark,bufnr,']',end_line,0, {})
130+
pcall(vim.api.nvim_buf_set_mark,bufnr,marks[1],start_line,0, {})
131+
pcall(vim.api.nvim_buf_set_mark,bufnr,marks[2],end_line,0, {})
120132

121133
ifwinnrandvim.api.nvim_win_is_valid(winnr)then
122134
pcall(vim.api.nvim_win_set_cursor,winnr, {start_line,0 })

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp