blink experiment
This commit is contained in:
@ -67,7 +67,7 @@ function M.setup(capabilities)
|
|||||||
end
|
end
|
||||||
|
|
||||||
lspconfig.ciderlsp.setup({
|
lspconfig.ciderlsp.setup({
|
||||||
capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
|
capabilities = capabilities,
|
||||||
on_attach = cider_on_attach,
|
on_attach = cider_on_attach,
|
||||||
handlers = cider_lsp_handlers,
|
handlers = cider_lsp_handlers,
|
||||||
})
|
})
|
||||||
|
118
vim/.vim/lua/plugins/blink.lua
Normal file
118
vim/.vim/lua/plugins/blink.lua
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
local use_google = require("utils").use_google
|
||||||
|
local flags = require("utils").flags
|
||||||
|
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"saghen/blink.compat",
|
||||||
|
-- use the latest release, via version = '*', if you also use the latest release for blink.cmp
|
||||||
|
version = "*",
|
||||||
|
-- lazy.nvim will automatically load the plugin when it's required by blink.cmp
|
||||||
|
lazy = true,
|
||||||
|
-- make sure to set opts so that lazy.nvim calls blink.compat's setup
|
||||||
|
opts = {},
|
||||||
|
cond = flags.blink,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"saghen/blink.cmp",
|
||||||
|
lazy = false, -- lazy loading handled internally
|
||||||
|
cond = flags.blink,
|
||||||
|
dependencies = {
|
||||||
|
"Exafunction/codeium.nvim",
|
||||||
|
"mikavilpas/blink-ripgrep.nvim",
|
||||||
|
"hrsh7th/cmp-cmdline",
|
||||||
|
-- "FelipeLema/cmp-async-path",
|
||||||
|
"chrisgrieser/cmp-nerdfont",
|
||||||
|
"hrsh7th/cmp-emoji",
|
||||||
|
"rafamadriz/friendly-snippets", -- optional: provides snippets for the snippet source
|
||||||
|
},
|
||||||
|
version = "v0.*", -- use a release tag to download pre-built binaries
|
||||||
|
-- build = 'cargo build --release',
|
||||||
|
|
||||||
|
---@module 'blink.cmp'
|
||||||
|
---@type blink.cmp.Config
|
||||||
|
opts = {
|
||||||
|
keymap = {
|
||||||
|
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
|
||||||
|
["<C-e>"] = { "hide", "fallback" },
|
||||||
|
["<CR>"] = { "accept", "fallback" },
|
||||||
|
|
||||||
|
["<Tab>"] = { "snippet_forward", "fallback" },
|
||||||
|
["<S-Tab>"] = { "snippet_backward", "fallback" },
|
||||||
|
|
||||||
|
["<Up>"] = { "select_prev", "fallback" },
|
||||||
|
["<Down>"] = { "select_next", "fallback" },
|
||||||
|
|
||||||
|
["<S-Up>"] = { "scroll_documentation_up", "fallback" },
|
||||||
|
["<S-Down>"] = { "scroll_documentation_down", "fallback" },
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
providers = function()
|
||||||
|
local providerToEnable = {
|
||||||
|
"lsp",
|
||||||
|
"path",
|
||||||
|
"crates",
|
||||||
|
"snippets",
|
||||||
|
"buffer",
|
||||||
|
"ripgrep",
|
||||||
|
"emoji",
|
||||||
|
"nerdfont",
|
||||||
|
}
|
||||||
|
print("sources")
|
||||||
|
if use_google() then
|
||||||
|
table.insert(providerToEnable, "nvim_ciderlsp")
|
||||||
|
table.insert(providerToEnable, "buganizer")
|
||||||
|
else
|
||||||
|
table.insert(providerToEnable, "codeium")
|
||||||
|
end
|
||||||
|
return providerToEnable
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
providers = {
|
||||||
|
-- dont show LuaLS require statements when lazydev has items
|
||||||
|
lsp = { fallback_for = { "lazydev" } },
|
||||||
|
lazydev = { name = "LazyDev", module = "lazydev.integrations.blink" },
|
||||||
|
ripgrep = {
|
||||||
|
module = "blink-ripgrep",
|
||||||
|
name = "Ripgrep",
|
||||||
|
-- the options below are optional, some default values are shown
|
||||||
|
---@module "blink-ripgrep"
|
||||||
|
---@type blink-ripgrep.Options
|
||||||
|
opts = {
|
||||||
|
prefix_min_len = 3,
|
||||||
|
context_size = 5,
|
||||||
|
max_filesize = "1M",
|
||||||
|
additional_rg_options = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nvim_ciderlsp = {
|
||||||
|
name = "nvim_ciderlsp",
|
||||||
|
module = "blink.compat.source",
|
||||||
|
},
|
||||||
|
buganizer = {
|
||||||
|
name = "nvim_buganizer",
|
||||||
|
module = "blink.compat.source",
|
||||||
|
},
|
||||||
|
codeium = {
|
||||||
|
name = "codeium",
|
||||||
|
module = "blink.compat.source",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- experimental signature help support
|
||||||
|
signature = { enabled = true },
|
||||||
|
completion = {
|
||||||
|
trigger = {
|
||||||
|
show_on_x_blocked_trigger_characters = { "'", '"', "(", "{" },
|
||||||
|
},
|
||||||
|
menu = {
|
||||||
|
draw = {
|
||||||
|
-- columns = { { "label", "label_description", gap = 1 }, { "kind_icon", "kind" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- allows extending the providers array elsewhere in your config
|
||||||
|
-- without having to redefine it
|
||||||
|
opts_extend = { "sources.default" },
|
||||||
|
},
|
||||||
|
}
|
@ -1,22 +1,11 @@
|
|||||||
local use_google = require("utils").use_google
|
local use_google = require("utils").use_google
|
||||||
|
local flags = require("utils").flags
|
||||||
local function compare_by_ciderlsp_score(entry1, entry2)
|
|
||||||
if entry1.completion_item.score ~= nil and entry2.completion_item.score ~= nil then
|
|
||||||
print("LSP score " .. entry1.completion_item.score)
|
|
||||||
print("LSP score " .. entry2.completion_item.score)
|
|
||||||
return entry1.completion_item.score > entry2.completion_item.score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local has_words_before = function()
|
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
|
||||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"hrsh7th/nvim-cmp",
|
"hrsh7th/nvim-cmp",
|
||||||
event = { "InsertEnter", "CmdlineEnter" },
|
event = { "InsertEnter", "CmdlineEnter" },
|
||||||
|
cond = not flags.blink,
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"Exafunction/codeium.nvim",
|
"Exafunction/codeium.nvim",
|
||||||
"FelipeLema/cmp-async-path",
|
"FelipeLema/cmp-async-path",
|
||||||
|
@ -42,6 +42,6 @@ return {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
keys = { { "<C-Space>", ":Dashboard<CR>" } },
|
-- keys = { { "<C-Space>", ":Dashboard<CR>" } },
|
||||||
dependencies = { { "nvim-tree/nvim-web-devicons" } },
|
dependencies = { { "nvim-tree/nvim-web-devicons" } },
|
||||||
}
|
}
|
||||||
|
11
vim/.vim/lua/plugins/lazydev.lua
Normal file
11
vim/.vim/lua/plugins/lazydev.lua
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
return {
|
||||||
|
"folke/lazydev.nvim",
|
||||||
|
ft = "lua", -- only load on lua files
|
||||||
|
opts = {
|
||||||
|
library = {
|
||||||
|
-- See the configuration section for more details
|
||||||
|
-- Load luvit types when the `vim.uv` word is found
|
||||||
|
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
local use_google = require("utils").use_google
|
local use_google = require("utils").use_google
|
||||||
|
local flags = require("utils").flags
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
@ -66,8 +67,9 @@ return {
|
|||||||
},
|
},
|
||||||
-- cond = not use_google(),
|
-- cond = not use_google(),
|
||||||
config = function()
|
config = function()
|
||||||
local capabilities =
|
local capabilities = flags.blink
|
||||||
require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
and require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
|
or require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
capabilities.offsetEncoding = { "utf-16" }
|
capabilities.offsetEncoding = { "utf-16" }
|
||||||
require("go").setup({
|
require("go").setup({
|
||||||
lsp_cfg = { capabilities = capabilities },
|
lsp_cfg = { capabilities = capabilities },
|
||||||
@ -87,7 +89,6 @@ return {
|
|||||||
group = format_sync_grp,
|
group = format_sync_grp,
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
event = { "CmdlineEnter" },
|
|
||||||
ft = { "go", "gomod" },
|
ft = { "go", "gomod" },
|
||||||
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
|
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
|
||||||
},
|
},
|
||||||
@ -118,11 +119,9 @@ return {
|
|||||||
local lsp_status = require("lsp-status")
|
local lsp_status = require("lsp-status")
|
||||||
lsp_status.register_progress()
|
lsp_status.register_progress()
|
||||||
|
|
||||||
vim.opt.spell = true
|
local capabilities = flags.blink
|
||||||
vim.opt.spelllang = { "en_us" }
|
and require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
|
or require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
local capabilities =
|
|
||||||
require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
|
||||||
capabilities = vim.tbl_extend("keep", capabilities or {}, lsp_status.capabilities)
|
capabilities = vim.tbl_extend("keep", capabilities or {}, lsp_status.capabilities)
|
||||||
capabilities.offsetEncoding = { "utf-16" }
|
capabilities.offsetEncoding = { "utf-16" }
|
||||||
|
|
||||||
|
@ -23,7 +23,6 @@ return {
|
|||||||
TableConcat(lsps, {
|
TableConcat(lsps, {
|
||||||
"pyright",
|
"pyright",
|
||||||
"omnisharp_mono",
|
"omnisharp_mono",
|
||||||
"tsserver",
|
|
||||||
"docker_compose_language_service",
|
"docker_compose_language_service",
|
||||||
"dockerls",
|
"dockerls",
|
||||||
"graphql",
|
"graphql",
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
return {
|
|
||||||
"folke/neodev.nvim",
|
|
||||||
config = function()
|
|
||||||
require("neodev").setup({
|
|
||||||
library = { plugins = { "nvim-dap-ui" }, types = true },
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
return {
|
|
||||||
"smartpde/neoscopes",
|
|
||||||
config = function()
|
|
||||||
require("neoscopes").setup({
|
|
||||||
scopes = {
|
|
||||||
{
|
|
||||||
name = "earlycheckin",
|
|
||||||
dirs = {
|
|
||||||
"java/com/google/android/gmscore/tools/earlycheckin/",
|
|
||||||
"javatests/com/google/android/gmscore/tools/earlycheckin/",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ name = "experimental", dirs = { "experimental/users/cnieves" } },
|
|
||||||
},
|
|
||||||
-- add_dirs_to_all_scopes = {
|
|
||||||
-- "~/dotfiles",
|
|
||||||
-- },
|
|
||||||
})
|
|
||||||
|
|
||||||
local scopes = require("neoscopes")
|
|
||||||
scopes.add_startup_scope()
|
|
||||||
end,
|
|
||||||
}
|
|
@ -1,18 +1,4 @@
|
|||||||
return {
|
return {
|
||||||
-- {
|
|
||||||
-- "dstein64/nvim-scrollview",
|
|
||||||
-- config = function()
|
|
||||||
-- require("scrollview").setup({
|
|
||||||
-- excluded_filetypes = { "nerdtree" },
|
|
||||||
-- current_only = true,
|
|
||||||
-- -- base = "buffer",
|
|
||||||
-- -- column = 80,
|
|
||||||
-- signs_on_startup = { "all" },
|
|
||||||
-- diagnostics_severities = { vim.diagnostic.severity.ERROR },
|
|
||||||
-- })
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"petertriho/nvim-scrollbar",
|
"petertriho/nvim-scrollbar",
|
||||||
config = function()
|
config = function()
|
||||||
@ -30,22 +16,4 @@ return {
|
|||||||
end,
|
end,
|
||||||
lazy = false,
|
lazy = false,
|
||||||
},
|
},
|
||||||
-- {
|
|
||||||
-- "kevinhwang91/nvim-hlslens",
|
|
||||||
-- config = function()
|
|
||||||
-- require("hlslens").setup({
|
|
||||||
-- nearest_only = true,
|
|
||||||
-- build_position_cb = function(plist, _, _, _)
|
|
||||||
-- require("scrollbar.handlers.search").handler.show(plist.start_pos)
|
|
||||||
-- end,
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
-- vim.cmd([[
|
|
||||||
-- augroup scrollbar_search_hide
|
|
||||||
-- autocmd!
|
|
||||||
-- autocmd CmdlineLeave : lua require('scrollbar.handlers.search').handler.hide()
|
|
||||||
-- augroup END
|
|
||||||
-- ]])
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
local use_google = require("utils").use_google
|
local use_google = require("utils").use_google
|
||||||
local exec = require("utils").exec
|
local exec = require("utils").exec
|
||||||
local TableConcat = require("utils").TableConcat
|
local TableConcat = require("utils").TableConcat
|
||||||
local scopes = require("neoscopes")
|
|
||||||
|
|
||||||
_G.find_files = function(search_dirs)
|
_G.find_files = function(search_dirs)
|
||||||
require("telescope.builtin").find_files({ search_dirs = search_dirs, })
|
require("telescope.builtin").find_files({ search_dirs = search_dirs })
|
||||||
end
|
end
|
||||||
-- Helper functions to fetch the current scope and set `search_dirs`
|
-- Helper functions to fetch the current scope and set `search_dirs`
|
||||||
_G.find_dotfiles = function()
|
_G.find_dotfiles = function() end
|
||||||
end
|
|
||||||
|
|
||||||
_G.search_cwd = function()
|
_G.search_cwd = function()
|
||||||
local builtin = require("telescope.builtin")
|
local builtin = require("telescope.builtin")
|
||||||
@ -23,7 +21,7 @@ _G.live_grep = function(search_dirs)
|
|||||||
end
|
end
|
||||||
|
|
||||||
_G.live_grep_cword = function(search_dirs)
|
_G.live_grep_cword = function(search_dirs)
|
||||||
require("telescope.builtin").live_grep({ search_dirs = search_dirs, })
|
require("telescope.builtin").live_grep({ search_dirs = search_dirs })
|
||||||
end
|
end
|
||||||
|
|
||||||
local function exe(cmd)
|
local function exe(cmd)
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
local M = {
|
local M = {
|
||||||
use_google_cache = nil,
|
use_google_cache = nil,
|
||||||
|
flags = {
|
||||||
|
blink = false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
function M.exec(command, args)
|
function M.exec(command, args)
|
||||||
|
25
vim/.vimrc
25
vim/.vimrc
@ -8,13 +8,7 @@ set undofile
|
|||||||
set nobackup
|
set nobackup
|
||||||
set formatoptions+=j
|
set formatoptions+=j
|
||||||
set nowritebackup
|
set nowritebackup
|
||||||
au BufWritePre * let &bex = '@' . strftime("%F.%H:%M")
|
|
||||||
|
|
||||||
set termguicolors
|
set termguicolors
|
||||||
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
|
|
||||||
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
|
|
||||||
let &t_AB="\e[48;5;%dm"
|
|
||||||
let &t_AF="\e[38;5;%dm"
|
|
||||||
|
|
||||||
set laststatus=2
|
set laststatus=2
|
||||||
set cmdheight=1
|
set cmdheight=1
|
||||||
@ -43,8 +37,11 @@ set hlsearch " highlight matches
|
|||||||
set splitright " Puts new vsplit windows to the right of the current
|
set splitright " Puts new vsplit windows to the right of the current
|
||||||
set splitbelow " Puts new split windows to the bottom of the current
|
set splitbelow " Puts new split windows to the bottom of the current
|
||||||
|
|
||||||
|
" When set to a negative number from -1 to -100 this is used as the
|
||||||
|
" percentage of the window height. Thus -50 scrolls half the window
|
||||||
|
" height.
|
||||||
set scrolljump=5 " Line to scroll when cursor leaves screen
|
set scrolljump=5 " Line to scroll when cursor leaves screen
|
||||||
set scrolloff=3 " Minimum lines to keep above and below cursor
|
" set scrolloff=3 " Minimum lines to keep above and below cursor
|
||||||
|
|
||||||
set shortmess=A " disable swapg
|
set shortmess=A " disable swapg
|
||||||
set shortmess+=O
|
set shortmess+=O
|
||||||
@ -52,19 +49,10 @@ set modifiable
|
|||||||
set noscrollbind
|
set noscrollbind
|
||||||
set expandtab
|
set expandtab
|
||||||
|
|
||||||
source ~/.vim/prefs/mappings.vim
|
|
||||||
source ~/.vim/prefs/leader.vim
|
|
||||||
|
|
||||||
set encoding=utf-8
|
set encoding=utf-8
|
||||||
|
|
||||||
set t_Co=256
|
set t_Co=256
|
||||||
|
|
||||||
let base16colorspace=256
|
let base16colorspace=256
|
||||||
set colorcolumn=100
|
set colorcolumn=100
|
||||||
|
|
||||||
if (has("termguicolors"))
|
|
||||||
set termguicolors
|
|
||||||
endif
|
|
||||||
set background=dark
|
set background=dark
|
||||||
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
||||||
|
|
||||||
@ -96,3 +84,8 @@ let g:loaded_remote_plugins = 1
|
|||||||
|
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
syntax on
|
syntax on
|
||||||
|
|
||||||
|
source ~/.vim/prefs/mappings.vim
|
||||||
|
source ~/.vim/prefs/leader.vim
|
||||||
|
source ~/.vim/prefs/mappings.vim
|
||||||
|
source ~/.vim/prefs/leader.vim
|
||||||
|
Reference in New Issue
Block a user