aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Hiar <cody@hiar.ca>2021-09-03 15:57:44 -0600
committerCody Hiar <cody@hiar.ca>2021-09-03 15:57:44 -0600
commit227899a5a0edf9e449d0697eb5e387dd5ea942ed (patch)
tree1492ee9913760798e43d1c46acb0e5284076cc85
parent8c4a44a45145a99922224b20c864fd51dd2f0b3c (diff)
initial work on getting lua setup working
-rw-r--r--init.lua.backup66
-rw-r--r--lua/lspconfigconf.lua53
-rw-r--r--lua/nvimlintconf.lua34
-rw-r--r--lua/settings.lua5
-rw-r--r--lua/telescopeconf.lua52
-rw-r--r--lua/treesitterconf.lua18
-rw-r--r--plugin/packer_compiled.lua137
7 files changed, 365 insertions, 0 deletions
diff --git a/init.lua.backup b/init.lua.backup
new file mode 100644
index 0000000..7460139
--- /dev/null
+++ b/init.lua.backup
@@ -0,0 +1,66 @@
+-- How to install
+--
+-- 1. Run `PackerSync`
+-- 2. Run TSInstall <langauge> for treesitter grammar
+-- 3. LspInfo to check if the language servers are working
+
+
+-- Bootstrap packer if not installed
+local fn = vim.fn
+local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
+if fn.empty(fn.glob(install_path)) > 0 then
+ fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
+ vim.cmd 'packadd packer.nvim'
+end
+
+-- Install My Stuff
+require('settings')
+
+vim.cmd "nnoremap <space>ps <cmd>PackerSync<cr>"
+
+vim.cmd "nnoremap <space>ff <cmd>Telescope find_files<cr>"
+vim.cmd "nnoremap <space>/ <cmd>Telescope live_grep<cr>"
+vim.cmd "nnoremap <space>fb <cmd>Telescope buffers<cr>"
+vim.cmd "nnoremap <space>fg <cmd>lua require('telescope.builtin').git_status()<cr>"
+
+vim.cmd "let g:python3_host_prog = expand('~/venv/bin/python3')"
+vim.cmd "let g:rnvimr_enable_ex = 1"
+vim.cmd "let g:rnvimr_enable_picker = 1"
+vim.cmd "nnoremap <space>m :RnvimrToggle<CR>"
+vim.cmd "let g:rnvimr_action = { '<CR>': 'NvimEdit tabedit' }"
+
+
+vim.cmd "au BufWritePost <buffer> lua require('lint').try_lint()"
+
+return require('packer').startup(function()
+ use 'wbthomason/packer.nvim'
+ use 'Thornycrackers-Forks/nord-vim'
+ use {
+ 'nvim-treesitter/nvim-treesitter',
+ run = ':TSUpdate',
+ config = function()
+ require "treesitterconf"
+ end,
+ }
+ use {
+ "neovim/nvim-lspconfig",
+ config = function()
+ require "lspconfigconf"
+ end,
+ }
+ use 'nvim-treesitter/playground'
+ use {
+ 'nvim-telescope/telescope.nvim',
+ requires = { {'nvim-lua/plenary.nvim'} },
+ config = function()
+ require "telescopeconf"
+ end,
+ }
+ use 'kevinhwang91/rnvimr'
+ use {
+ 'jose-elias-alvarez/null-ls.nvim',
+ config = function()
+ require "nvimlintconf"
+ end,
+ }
+end)
diff --git a/lua/lspconfigconf.lua b/lua/lspconfigconf.lua
new file mode 100644
index 0000000..2272bf0
--- /dev/null
+++ b/lua/lspconfigconf.lua
@@ -0,0 +1,53 @@
+local nvim_lsp = require('lspconfig')
+
+--nvim_lsp.pylsp.setup{}
+local present, ts_config = pcall(require, "nvim-treesitter.configs")
+if not present then
+ return
+end
+
+-- Use an on_attach function to only map the following keys
+-- after the language server attaches to the current buffer
+local on_attach = function(client, bufnr)
+ local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
+ local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
+
+ -- Enable completion triggered by <c-x><c-o>
+ buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
+
+ -- Mappings.
+ local opts = { noremap=true, silent=true }
+
+ -- See `:help vim.lsp.*` for documentation on any of the below functions
+ buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
+ buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
+ buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
+ buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
+ buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
+ buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
+ buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
+ buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
+ buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
+ buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
+ buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
+ buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
+ buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
+ buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
+ buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
+ buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
+ buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
+
+end
+
+-- Use a loop to conveniently call 'setup' on multiple servers and
+-- map buffer local keybindings when the language server attaches
+-- local servers = { 'pyls', 'rust_analyzer', 'tsserver' }
+local servers = { 'pylsp' }
+for _, lsp in ipairs(servers) do
+ nvim_lsp[lsp].setup {
+ on_attach = on_attach,
+ flags = {
+ debounce_text_changes = 150,
+ }
+ }
+end
diff --git a/lua/nvimlintconf.lua b/lua/nvimlintconf.lua
new file mode 100644
index 0000000..026ebe1
--- /dev/null
+++ b/lua/nvimlintconf.lua
@@ -0,0 +1,34 @@
+local null_ls = require("null-ls")
+local helpers = require("null-ls.helpers")
+
+local blacklint = {
+ method = null_ls.methods.DIAGNOSTICS,
+ filetypes = { "python" },
+ -- null_ls.generator creates an async source
+ -- that spawns the command with the given arguments and options
+ generator = null_ls.generator({
+ command = "black",
+ args = { "--stdin" },
+ to_stdin = true,
+ from_stderr = true,
+ -- choose an output format (raw, json, or line)
+ format = "line",
+ check_exit_code = function(code)
+ return code <= 1
+ end,
+ -- use helpers to parse the output from string matchers,
+ -- or parse it manually with a function
+ on_output = helpers.diagnostics.from_patterns({
+ {
+ pattern = [[:(%d+):(%d+) [%w-/]+ (.*)]],
+ groups = { "row", "col", "message" },
+ },
+ {
+ pattern = [[:(%d+) [%w-/]+ (.*)]],
+ groups = { "row", "message" },
+ },
+ }),
+ }),
+}
+
+null_ls.register(blacklint)
diff --git a/lua/settings.lua b/lua/settings.lua
new file mode 100644
index 0000000..e0ecddb
--- /dev/null
+++ b/lua/settings.lua
@@ -0,0 +1,5 @@
+local o = vim.o
+local g = vim.g
+
+g.colors_name = "nord"
+
diff --git a/lua/telescopeconf.lua b/lua/telescopeconf.lua
new file mode 100644
index 0000000..a589d4f
--- /dev/null
+++ b/lua/telescopeconf.lua
@@ -0,0 +1,52 @@
+local actions = require "telescope.actions"
+
+require('telescope').setup{
+ defaults = {
+ mappings = {
+ i = {
+ ["<esc>"] = actions.close,
+ ['<C-u>'] = false,
+ },
+ },
+ vimgrep_arguments = {
+ 'rg',
+ '--color=never',
+ '--no-heading',
+ '--with-filename',
+ '--line-number',
+ '--column',
+ '--smart-case'
+ },
+ prompt_prefix = "> ",
+ selection_caret = "> ",
+ entry_prefix = " ",
+ initial_mode = "insert",
+ selection_strategy = "reset",
+ sorting_strategy = "descending",
+ layout_strategy = "horizontal",
+ layout_config = {
+ horizontal = {
+ mirror = false,
+ },
+ vertical = {
+ mirror = false,
+ },
+ },
+ file_sorter = require'telescope.sorters'.get_fuzzy_file,
+ file_ignore_patterns = {},
+ generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
+ winblend = 0,
+ border = {},
+ borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },
+ color_devicons = true,
+ use_less = true,
+ path_display = {},
+ set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,
+ file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
+ grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
+ qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
+
+ -- Developer configurations: Not meant for general override
+ buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker
+ }
+}
diff --git a/lua/treesitterconf.lua b/lua/treesitterconf.lua
new file mode 100644
index 0000000..ae491bb
--- /dev/null
+++ b/lua/treesitterconf.lua
@@ -0,0 +1,18 @@
+local present, ts_config = pcall(require, "nvim-treesitter.configs")
+if not present then
+ return
+end
+
+ts_config.setup {
+ ensure_installed = {
+ "python",
+ "lua",
+ "nix",
+ },
+ highlight = {
+ enable = true,
+ },
+ indent = {
+ enable = true,
+ }
+}
diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua
new file mode 100644
index 0000000..7508661
--- /dev/null
+++ b/plugin/packer_compiled.lua
@@ -0,0 +1,137 @@
+-- Automatically generated packer.nvim plugin loader code
+
+if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
+ vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
+ return
+end
+
+vim.api.nvim_command('packadd packer.nvim')
+
+local no_errors, error_msg = pcall(function()
+
+ local time
+ local profile_info
+ local should_profile = false
+ if should_profile then
+ local hrtime = vim.loop.hrtime
+ profile_info = {}
+ time = function(chunk, start)
+ if start then
+ profile_info[chunk] = hrtime()
+ else
+ profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
+ end
+ end
+ else
+ time = function(chunk, start) end
+ end
+
+local function save_profiles(threshold)
+ local sorted_times = {}
+ for chunk_name, time_taken in pairs(profile_info) do
+ sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
+ end
+ table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
+ local results = {}
+ for i, elem in ipairs(sorted_times) do
+ if not threshold or threshold and elem[2] > threshold then
+ results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
+ end
+ end
+
+ _G._packer = _G._packer or {}
+ _G._packer.profile_output = results
+end
+
+time([[Luarocks path setup]], true)
+local package_path_str = "/home/thorny/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/thorny/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/thorny/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/thorny/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
+local install_cpath_pattern = "/home/thorny/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
+if not string.find(package.path, package_path_str, 1, true) then
+ package.path = package.path .. ';' .. package_path_str
+end
+
+if not string.find(package.cpath, install_cpath_pattern, 1, true) then
+ package.cpath = package.cpath .. ';' .. install_cpath_pattern
+end
+
+time([[Luarocks path setup]], false)
+time([[try_loadstring definition]], true)
+local function try_loadstring(s, component, name)
+ local success, result = pcall(loadstring(s))
+ if not success then
+ vim.schedule(function()
+ vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
+ end)
+ end
+ return result
+end
+
+time([[try_loadstring definition]], false)
+time([[Defining packer_plugins]], true)
+_G.packer_plugins = {
+ ["nord-vim"] = {
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/nord-vim"
+ },
+ ["null-ls.nvim"] = {
+ config = { "\27LJ\2\n,\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\17nvimlintconf\frequire\0" },
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/null-ls.nvim"
+ },
+ ["nvim-lspconfig"] = {
+ config = { "\27LJ\2\n-\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\18lspconfigconf\frequire\0" },
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/nvim-lspconfig"
+ },
+ ["nvim-treesitter"] = {
+ config = { "\27LJ\2\n.\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\19treesitterconf\frequire\0" },
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/nvim-treesitter"
+ },
+ ["packer.nvim"] = {
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/packer.nvim"
+ },
+ playground = {
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/playground"
+ },
+ ["plenary.nvim"] = {
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/plenary.nvim"
+ },
+ rnvimr = {
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/rnvimr"
+ },
+ ["telescope.nvim"] = {
+ config = { "\27LJ\2\n-\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\18telescopeconf\frequire\0" },
+ loaded = true,
+ path = "/home/thorny/.local/share/nvim/site/pack/packer/start/telescope.nvim"
+ }
+}
+
+time([[Defining packer_plugins]], false)
+-- Config for: null-ls.nvim
+time([[Config for null-ls.nvim]], true)
+try_loadstring("\27LJ\2\n,\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\17nvimlintconf\frequire\0", "config", "null-ls.nvim")
+time([[Config for null-ls.nvim]], false)
+-- Config for: nvim-treesitter
+time([[Config for nvim-treesitter]], true)
+try_loadstring("\27LJ\2\n.\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\19treesitterconf\frequire\0", "config", "nvim-treesitter")
+time([[Config for nvim-treesitter]], false)
+-- Config for: nvim-lspconfig
+time([[Config for nvim-lspconfig]], true)
+try_loadstring("\27LJ\2\n-\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\18lspconfigconf\frequire\0", "config", "nvim-lspconfig")
+time([[Config for nvim-lspconfig]], false)
+-- Config for: telescope.nvim
+time([[Config for telescope.nvim]], true)
+try_loadstring("\27LJ\2\n-\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\18telescopeconf\frequire\0", "config", "telescope.nvim")
+time([[Config for telescope.nvim]], false)
+if should_profile then save_profiles() end
+
+end)
+
+if not no_errors then
+ vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
+end