change copilot plugin and add tailwind plugins
This commit is contained in:
parent
63f64af2af
commit
d22d6e5acb
|
@ -1,10 +1,15 @@
|
|||
-- If you want insert `(` after select function or method item
|
||||
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||
local cmp = require('cmp')
|
||||
|
||||
cmp.event:on(
|
||||
'confirm_done',
|
||||
cmp_autopairs.on_confirm_done()
|
||||
)
|
||||
|
||||
-- cmp.config.formatting = {
|
||||
-- format = require("tailwindcss-colorizer-cmp").formatter
|
||||
-- }
|
||||
-- cmp.setup {
|
||||
-- completion = {
|
||||
-- autocomplete = true,
|
||||
|
|
|
@ -16,10 +16,9 @@ sign({ name = 'DiagnosticSignInfo', text = '»' })
|
|||
|
||||
-- lspconfig = require 'lspconfig'
|
||||
-- lspconfig.tailwindcss.setup({
|
||||
-- on_attach = on_attach,
|
||||
-- capabilities = capabilities,
|
||||
-- filetypes = { "templ", "astro", "javascript", "typescript", "react" },
|
||||
-- init_options = { userLanguages = { templ = "html" } },
|
||||
-- -- on_attach = on_attach,
|
||||
-- -- capabilities = capabilities,
|
||||
-- filetypes = { "html", "templ", "astro", "javascript", "typescript", "react" },
|
||||
-- })
|
||||
|
||||
vim.filetype.add({ extension = { templ = "templ" } })
|
||||
|
|
83
init.lua
83
init.lua
|
@ -96,11 +96,23 @@ require('lazy').setup({
|
|||
'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
-- Snippet Engine & its associated nvim-cmp source
|
||||
'L3MON4D3/LuaSnip',
|
||||
{
|
||||
'L3MON4D3/LuaSnip',
|
||||
build = (function()
|
||||
-- Build Step is needed for regex support in snippets
|
||||
-- This step is not supported in many windows environments
|
||||
-- Remove the below condition to re-enable on windows
|
||||
if vim.fn.has 'win32' == 1 then
|
||||
return
|
||||
end
|
||||
return 'make install_jsregexp'
|
||||
end)(),
|
||||
},
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
|
||||
-- Adds LSP completion capabilities
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-path',
|
||||
|
||||
-- Adds a number of user-friendly snippets
|
||||
'rafamadriz/friendly-snippets',
|
||||
|
@ -319,6 +331,42 @@ require('telescope').setup {
|
|||
-- Enable telescope fzf native, if installed
|
||||
pcall(require('telescope').load_extension, 'fzf')
|
||||
|
||||
-- Telescope live_grep in git root
|
||||
-- Function to find the git root directory based on the current buffer's path
|
||||
local function find_git_root()
|
||||
-- Use the current buffer's path as the starting point for the git search
|
||||
local current_file = vim.api.nvim_buf_get_name(0)
|
||||
local current_dir
|
||||
local cwd = vim.fn.getcwd()
|
||||
-- If the buffer is not associated with a file, return nil
|
||||
if current_file == '' then
|
||||
current_dir = cwd
|
||||
else
|
||||
-- Extract the directory from the current file's path
|
||||
current_dir = vim.fn.fnamemodify(current_file, ':h')
|
||||
end
|
||||
|
||||
-- Find the Git root directory from the current file's path
|
||||
local git_root = vim.fn.systemlist('git -C ' .. vim.fn.escape(current_dir, ' ') .. ' rev-parse --show-toplevel')[1]
|
||||
if vim.v.shell_error ~= 0 then
|
||||
print 'Not a git repository. Searching on current working directory'
|
||||
return cwd
|
||||
end
|
||||
return git_root
|
||||
end
|
||||
|
||||
-- Custom live_grep function to search in git root
|
||||
local function live_grep_git_root()
|
||||
local git_root = find_git_root()
|
||||
if git_root then
|
||||
require('telescope.builtin').live_grep {
|
||||
search_dirs = { git_root },
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command('LiveGrepGitRoot', live_grep_git_root, {})
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
|
||||
vim.keymap.set('n', '<leader><space>', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' })
|
||||
|
@ -329,6 +377,7 @@ vim.keymap.set('n', '<leader>/', function()
|
|||
previewer = false,
|
||||
})
|
||||
end, { desc = '[/] Fuzzily search in current buffer' })
|
||||
|
||||
local function telescope_live_grep_open_files()
|
||||
require('telescope.builtin').live_grep {
|
||||
grep_open_files = true,
|
||||
|
@ -345,7 +394,6 @@ vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc
|
|||
vim.keymap.set('n', '<leader>sG', ':LiveGrepGitRoot<cr>', { desc = '[S]earch by [G]rep on Git Root' })
|
||||
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })
|
||||
|
||||
-- [[ Configure Treesitter ]]
|
||||
-- See `:help nvim-treesitter`
|
||||
-- Defer Treesitter setup after first render to improve startup time of 'nvim {filename}'
|
||||
|
@ -370,11 +418,20 @@ vim.defer_fn(function()
|
|||
"yaml",
|
||||
"css",
|
||||
"html",
|
||||
"templ",
|
||||
"terraform",
|
||||
"hcl"
|
||||
},
|
||||
|
||||
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
|
||||
auto_install = true,
|
||||
|
||||
-- Install languages synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
-- List of parsers to ignore installing
|
||||
ignore_install = {},
|
||||
-- You can specify additional Treesitter modules here: -- For example: -- playground = {--enable = true,-- },
|
||||
modules = {},
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
incremental_selection = {
|
||||
|
@ -608,14 +665,16 @@ local servers = {
|
|||
filetypes = { 'templ' },
|
||||
},
|
||||
html = {
|
||||
filetypes = { 'html', 'templ' },
|
||||
},
|
||||
htmx = {
|
||||
filetypes = { 'html', 'templ' },
|
||||
filetypes = { 'html', 'gohtml', 'templ' },
|
||||
},
|
||||
htmx = {},
|
||||
tailwindcss = {
|
||||
filetypes = { 'html', 'css', 'scss', 'javascript', 'typescript', 'templ' },
|
||||
init_options = { userLanguages = { templ = "html" } },
|
||||
filetypes = { 'html', 'css', 'scss', 'javascript', 'typescript', 'templ', 'gohtml' },
|
||||
},
|
||||
tflint = {
|
||||
},
|
||||
terraform = {
|
||||
filetypes = { 'terraform', 'tf', 'tfvars' },
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -640,7 +699,7 @@ mason_lspconfig.setup_handlers {
|
|||
on_attach = on_attach,
|
||||
settings = servers[server_name],
|
||||
filetypes = (servers[server_name] or {}).filetypes,
|
||||
init_options = (servers[server_name] or {}).init_options,
|
||||
-- init_options = (servers[server_name] or {}).init_options,
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
@ -658,10 +717,13 @@ cmp.setup {
|
|||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
completion = {
|
||||
completeopt = 'menu,menuone,noinsert',
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert {
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
['<Down>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete {},
|
||||
['<CR>'] = cmp.mapping.confirm {
|
||||
|
@ -690,6 +752,7 @@ cmp.setup {
|
|||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'path' },
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -3,8 +3,9 @@
|
|||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||
"LuaSnip": { "branch": "master", "commit": "2dbef19461198630b3d7c39f414d09fb07d1fdd2" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"copilot.vim": { "branch": "release", "commit": "315c6d2b16e018cb8020f20aaa7081ebc4070828" },
|
||||
"copilot.lua": { "branch": "master", "commit": "03f825956ec49e550d07875d867ea6e7c4dc8c00" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "5cc1f45c6aac699ad008fb85f6ae03236062667d" },
|
||||
"gen.nvim": { "branch": "main", "commit": "4e24c86daa4fcfe9fc0a03cf3eb3d4f4fe0d4194" },
|
||||
|
@ -16,6 +17,7 @@
|
|||
"indent-blankline.nvim": { "branch": "master", "commit": "12e92044d313c54c438bd786d11684c88f6f78cd" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "28126922c9b54e35a192ac415788f202c3944c9f" },
|
||||
"live-server.nvim": { "branch": "main", "commit": "a2becf0d0aca59da85c3870e8eab6bf61f61e8d9" },
|
||||
"lspkind-nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "7d131a8d3ba5016229e8a1d08bf8782acea98852" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "0954d7730e749d606ddf8d7ae8846848be435d53" },
|
||||
|
@ -29,6 +31,7 @@
|
|||
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "096d0baecc34f6c5d8a6dd25851e9d5ad338209b" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
|
||||
"nvim-dap": { "branch": "master", "commit": "780fd4dd06b0744b235a520d71660c45279d9447" },
|
||||
"nvim-dap-go": { "branch": "main", "commit": "a5cc8dcad43f0732585d4793deb02a25c4afb766" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "d845ebd798ad1cf30aa4abd4c4eff795cdcfdd4f" },
|
||||
|
@ -41,6 +44,7 @@
|
|||
"onedark.nvim": { "branch": "master", "commit": "1230aaf2a427b2c5b73aba6e4a9a5881d3e69429" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
|
||||
"rest.nvim": { "branch": "main", "commit": "8b62563cfb19ffe939a260504944c5975796a682" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
|
||||
"telescope-dap.nvim": { "branch": "master", "commit": "8c88d9716c91eaef1cdea13cb9390d8ef447dbfe" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
|
||||
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"onsails/lspkind-nvim",
|
||||
{ "roobert/tailwindcss-colorizer-cmp.nvim", config = true },
|
||||
},
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
local lspkind = require("lspkind")
|
||||
lspkind.init({
|
||||
mode = "symbol_text",
|
||||
preset = "codicons",
|
||||
})
|
||||
|
||||
cmp.setup({
|
||||
formatting = {
|
||||
format = function(entry, item)
|
||||
item.kind = lspkind.presets.default[item.kind]
|
||||
item.menu = ({
|
||||
nvim_lsp = "[LSP]",
|
||||
nvim_lua = "[Lua]",
|
||||
buffer = "[Buffer]",
|
||||
path = "[Path]",
|
||||
calc = "[Calc]",
|
||||
look = "[Dict]",
|
||||
})[entry.source.name]
|
||||
return require("tailwindcss-colorizer-cmp").formatter(entry, item)
|
||||
end,
|
||||
},
|
||||
})
|
||||
end,
|
||||
experimental = {
|
||||
-- I like the new menu better! Nice work hrsh7th
|
||||
native_menu = false,
|
||||
|
||||
-- Let's play with this for a day or two
|
||||
ghost_text = false,
|
||||
},
|
||||
}
|
|
@ -1,9 +1,65 @@
|
|||
-- return {
|
||||
-- "github/copilot.vim",
|
||||
-- config = function()
|
||||
-- vim.api.nvim_set_keymap("i", "<C-l>", 'copilot#Accept("<CR>")', { silent = true, expr = true })
|
||||
-- vim.keymap.set('i', '<C-j>', '<Plug>(copilot-next)', { noremap = false })
|
||||
-- vim.keymap.set('i', '<C-k>', '<Plug>(copilot-previous)', { noremap = false })
|
||||
-- vim.keymap.set('i', '<M-.>', '<Plug>(copilot-suggest)', { noremap = false })
|
||||
-- end
|
||||
-- }
|
||||
|
||||
return {
|
||||
"github/copilot.vim",
|
||||
"zbirenbaum/copilot.lua",
|
||||
cmd = "Copilot",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
vim.api.nvim_set_keymap("i", "<C-l>", 'copilot#Accept("<CR>")', { silent = true, expr = true })
|
||||
vim.keymap.set('i', '<C-j>', '<Plug>(copilot-next)', { noremap = false })
|
||||
vim.keymap.set('i', '<C-k>', '<Plug>(copilot-previous)', { noremap = false })
|
||||
vim.keymap.set('i', '<M-.>', '<Plug>(copilot-suggest)', { noremap = false })
|
||||
end
|
||||
require("copilot").setup({
|
||||
panel = {
|
||||
enabled = true,
|
||||
auto_refresh = true,
|
||||
keymap = {
|
||||
jump_prev = "[[",
|
||||
jump_next = "]]",
|
||||
accept = "<CR>",
|
||||
refresh = "gr",
|
||||
open = "<M-CR>"
|
||||
},
|
||||
layout = {
|
||||
position = "bottom", -- | top | left | right
|
||||
ratio = 0.4
|
||||
},
|
||||
},
|
||||
suggestion = {
|
||||
enabled = true,
|
||||
auto_trigger = true,
|
||||
debounce = 75,
|
||||
keymap = {
|
||||
accept = "<M-l>",
|
||||
accept_word = false,
|
||||
accept_line = false,
|
||||
next = "<M-]>",
|
||||
prev = "<M-[>",
|
||||
dismiss = "<C-]>",
|
||||
},
|
||||
},
|
||||
filetypes = {
|
||||
yaml = true,
|
||||
markdown = true,
|
||||
help = false,
|
||||
gitcommit = true,
|
||||
gitrebase = false,
|
||||
hgcommit = false,
|
||||
terraform = true,
|
||||
go = true,
|
||||
html = true,
|
||||
templ = true,
|
||||
javascript = true,
|
||||
svn = false,
|
||||
cvs = false,
|
||||
["."] = true,
|
||||
},
|
||||
copilot_node_command = 'node', -- Node.js version must be > 18.x
|
||||
server_opts_overrides = {},
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
return {
|
||||
"NvChad/nvim-colorizer.lua",
|
||||
config = function()
|
||||
require("colorizer").setup({
|
||||
user_default_options = {
|
||||
tailwind = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
-- "roobert/tailwindcss-colorizer-cmp.nvim",
|
||||
-- -- optionally, override the default options:
|
||||
-- config = function()
|
||||
-- require("tailwindcss-colorizer-cmp").setup({
|
||||
-- color_square_width = 2,
|
||||
-- })
|
||||
-- end
|
||||
}
|
Loading…
Reference in New Issue