-
Notifications
You must be signed in to change notification settings - Fork 0
/
conf.lua
147 lines (144 loc) · 4.34 KB
/
conf.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
144
145
146
147
M = {
options = {},
defaults = {
new_tab = true, -- should we open new tab for QA (for supporting async QA)
ui = {
layout = {
size = {
width = "95%",
height = "95%",
},
},
},
dialog = {
-- Dialog shortcuts
-- - close a dialog
exit_keys = {
"q", "<c-c>", "<esc>"
},
-- QA Dialog shortcuts
-- - append the response to original buffer
append_keys = {
"<C-a>"
},
-- - replace the selected buffer (or current line) with the response
replace_keys = {
"<C-r>"
},
-- - yank the response to clipboard
yank_keys = {
"<C-y>"
},
},
-- config about building (q)uestions
q_build = {
-- repository-level configs
repo = {
reg = "p", -- the register to inject re(p)ository-level infos
header = "Below are some relavant files", -- the header for multiple files
}
},
-- shortcuts to actions: directly loading specific template and sent to target
shortcuts = {
{
mode = { "n", "v" },
key = "<LocalLeader>sr",
tpl = "complete_writing_replace.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "(R)ewrite Text" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sR",
tpl = "complete_writing_replace.json",
target = "diff",
reg = {
r = "No extra explanations. No block quotes. Output only the rewritten text. Maintain prefix spaces and indentations.",
},
opts = { noremap = true, silent = true, desc = "(R)ewrite Text in Diff" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sc",
tpl = "code_complete.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "(C)omplete Code" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sC",
tpl = "code_complete_no_explain.json",
target = "diff",
opts = { noremap = true, silent = true, desc = "(C)omplete Code no explain" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sg",
tpl = "fix_grammar.json",
target = "diff",
reg = {
r = "No extra explanations. No block quotes. Output only the rewritten text. Maintain prefix spaces and indentations.",
},
opts = { noremap = true, silent = true, desc = "Fix (g)rammar" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sd",
tpl = "condensing.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "Con(d)ense" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>st",
tpl = "continue.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "Con(t)inue" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>se",
tpl = "code_explain.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "(E)xplain or Question" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sf",
tpl = "fix_bug_with_err.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "(F)ix errors" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sE",
tpl = "explain_text.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "(E)xplain Text with Trans" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sT",
tpl = "translate.json",
target = "popup",
opts = { noremap = true, silent = true, desc = "(T)ranslate" },
},
{
mode = { "n", "v" },
key = "<LocalLeader>sq",
tpl = "question.json",
target = "chat",
opts = { noremap = true, silent = true, desc = "Ask (q)uestion with content" },
},
},
tpl_conf = { -- configure that will affect the rendering of the templates.
context_len = 10, -- the number of lines before and after the current line as context
content_max_len = 100, -- the max number of lines to show as full content
}
}
}
function M.setup(options)
options = options or {}
M.options = vim.tbl_deep_extend("force", {}, M.defaults, options)
end
return M