158 lines
5.0 KiB
Lua
158 lines
5.0 KiB
Lua
require('plugins')
|
|
local map = vim.keymap.set
|
|
local set = vim.opt
|
|
|
|
set.clipboard = 'unnamedplus'
|
|
set.wrap = false
|
|
set.number = true set.relativenumber = true set.ignorecase = true set.smartcase = true set.termguicolors = true set.swapfile = false set.backup = false set.undodir = os.getenv("XDG_CACHE_HOME") .. "/nvim/undo" set.undofile = true set.hlsearch = false
|
|
set.incsearch = true
|
|
set.cursorline = true
|
|
-- set.cmdheight = 0
|
|
set.cmdheight = 1
|
|
set.mouse = 'a'
|
|
set.splitright = true
|
|
set.splitbelow = true
|
|
set.updatetime = 600
|
|
set.signcolumn = "yes"
|
|
set.tabstop = 4
|
|
set.softtabstop = 4
|
|
set.shiftwidth = 4
|
|
set.expandtab = true
|
|
vim.g.mapleader = " "
|
|
|
|
map("v", "J", ":m '>+1<CR>gv=gv")
|
|
map("v", "K", ":m '<-2<CR>gv=gv")
|
|
map("x", "J", ":m '>+1<CR>gv-gv", opts)
|
|
map("x", "K", ":m '<-2<CR>gv-gv", opts)
|
|
|
|
map("v", "<", "<gv", opts)
|
|
map("v", ">", ">gv", opts)
|
|
|
|
map("n", "J", "mzJ`z")
|
|
|
|
map("n", "<C-s>", vim.cmd.w)
|
|
map("n", "<C-q>", vim.cmd.wq)
|
|
map("n", "<C-S-r>", vim.cmd.source)
|
|
map("n", "<C-r>", "<nop>")
|
|
|
|
map("n", "vv", "^vg_", { noremap = true })
|
|
|
|
map("n", "-", vim.cmd.Ex, {})
|
|
map('n', 'U', vim.cmd.redo)
|
|
|
|
local ts = require('telescope.builtin')
|
|
|
|
map('n', '<leader><leader>f', ts.find_files, {})
|
|
map('n', '<leader><leader>g', ts.live_grep, {})
|
|
map('n', '<leader><leader>b', ts.buffers, {})
|
|
map('n', '<leader><leader>t', ts.help_tags, {})
|
|
map('n', '<leader><leader>c', ts.commands, {})
|
|
|
|
-- TODO If we use this one a lot, might be better to bind it to something easier
|
|
map('n', '<leader>bb', ':b#<CR>')
|
|
map('n', '<leader>bn', vim.cmd.bnext)
|
|
map('n', '<leader>bk', vim.cmd.bdelete)
|
|
|
|
-- Window management
|
|
|
|
map('n', '<leader>wo', '<C-w>o')
|
|
map('n', '<leader>wc', '<C-w>c')
|
|
map('n', '<leader>wv', '<C-w>v')
|
|
map('n', '<leader>ws', '<C-w>s')
|
|
map('n', '<leader>ww', '<C-w>p')
|
|
map('n', '<leader>wr', '<C-w>r')
|
|
map('n', '<leader>wx', '<C-w>x')
|
|
map('n', '<leader>wt', '<C-w>T')
|
|
map('n', '<leader>wh', '<C-w>H')
|
|
map('n', '<leader>wj', '<C-w>J')
|
|
map('n', '<leader>wk', '<C-w>K')
|
|
map('n', '<leader>wl', '<C-w>L')
|
|
|
|
map("n", "<C-Up>", ":resize -2<CR>", opts)
|
|
map("n", "<C-Down>", ":resize +2<CR>", opts)
|
|
map("n", "<C-Left>", ":vertical resize -2<CR>", opts)
|
|
map("n", "<C-Right>", ":vertical resize +2<CR>", opts)
|
|
|
|
map('n', '<C-h>', '<C-w>h', {})
|
|
map('n', '<C-j>', '<C-w>j', {})
|
|
map('n', '<C-k>', '<C-w>k', {})
|
|
map('n', '<C-l>', '<C-w>l', {})
|
|
|
|
-- local neogit = require('neogit')
|
|
--
|
|
-- neogit.setup {}
|
|
|
|
map("n", "<leader>tw", ":set wrap!<CR>")
|
|
|
|
function get_lsp_client_info()
|
|
-- local info = vim.lsp.buf.completion()
|
|
local pickers = require "telescope.pickers"
|
|
local finders = require "telescope.finders"
|
|
local previewers = require "telescope.previewers"
|
|
local conf = require("telescope.config").values
|
|
|
|
local params = vim.lsp.util.make_position_params()
|
|
opts = opts or {}
|
|
local comp_text = {}
|
|
for _, client in pairs(vim.lsp.buf_get_clients(0)) do
|
|
client.request('textDocument/completion', params, function(arg1, arg2, arg3, arg4)
|
|
local i = 0
|
|
for key,value in pairs(arg2.items) do
|
|
if value.textEdit.newText ~= nil and value.textEdit.newText ~= "" and i < 100 then
|
|
table.insert(comp_text, value.textEdit.newText)
|
|
i = i + 1
|
|
end
|
|
end
|
|
pickers.new(opts, {
|
|
prompt_title = "Lsp autocomplete",
|
|
finder = finders.new_table {
|
|
-- results = { "red", "green", "blue" }
|
|
results = comp_text
|
|
},
|
|
previewer = previewers.new_buffer_previewer(
|
|
{
|
|
title = "LSP Documentation",
|
|
define_preview = function(self, entry, status)
|
|
return "DO IT"
|
|
end
|
|
}
|
|
),
|
|
sorter = conf.generic_sorter(opts),
|
|
}):find()
|
|
end)
|
|
end
|
|
end
|
|
|
|
map('i', '<C-y>', get_lsp_client_info)
|
|
|
|
-- _request('textDocument/completion', params, function(err, response)
|
|
-- if err or response == nil then
|
|
-- return args.abort()
|
|
-- end
|
|
-- args.callback(compe.helper.convert_lsp({
|
|
-- keyword_pattern_offset = args.keyword_pattern_offset,
|
|
-- context = args.context,
|
|
-- request = params,
|
|
-- response = response,
|
|
-- }))
|
|
-- end)
|
|
--
|
|
-- function Source._request(self, params, callback)
|
|
-- local params = vim.lsp.util.make_position_params()
|
|
-- if self.request_ids['textDocument/completion'] ~= nil then
|
|
-- self.client.cancel_request(self.request_ids['textDocument/completion'])
|
|
-- self.request_ids['textDocument/completion'] = nil
|
|
-- end
|
|
--
|
|
-- local _, request_id
|
|
-- _, request_id = self.client.request('textDocument/completion', params, function(arg1, arg2, arg3, arg4)
|
|
-- print("hello1")
|
|
-- if self.request_ids['textDocument/completion'] ~= request_id then
|
|
-- return
|
|
-- end
|
|
-- print("hello2")
|
|
-- end)
|
|
-- self.request_ids['textDocument/completion'] = request_id
|
|
-- end
|
|
--
|