Compare commits
5 Commits
a4f2b22f7a
...
cbe2ac12ef
| Author | SHA1 | Date | |
|---|---|---|---|
| cbe2ac12ef | |||
| c27eb5c525 | |||
| 6c19e9650e | |||
| 62bb06793d | |||
| b6457ecfac |
@@ -28,7 +28,7 @@
|
||||
"nvim-ufo": { "branch": "main", "commit": "72d54c31079d38d8dfc5456131b1d0fb5c0264b0" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" },
|
||||
"oil.nvim": { "branch": "master", "commit": "81b8a91735ad5cd24a6b3137f14a89f19176364f" },
|
||||
"parrot.nvim": { "branch": "main", "commit": "dcae923c7070431c8cb628b19594ab640168684c" },
|
||||
"parrot.nvim": { "branch": "main", "commit": "5d7e72bdc3efe2638e1bd94ff55028ecc40edd7a" },
|
||||
"plenary": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
|
||||
|
||||
@@ -19,10 +19,13 @@ return {
|
||||
active = function(filter)
|
||||
local snippet = require('luasnip')
|
||||
local blink = require('blink.cmp')
|
||||
if snippet.in_snippet() and not blink.is_visible() then
|
||||
if snippet.in_snippet() then
|
||||
return true
|
||||
else
|
||||
if not snippet.in_snippet() and vim.fn.mode() == 'n' then snippet.unlink_current() end
|
||||
if not snippet.in_snippet() and vim.fn.mode() == 'n' then
|
||||
snippet.unlink_current()
|
||||
vim.snippet.stop()
|
||||
end
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
@@ -24,8 +24,6 @@ return {
|
||||
config = function()
|
||||
vim.diagnostic.config({ virtual_text = false })
|
||||
|
||||
local lspconfig = require('lspconfig')
|
||||
|
||||
-- load snippets from friendly-snippets
|
||||
require('luasnip.loaders.from_vscode').lazy_load()
|
||||
|
||||
@@ -52,11 +50,11 @@ return {
|
||||
})
|
||||
|
||||
local lazydev = require('lazydev')
|
||||
lazydev.setup()
|
||||
vim.lsp.config('lua_ls', {
|
||||
root_dir = function(bufnr, on_dir) on_dir(lazydev.find_workspace(bufnr)) end
|
||||
})
|
||||
|
||||
---@module 'lspconfig'
|
||||
---@type lspconfig.Config
|
||||
vim.lsp.config('pylsp', {
|
||||
settings = {
|
||||
|
||||
@@ -1,44 +1,50 @@
|
||||
return {
|
||||
'frankroeder/parrot.nvim',
|
||||
version = '2.3.0',
|
||||
version = '2.5.1',
|
||||
dependencies = { 'ibhagwan/fzf-lua', 'nvim-lua/plenary.nvim' },
|
||||
opts = {
|
||||
providers = {
|
||||
anthropic = {
|
||||
name = 'anthropic',
|
||||
endpoint = 'https://api.anthropic.com/v1/messages',
|
||||
model_endpoint = 'https://api.anthropic.com/v1/models',
|
||||
api_key = { '/usr/local/bin/sops', "--config", "/dev/null", "-d", vim.fn.expand("$HOME") .. "/.claude-api" },
|
||||
headers = function(self)
|
||||
return {
|
||||
['Content-Type'] = "application/json",
|
||||
['x-api-key'] = self.api_key,
|
||||
['anthropic-version'] = "2023-06-01",
|
||||
}
|
||||
end,
|
||||
params = {
|
||||
chat = { max_tokens = 4096 },
|
||||
command = { max_tokens = 4096 },
|
||||
},
|
||||
models = {
|
||||
'claude-opus-4-5-20251101',
|
||||
'claude-haiku-4-5-20251001',
|
||||
},
|
||||
preprocess_payload = function(payload)
|
||||
for _, message in ipairs(payload.messages) do
|
||||
message.content = message.content:gsub('^%s*(.-)%s*$', "%1")
|
||||
end
|
||||
if payload.messages[1] and payload.messages[1].role == 'system' then
|
||||
-- remove the first message that serves as the system prompt as anthropic
|
||||
-- expects the system prompt to be part of the API call body and not the messages
|
||||
payload.system = payload.messages[1].content
|
||||
table.remove(payload.messages, 1)
|
||||
end
|
||||
return payload
|
||||
end,
|
||||
}
|
||||
},
|
||||
user_input_ui = "buffer",
|
||||
}
|
||||
config = function()
|
||||
local parrot_opts = {
|
||||
providers = {
|
||||
anthropic = {
|
||||
name = 'anthropic',
|
||||
endpoint = 'https://api.anthropic.com/v1/messages',
|
||||
model_endpoint = 'https://api.anthropic.com/v1/models',
|
||||
api_key = { '/usr/local/bin/sops', '--config', '/dev/null', '-d', vim.fn.expand('$HOME') .. '/.claude-api' },
|
||||
headers = function(self)
|
||||
return {
|
||||
['Content-Type'] = 'application/json',
|
||||
['x-api-key'] = self.api_key,
|
||||
['anthropic-version'] = '2023-06-01',
|
||||
}
|
||||
end,
|
||||
params = {
|
||||
chat = { max_tokens = 4096 },
|
||||
command = { max_tokens = 4096 },
|
||||
},
|
||||
models = {
|
||||
'claude-opus-4-6',
|
||||
'claude-sonet-4-5',
|
||||
'claude-haiku-4-5',
|
||||
},
|
||||
preprocess_payload = function(payload)
|
||||
for _, message in ipairs(payload.messages) do
|
||||
message.content = message.content:gsub('^%s*(.-)%s*$', "%1")
|
||||
end
|
||||
if payload.messages[1] and payload.messages[1].role == 'system' then
|
||||
-- remove the first message that serves as the system prompt as anthropic
|
||||
-- expects the system prompt to be part of the API call body and not the messages
|
||||
payload.system = payload.messages[1].content
|
||||
table.remove(payload.messages, 1)
|
||||
end
|
||||
return payload
|
||||
end,
|
||||
}
|
||||
},
|
||||
user_input_ui = 'buffer',
|
||||
}
|
||||
|
||||
local parrot = require('parrot')
|
||||
parrot.setup(parrot_opts)
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ return {
|
||||
available = function()
|
||||
return vim.fn.isdirectory('.git') == 1
|
||||
end
|
||||
}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user