aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/init.lua')
-rw-r--r--.config/nvim/init.lua48
1 files changed, 45 insertions, 3 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 78d754a..e39405d 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -13,7 +13,7 @@ vim.o.shiftwidth = 0
vim.o.expandtab = true
vim.o.undofile = true
vim.o.scrolloff = 3
-vim.o.winborder = "none"
+vim.o.winborder = "single"
vim.o.mouse = ""
vim.o.completeopt = "menu,menuone,noselect"
@@ -34,7 +34,7 @@ end
require("mini.pick").setup({
window = {
config = {
- border = "none"
+ border = "single"
},
},
})
@@ -65,6 +65,48 @@ vim.keymap.set("n", "<leader>s", function()
print("no files to swap to")
end)
+local function get_symbols(kind)
+ local bufnr = vim.api.nvim_get_current_buf()
+
+ local clients = vim.lsp.get_clients({
+ bufnr = bufnr,
+ })
+
+ local client = clients[1]
+
+ client:request(
+ "textDocument/documentSymbol",
+ {textDocument=vim.lsp.util.make_text_document_params()},
+ function(_, funcs)
+ local list = {}
+ for _, func in ipairs(funcs) do
+ if func.kind == kind then
+ table.insert(list, {
+ bufnr = bufnr,
+ lnum = func.range.start.line + 1,
+ end_lnum = func.range["end"].line + 1,
+ col = func.range.start.character,
+ end_col = func.range.start.character,
+ -- nr = i,
+ text = func.name .. "()",
+ })
+ end
+ end
+ table.sort(list, function(a, b)
+ return a.lnum < b.lnum
+ end)
+ vim.fn.setqflist(list)
+
+ vim.cmd[[cope]]
+ vim.cmd[[cfirst]]
+ end
+ )
+end
+
+vim.keymap.set("n", "<leader>o", function()
+ get_symbols(12)
+end)
+
vim.lsp.enable({"lua_ls", "clangd", "ols"})
vim.diagnostic.config({
virtual_text = true,
@@ -89,4 +131,4 @@ vim.api.nvim_create_autocmd("LspAttach", {
vim.cmd.colorscheme("mini-theme")
-require('vim._extui').enable({})
+-- require('vim._extui').enable({})