Compare commits
7 Commits
3b7c034926
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 87ab333ec9 | |||
| 93e281cbb5 | |||
| 4bd4d87f5b | |||
| 3ac01d9776 | |||
| 08784c625a | |||
| 59f4064788 | |||
| 74baebf3f8 |
13
after/ftplugin/org.lua
Normal file
13
after/ftplugin/org.lua
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
-- make C-CR in insert mode behave like org_meta_return
|
||||||
|
-- in normal mode
|
||||||
|
|
||||||
|
vim.keymap.set(
|
||||||
|
"i",
|
||||||
|
"<C-CR>",
|
||||||
|
|
||||||
|
'<cmd>lua require("orgmode").action("org_mappings.meta_return")<CR>', {
|
||||||
|
silent = true,
|
||||||
|
buffer = true,
|
||||||
|
desc = 'ORG: meta return'
|
||||||
|
}
|
||||||
|
)
|
||||||
@@ -82,7 +82,6 @@ local adjustedLogo = logo .. '\n' .. paddedGreeting .. '\n\n' .. userNamePadded
|
|||||||
dashboard.section.header.val = vim.split(adjustedLogo, '\n')
|
dashboard.section.header.val = vim.split(adjustedLogo, '\n')
|
||||||
|
|
||||||
dashboard.section.buttons.val = {
|
dashboard.section.buttons.val = {
|
||||||
dashboard.button('o', ' AI Chat', '<cmd>OGPT<CR>'),
|
|
||||||
dashboard.button('d', ' Diary Entry', '<cmd>Diary<CR>'),
|
dashboard.button('d', ' Diary Entry', '<cmd>Diary<CR>'),
|
||||||
dashboard.button('n', ' New file', ':ene <BAR> startinsert <CR>'),
|
dashboard.button('n', ' New file', ':ene <BAR> startinsert <CR>'),
|
||||||
dashboard.button('s', ' Settings', '<cmd>WorkspacesOpen config-nvim<CR>'),
|
dashboard.button('s', ' Settings', '<cmd>WorkspacesOpen config-nvim<CR>'),
|
||||||
|
|||||||
@@ -1,84 +1,41 @@
|
|||||||
-- an alternative might be:
|
require("lualine").setup {
|
||||||
-- https://github.com/nvim-treesitter/nvim-treesitter-context
|
options = {
|
||||||
local function breadcrumb()
|
icons_enabled = false,
|
||||||
local result = require 'nvim-treesitter'.statusline(
|
theme = 'papercolor_light',
|
||||||
{
|
component_separators = {},
|
||||||
type_patterns = {
|
section_separators = {},
|
||||||
"class",
|
disabled_filetypes = {
|
||||||
"impl",
|
statusline = {},
|
||||||
"function",
|
winbar = { "neo-tree" },
|
||||||
"method",
|
},
|
||||||
"import",
|
ignore_focus = {},
|
||||||
"for",
|
always_divide_middle = true,
|
||||||
"if",
|
globalstatus = false,
|
||||||
"while",
|
refresh = {
|
||||||
"variable",
|
statusline = 1000,
|
||||||
"comment",
|
tabline = 1000,
|
||||||
},
|
winbar = 1000,
|
||||||
separator = " ▶ "
|
}
|
||||||
}
|
},
|
||||||
)
|
sections = {
|
||||||
if result == "" then
|
lualine_a = { { 'filename', path = 1, shorting_target = 50 } },
|
||||||
result = ' '
|
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
||||||
elseif result == nil then
|
lualine_c = {},
|
||||||
result = ''
|
lualine_x = { 'encoding', 'fileformat', 'filetype', 'lsp_status' },
|
||||||
end
|
lualine_y = { 'filesize' },
|
||||||
return result
|
lualine_z = { 'progress', 'location' }
|
||||||
end
|
},
|
||||||
|
inactive_sections = {
|
||||||
require("lualine").setup {
|
lualine_a = { { 'filename', path = 1, shorting_target = 50 } },
|
||||||
options = {
|
lualine_b = {},
|
||||||
icons_enabled = false,
|
lualine_c = {},
|
||||||
theme = 'papercolor_light',
|
-- lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
||||||
component_separators = {},
|
lualine_x = {},
|
||||||
section_separators = {},
|
lualine_y = { 'filesize' },
|
||||||
disabled_filetypes = {
|
lualine_z = { 'location' }
|
||||||
statusline = {},
|
},
|
||||||
winbar = { "neo-tree" },
|
tabline = {},
|
||||||
},
|
winbar = {}, -- formerly breadcrumb here
|
||||||
ignore_focus = {},
|
inactive_winbar = {},
|
||||||
always_divide_middle = true,
|
extensions = {}
|
||||||
globalstatus = false,
|
}
|
||||||
refresh = {
|
|
||||||
statusline = 1000,
|
|
||||||
tabline = 1000,
|
|
||||||
winbar = 1000,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_a = { { 'filename', path = 1, shorting_target = 50 } },
|
|
||||||
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
|
||||||
lualine_c = {},
|
|
||||||
lualine_x = { 'encoding', 'fileformat', 'filetype', 'lsp_status' },
|
|
||||||
lualine_y = { 'filesize' },
|
|
||||||
lualine_z = { 'progress', 'location' }
|
|
||||||
},
|
|
||||||
inactive_sections = {
|
|
||||||
lualine_a = { { 'filename', path = 1, shorting_target = 50 } },
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = {},
|
|
||||||
-- lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
|
||||||
lualine_x = {},
|
|
||||||
lualine_y = { 'filesize' },
|
|
||||||
lualine_z = { 'location' }
|
|
||||||
},
|
|
||||||
tabline = {},
|
|
||||||
winbar = {
|
|
||||||
lualine_a = {
|
|
||||||
{
|
|
||||||
breadcrumb,
|
|
||||||
color = { bg = '#2a2a2a', fg = '#cfcfcf' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
inactive_winbar = {
|
|
||||||
lualine_a = {
|
|
||||||
{
|
|
||||||
breadcrumb,
|
|
||||||
color = { bg = '#101010', fg = '#999999' },
|
|
||||||
draw_empty = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
extensions = {}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ vim.keymap.set('n', '<space>mc', mywords.uhl_all, { desc = "Clear all highlights
|
|||||||
|
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
--
|
--
|
||||||
-- Some convenience keybindings
|
-- Moving lines up and down
|
||||||
--
|
--
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
|
|||||||
38
lua/lsp.lua
38
lua/lsp.lua
@@ -34,6 +34,7 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||||||
vim.keymap.set('n', '<space>]', vim.diagnostic.goto_next, { desc = "Previous diagnostics" })
|
vim.keymap.set('n', '<space>]', vim.diagnostic.goto_next, { desc = "Previous diagnostics" })
|
||||||
|
|
||||||
local gitsigns = require('gitsigns')
|
local gitsigns = require('gitsigns')
|
||||||
|
vim.keymap.set('n', '<space>=l', ":NeogitLogCurrent<CR>", { desc = "Neogit: log for this file" })
|
||||||
vim.keymap.set('n', '<space>==', gitsigns.preview_hunk_inline, { desc = "Git hunk preview" })
|
vim.keymap.set('n', '<space>==', gitsigns.preview_hunk_inline, { desc = "Git hunk preview" })
|
||||||
vim.keymap.set('n', '<space>=B', gitsigns.blame, { desc = "Git blame file" })
|
vim.keymap.set('n', '<space>=B', gitsigns.blame, { desc = "Git blame file" })
|
||||||
vim.keymap.set('n', '<space>=D', function() gitsigns.diffthis('~') end, { desc = "Git diff this (~)" })
|
vim.keymap.set('n', '<space>=D', function() gitsigns.diffthis('~') end, { desc = "Git diff this (~)" })
|
||||||
@@ -65,26 +66,43 @@ function LSPRangeFormatFunction()
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Set different settings for different languages' LSP
|
|
||||||
|
|
||||||
-- use globally installed vue-language-server (instead of mason provided)
|
-- VUE and Typescript as of vue-language-server 3.0.x
|
||||||
vim.lsp.config('vue_ls', {
|
-- taken from:
|
||||||
-- add filetypes for typescript, javascript and vue
|
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#vtsls
|
||||||
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' },
|
local vue_language_server_path = '/home/saschal/.config/yarn/global/node_modules'
|
||||||
init_options = {
|
local vue_plugin = {
|
||||||
vue = {
|
name = '@vue/typescript-plugin',
|
||||||
-- disable hybrid mode, will thus use ts_ls internally
|
location = vue_language_server_path,
|
||||||
hybridMode = false,
|
languages = { 'vue' },
|
||||||
|
configNamespace = 'typescript',
|
||||||
|
}
|
||||||
|
local vtsls_config = {
|
||||||
|
settings = {
|
||||||
|
vtsls = {
|
||||||
|
tsserver = {
|
||||||
|
globalPlugins = {
|
||||||
|
vue_plugin,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' },
|
||||||
|
}
|
||||||
|
vim.lsp.config('vtsls', vtsls_config)
|
||||||
|
|
||||||
|
-- enable this list of lsps
|
||||||
local enable_this_lsp = {
|
local enable_this_lsp = {
|
||||||
'vue_ls',
|
'vue_ls',
|
||||||
|
'vtsls',
|
||||||
'gopls',
|
'gopls',
|
||||||
'bashls',
|
'bashls',
|
||||||
'html',
|
'html',
|
||||||
'lua_ls',
|
'lua_ls',
|
||||||
|
'jsonls', -- arch extra: vscode-json-languageserver
|
||||||
|
'kotlin_lsp', -- arch aur: kotlin-lsp-bin
|
||||||
|
'lemminx', -- arch aur: lemminx
|
||||||
|
'clangd',
|
||||||
}
|
}
|
||||||
|
|
||||||
for l in pairs(enable_this_lsp) do
|
for l in pairs(enable_this_lsp) do
|
||||||
|
|||||||
243
lua/plugins.lua
243
lua/plugins.lua
@@ -46,13 +46,16 @@ require("lazy").setup({
|
|||||||
--
|
--
|
||||||
-- See :h blink-cmp-config-keymap for defining your own keymap
|
-- See :h blink-cmp-config-keymap for defining your own keymap
|
||||||
keymap = {
|
keymap = {
|
||||||
preset = 'enter',
|
-- preset = 'enter',
|
||||||
['<Up>'] = { 'select_prev', 'fallback' },
|
preset = 'default',
|
||||||
['<Down>'] = { 'select_next', 'fallback' },
|
-- ['<Up>'] = { 'select_prev', 'fallback' },
|
||||||
['<S-Tab>'] = { 'select_prev', 'fallback' },
|
-- ['<Down>'] = { 'select_next', 'fallback' },
|
||||||
['<Tab>'] = { 'select_next', 'fallback' },
|
-- ['<S-Tab>'] = { 'select_prev', 'fallback' },
|
||||||
|
-- ['<Tab>'] = { 'select_next', 'fallback' },
|
||||||
['<CR>'] = { 'select_and_accept', 'fallback' },
|
['<CR>'] = { 'select_and_accept', 'fallback' },
|
||||||
['<C-space>'] = { 'show', 'fallback' },
|
['<C-space>'] = { 'show_and_insert', 'fallback' },
|
||||||
|
-- ['<C-space>'] = { 'show', 'fallback' },
|
||||||
|
-- ['<C-n>'] = { 'accept', 'fallback' },
|
||||||
},
|
},
|
||||||
signature = { enabled = true },
|
signature = { enabled = true },
|
||||||
|
|
||||||
@@ -80,7 +83,19 @@ require("lazy").setup({
|
|||||||
-- Default list of enabled providers defined so that you can extend it
|
-- Default list of enabled providers defined so that you can extend it
|
||||||
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||||
sources = {
|
sources = {
|
||||||
default = { 'lsp', 'path', 'snippets', 'buffer' },
|
default = { 'lsp', 'path', 'snippets', 'buffer', 'orgmode' },
|
||||||
|
-- per_filetype = {
|
||||||
|
-- org = { 'orgmode' }
|
||||||
|
-- },
|
||||||
|
|
||||||
|
providers = {
|
||||||
|
orgmode = {
|
||||||
|
name = 'Orgmode',
|
||||||
|
module = 'orgmode.org.autocompletion.blink',
|
||||||
|
fallbacks = { 'lsp', 'path', 'snippets', 'buffer' },
|
||||||
|
-- fallbacks = { 'buffer' },
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
snippets = { preset = 'luasnip' },
|
snippets = { preset = 'luasnip' },
|
||||||
@@ -138,7 +153,9 @@ require("lazy").setup({
|
|||||||
"ibhagwan/fzf-lua",
|
"ibhagwan/fzf-lua",
|
||||||
-- optional for icon support
|
-- optional for icon support
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
config = true,
|
config = function()
|
||||||
|
require('fzf-lua').register_ui_select()
|
||||||
|
end
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@@ -168,10 +185,13 @@ require("lazy").setup({
|
|||||||
config = function()
|
config = function()
|
||||||
-- Setup orgmode
|
-- Setup orgmode
|
||||||
require('orgmode').setup({
|
require('orgmode').setup({
|
||||||
|
-- cf: https://github.com/nvim-orgmode/orgmode/blob/master/docs/configuration.org#mappings
|
||||||
mappings = {
|
mappings = {
|
||||||
org = {
|
org = {
|
||||||
org_move_subtree_up = { '<Leader>oK', '<C-M-Up>' },
|
org_move_subtree_up = { '<Leader>oK', '<C-M-Up>' },
|
||||||
org_move_subtree_down = { '<Leader>oJ', '<C-M-Down>' },
|
org_move_subtree_down = { '<Leader>oJ', '<C-M-Down>' },
|
||||||
|
org_promote_subtree = { '<s', '<C-M-Left>' },
|
||||||
|
org_demote_subtree = { '>s', '<C-M-Right>' },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
-- org_agenda_files = '~/orgfiles/**/*',
|
-- org_agenda_files = '~/orgfiles/**/*',
|
||||||
@@ -382,15 +402,15 @@ require("lazy").setup({
|
|||||||
|
|
||||||
|
|
||||||
-- TODO, WARN, HACK, PERF, NOTE, TEST and others highlighting and searching
|
-- TODO, WARN, HACK, PERF, NOTE, TEST and others highlighting and searching
|
||||||
{
|
-- {
|
||||||
"folke/todo-comments.nvim",
|
-- "folke/todo-comments.nvim",
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
-- dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
opts = {
|
-- opts = {
|
||||||
-- your configuration comes here
|
-- -- your configuration comes here
|
||||||
-- or leave it empty to use the default settings
|
-- -- or leave it empty to use the default settings
|
||||||
-- refer to the configuration section below
|
-- -- refer to the configuration section below
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
|
|
||||||
-- highlight word under cursor
|
-- highlight word under cursor
|
||||||
{
|
{
|
||||||
@@ -447,6 +467,7 @@ require("lazy").setup({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
-- show indent markers
|
-- show indent markers
|
||||||
{
|
{
|
||||||
"lukas-reineke/indent-blankline.nvim",
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
@@ -456,170 +477,32 @@ require("lazy").setup({
|
|||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- ollama and LLM integration
|
|
||||||
|
-- improved (wrapping!) diagnostics
|
||||||
{
|
{
|
||||||
{
|
"rachartier/tiny-inline-diagnostic.nvim",
|
||||||
"huynle/ogpt.nvim",
|
event = "VeryLazy", -- one of LspAttach, VeryLazy
|
||||||
event = "VeryLazy",
|
priority = 1000, -- needs to be loaded in first
|
||||||
opts = {
|
config = function()
|
||||||
default_provider = "ollama",
|
require('tiny-inline-diagnostic').setup({
|
||||||
edgy = true, -- enable this!
|
options = {
|
||||||
single_window = false, -- set this to true if you want only one OGPT window to appear at a time
|
use_icons_from_diagnostic = true,
|
||||||
providers = {
|
enable_on_insert = true,
|
||||||
ollama = {
|
show_all_diags_on_cursorline = true,
|
||||||
api_host = os.getenv("OLLAMA_API_HOST") or "http://localhost:11434",
|
|
||||||
api_key = os.getenv("OLLAMA_API_KEY") or "",
|
|
||||||
model = "llama3.2-vision:sl",
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
})
|
||||||
dependencies = {
|
vim.diagnostic.config({ virtual_text = false }) -- Only if needed in your configuration, if you already have native LSP diagnostics
|
||||||
"MunifTanjim/nui.nvim",
|
end
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"nvim-telescope/telescope.nvim"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"folke/edgy.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
init = function()
|
|
||||||
vim.opt.laststatus = 3
|
|
||||||
vim.opt.splitkeep = "screen" -- or "topline" or "screen"
|
|
||||||
end,
|
|
||||||
opts = {
|
|
||||||
exit_when_last = false,
|
|
||||||
animate = {
|
|
||||||
enabled = false,
|
|
||||||
},
|
|
||||||
wo = {
|
|
||||||
winbar = true,
|
|
||||||
winfixwidth = true,
|
|
||||||
winfixheight = false,
|
|
||||||
winhighlight = "WinBar:EdgyWinBar,Normal:EdgyNormal",
|
|
||||||
spell = false,
|
|
||||||
signcolumn = "no",
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
-- -- close window
|
|
||||||
["q"] = function(win)
|
|
||||||
win:close()
|
|
||||||
end,
|
|
||||||
-- close sidebar
|
|
||||||
["Q"] = function(win)
|
|
||||||
win.view.edgebar:close()
|
|
||||||
end,
|
|
||||||
-- increase width
|
|
||||||
["<S-Right>"] = function(win)
|
|
||||||
win:resize("width", 3)
|
|
||||||
end,
|
|
||||||
-- decrease width
|
|
||||||
["<S-Left>"] = function(win)
|
|
||||||
win:resize("width", -3)
|
|
||||||
end,
|
|
||||||
-- increase height
|
|
||||||
["<S-Up>"] = function(win)
|
|
||||||
win:resize("height", 3)
|
|
||||||
end,
|
|
||||||
-- decrease height
|
|
||||||
["<S-Down>"] = function(win)
|
|
||||||
win:resize("height", -3)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
right = {
|
|
||||||
{
|
|
||||||
title = "OGPT Popup",
|
|
||||||
ft = "ogpt-popup",
|
|
||||||
size = { width = 0.2 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT Parameters",
|
|
||||||
ft = "ogpt-parameters-window",
|
|
||||||
size = { height = 6 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT Template",
|
|
||||||
ft = "ogpt-template",
|
|
||||||
size = { height = 6 },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT Sessions",
|
|
||||||
ft = "ogpt-sessions",
|
|
||||||
size = { height = 6 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT System Input",
|
|
||||||
ft = "ogpt-system-window",
|
|
||||||
size = { height = 6 },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT",
|
|
||||||
ft = "ogpt-window",
|
|
||||||
size = { height = 0.5 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT {{{selection}}}",
|
|
||||||
ft = "ogpt-selection",
|
|
||||||
size = { width = 80, height = 4 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPt {{{instruction}}}",
|
|
||||||
ft = "ogpt-instruction",
|
|
||||||
size = { width = 80, height = 4 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "OGPT Chat",
|
|
||||||
ft = "ogpt-input",
|
|
||||||
size = { width = 80, height = 4 },
|
|
||||||
wo = {
|
|
||||||
wrap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- improved (wrapping!) diagnostics
|
|
||||||
{
|
|
||||||
"rachartier/tiny-inline-diagnostic.nvim",
|
|
||||||
event = "VeryLazy", -- one of LspAttach, VeryLazy
|
|
||||||
priority = 1000, -- needs to be loaded in first
|
|
||||||
config = function()
|
|
||||||
require('tiny-inline-diagnostic').setup({
|
|
||||||
options = {
|
|
||||||
use_icons_from_diagnostic = true,
|
|
||||||
enable_on_insert = true,
|
|
||||||
show_all_diags_on_cursorline = true,
|
|
||||||
multilines = {
|
|
||||||
enabled = true,
|
|
||||||
always_show = true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
vim.diagnostic.config({ virtual_text = false }) -- Only if needed in your configuration, if you already have native LSP diagnostics
|
|
||||||
end
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- new plugins here
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
-- 2025-05-21 not yet clear if this is a good thing or not
|
||||||
|
{
|
||||||
|
'xemptuous/sqlua.nvim',
|
||||||
|
lazy = true,
|
||||||
|
cmd = 'SQLua',
|
||||||
|
config = function() require('sqlua').setup() end
|
||||||
|
},
|
||||||
|
|
||||||
|
-- new plugins BEFORE here
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user