summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE/general-issue-form.yaml60
-rw-r--r--ftdetect/zig.lua4
l---------ftplugin/cpp.lua1
-rw-r--r--ftplugin/elixir.lua10
-rw-r--r--ftplugin/euphoria3.lua11
-rw-r--r--ftplugin/python.lua2
-rw-r--r--ftplugin/zig.lua15
-rw-r--r--lua/default-config.lua9
-rw-r--r--lua/lsp/init.lua1
-rw-r--r--lua/lv-galaxyline/init.lua33
-rw-r--r--lua/lv-hop/init.lua1
-rw-r--r--lua/plugins.lua62
-rw-r--r--lua/settings.lua110
-rw-r--r--utils/installer/lv-config.example.lua1
14 files changed, 225 insertions, 95 deletions
diff --git a/.github/ISSUE_TEMPLATE/general-issue-form.yaml b/.github/ISSUE_TEMPLATE/general-issue-form.yaml
new file mode 100644
index 00000000..4571fa12
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/general-issue-form.yaml
@@ -0,0 +1,60 @@
+name: General Issue
+description: File a bug report
+title: "[Bug]: "
+labels: [bug]
+# assignees:
+# - ChristianChiarulli
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thank you for helping us improve !
+ - type: textarea
+ id: problem-description
+ attributes:
+ label: Problem description
+ description: Also tell us, what did you expect to happen?
+ placeholder: |
+ Steps to reproduce the behavior:
+ 1. Go to '...'
+ 2. Click on '....'
+ 3. Scroll down to '....'
+ 4. See error
+ validations:
+ required: true
+ - type: input
+ id: lunar-vim-version
+ attributes:
+ label: LunarVim version
+ validations:
+ required: true
+ - type: input
+ id: nvim-version
+ attributes:
+ label: Neovim version (>= 0.5)
+ placeholder: nvim --version
+ validations:
+ required: true
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant log output
+ placeholder: |
+ nvim -v
+ :checkhealth
+ :messages
+ render: shell
+ - type: textarea
+ id: screenshots
+ attributes:
+ label: Screenshots
+ description: If applicable, add screenshots to help explain your problem
+ - type: checkboxes
+ id: checks
+ attributes:
+ label: I have read
+ options:
+ - label: The readme
+ required: true
+ - label: The wiki
+ required: true
diff --git a/ftdetect/zig.lua b/ftdetect/zig.lua
new file mode 100644
index 00000000..81e901ca
--- /dev/null
+++ b/ftdetect/zig.lua
@@ -0,0 +1,4 @@
+vim.cmd([[
+ au BufRead,BufNewFile *.zig set filetype=zig
+ au BufRead,BufNewFile *.zir set filetype=zir
+]])
diff --git a/ftplugin/cpp.lua b/ftplugin/cpp.lua
new file mode 120000
index 00000000..d2be5311
--- /dev/null
+++ b/ftplugin/cpp.lua
@@ -0,0 +1 @@
+c.lua \ No newline at end of file
diff --git a/ftplugin/elixir.lua b/ftplugin/elixir.lua
index 418b4c4d..362ee010 100644
--- a/ftplugin/elixir.lua
+++ b/ftplugin/elixir.lua
@@ -3,8 +3,8 @@ require'lspconfig'.elixirls.setup{
}
-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)
-vim.cmd([[
- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
- au BufRead,BufNewFile mix.lock set filetype=elixir
-]]) \ No newline at end of file
+-- vim.cmd([[
+-- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
+-- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
+-- au BufRead,BufNewFile mix.lock set filetype=elixir
+-- ]])
diff --git a/ftplugin/euphoria3.lua b/ftplugin/euphoria3.lua
new file mode 100644
index 00000000..adc0ac7d
--- /dev/null
+++ b/ftplugin/euphoria3.lua
@@ -0,0 +1,11 @@
+-- TODO Remove this at some point
+require'lspconfig'.elixirls.setup{
+ cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh"};
+}
+
+-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)
+-- vim.cmd([[
+-- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
+-- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
+-- au BufRead,BufNewFile mix.lock set filetype=elixir
+-- ]])
diff --git a/ftplugin/python.lua b/ftplugin/python.lua
index 7ae0d6fd..23e54880 100644
--- a/ftplugin/python.lua
+++ b/ftplugin/python.lua
@@ -26,7 +26,7 @@ require"lspconfig".efm.setup {
-- init_options = {initializationOptions},
cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
init_options = {documentFormatting = true, codeAction = false},
- filetypes = {"lua", "python", "javascriptreact", "javascript", "typescript","typescriptreact","sh", "html", "css", "yaml", "markdown", "vue"},
+ filetypes = {"python"},
settings = {
rootMarkers = {".git/", "requirements.txt"},
languages = {
diff --git a/ftplugin/zig.lua b/ftplugin/zig.lua
new file mode 100644
index 00000000..06217ddd
--- /dev/null
+++ b/ftplugin/zig.lua
@@ -0,0 +1,15 @@
+-- Because lspinstall don't support zig yet,
+-- So we need zls preset in global lib
+-- Further custom install zls in
+-- https://github.com/zigtools/zls/wiki/Downloading-and-Building-ZLS
+require'lspconfig'.zls.setup{
+ root_dir = require'lspconfig'.util.root_pattern(".git", "build.zig", "zls.json"),
+ on_attach = require'lsp'.common_on_attach,
+}
+require('lv-utils').define_augroups({
+ _zig_autoformat = {
+ {'BufWritePre', '*.zig', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
+ {'BufEnter', '*.zig', ':lua vim.api.nvim_buf_set_option(0, "commentstring", "// %s")'}
+ }
+})
+vim.cmd("setl expandtab tabstop=8 softtabstop=4 shiftwidth=4")
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 0553226f..83ff1cc2 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -1,6 +1,7 @@
CONFIG_PATH = vim.fn.stdpath('config')
DATA_PATH = vim.fn.stdpath('data')
CACHE_PATH = vim.fn.stdpath('cache')
+TERMINAL = vim.fn.expand('$TERMINAL')
O = {
auto_close_tree = 0,
@@ -18,6 +19,8 @@ O = {
ignore_case = true,
smart_case = true,
lushmode = false,
+ hl_search = false,
+ transparent_window = false;
leader_key = "space";
-- @usage pass a table with your desired languages
@@ -145,9 +148,9 @@ O = {
virtual_text = {spacing = 0, prefix = "ï„‘"},
signs = true,
underline = true,
- cross_file_rename = true,
- header_insertion = 'never'
- }
+ },
+ cross_file_rename = true,
+ header_insertion = 'never'
},
ruby = {
diagnostics = {
diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua
index 367aefba..8bc8984f 100644
--- a/lua/lsp/init.lua
+++ b/lua/lsp/init.lua
@@ -20,7 +20,6 @@ vim.cmd("nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>")
vim.cmd("nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>")
vim.cmd("nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>")
vim.cmd("nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>")
-vim.cmd("nnoremap <silent> ca :Lspsaga code_action<CR>")
vim.cmd("nnoremap <silent> K :Lspsaga hover_doc<CR>")
-- vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>')
vim.cmd("nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR>")
diff --git a/lua/lv-galaxyline/init.lua b/lua/lv-galaxyline/init.lua
index a7821932..51b9072c 100644
--- a/lua/lv-galaxyline/init.lua
+++ b/lua/lv-galaxyline/init.lua
@@ -103,7 +103,7 @@ table.insert(gls.left, {
highlight = {colors.red, colors.bg}
}
})
-print(vim.fn.getbufvar(0, 'ts'))
+-- print(vim.fn.getbufvar(0, 'ts'))
vim.fn.getbufvar(0, 'ts')
table.insert(gls.left, {
@@ -178,9 +178,38 @@ table.insert(gls.right, {
}
})
+local get_lsp_client = function (msg)
+ msg = msg or "No Active LSP Client"
+ local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
+ local clients = vim.lsp.get_active_clients()
+ if next(clients) == nil then
+ return msg
+ end
+ local lsps = ""
+ for _,client in ipairs(clients) do
+ local filetypes = client.config.filetypes
+ if filetypes and vim.fn.index(filetypes, buf_ft) ~=1 then
+ -- print(client.name)
+ if lsps == "" then
+ -- print("first", lsps)
+ lsps = client.name
+ else
+ lsps = lsps .. ", " .. client.name
+ -- print("more", lsps)
+ end
+ end
+ end
+ if lsps == "" then
+ return msg
+ else
+ return lsps
+ end
+end
+
+
table.insert(gls.right, {
ShowLspClient = {
- provider = 'GetLspClient',
+ provider = get_lsp_client,
condition = function()
local tbl = {['dashboard'] = true, [' '] = true}
if tbl[vim.bo.filetype] then return false end
diff --git a/lua/lv-hop/init.lua b/lua/lv-hop/init.lua
index 21003374..8e30a1c8 100644
--- a/lua/lv-hop/init.lua
+++ b/lua/lv-hop/init.lua
@@ -1,6 +1,7 @@
local M = {}
M.config = function()
+ require('hop').setup()
vim.api.nvim_set_keymap('n', 's', ":HopChar2<cr>", {silent = true})
vim.api.nvim_set_keymap('n', 'S', ":HopWord<cr>", {silent = true})
end
diff --git a/lua/plugins.lua b/lua/plugins.lua
index bc78ebab..0a59ae8d 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -10,21 +10,19 @@ if fn.empty(fn.glob(install_path)) > 0 then
end
local packer_ok, packer = pcall(require, "packer")
-if not packer_ok then
- return
-end
+if not packer_ok then return end
packer.init {
- -- compile_path = vim.fn.stdpath('data')..'/site/pack/loader/start/packer.nvim/plugin/packer_compiled.vim',
- compile_path = require("packer.util").join_paths(vim.fn.stdpath('config'), 'plugin', 'packer_compiled.vim'),
- git = {
- clone_timeout = 300
- },
- display = {
- open_fn = function()
- return require("packer.util").float { border = "single" }
- end,
- },
+ -- compile_path = vim.fn.stdpath('data')..'/site/pack/loader/start/packer.nvim/plugin/packer_compiled.vim',
+ compile_path = require("packer.util").join_paths(vim.fn.stdpath('config'),
+ 'plugin',
+ 'packer_compiled.vim'),
+ git = {clone_timeout = 300},
+ display = {
+ open_fn = function()
+ return require("packer.util").float {border = "single"}
+ end
+ }
}
vim.cmd "autocmd BufWritePost plugins.lua PackerCompile" -- Auto compile when there are changes in plugins.lua
@@ -46,15 +44,15 @@ return require("packer").startup(function(use)
config = [[require('lv-telescope')]],
cmd = "Telescope"
}
- -- Snap
- use {
- "camspiers/snap",
- rocks = "fzy",
- config = function()
- require("lv-snap").config()
- end,
- disable = not O.plugin.snap.active,
- }
+ -- Snap TODO disable for now, need to only install fzy when user specifies they want to use snap
+ -- use {
+ -- "camspiers/snap",
+ -- rocks = "fzy",
+ -- config = function()
+ -- require("lv-snap").config()
+ -- end,
+ -- disable = not O.plugin.snap.active
+ -- }
-- Autocomplete
use {
"hrsh7th/nvim-compe",
@@ -90,8 +88,11 @@ return require("packer").startup(function(use)
use {"folke/which-key.nvim"}
-- Autopairs
- use {"windwp/nvim-autopairs",
- config = function() require'lv-autopairs' end
+ use {
+ "windwp/nvim-autopairs",
+ config = function()
+ require 'lv-autopairs'
+ end
}
-- Comments
@@ -221,7 +222,6 @@ return require("packer").startup(function(use)
use {
"lukas-reineke/indent-blankline.nvim",
- branch = "lua",
event = "BufRead",
setup = function()
@@ -400,9 +400,8 @@ return require("packer").startup(function(use)
-- Lush Create Color Schemes
use {
"rktjmp/lush.nvim",
- event = "VimEnter",
-- cmd = {"LushRunQuickstart", "LushRunTutorial", "Lushify"},
- -- disable = not O.plugin.lush.active,
+ disable = not O.plugin.lush.active,
}
-- HTML preview
use {
@@ -421,15 +420,12 @@ return require("packer").startup(function(use)
-- LANGUAGE SPECIFIC GOES HERE
-- Latex TODO what filetypes should this be active for?
- use {"lervag/vimtex", ft = "latex", disable = not O.lang.latex.active}
+ use {"lervag/vimtex", ft = "latex"}
-- Rust tools
-- TODO: use lazy loading maybe?
- use {"simrat39/rust-tools.nvim", disable = not O.lang.rust.active}
+ use {"simrat39/rust-tools.nvim", ft = "rust"}
-- Elixir
- use {"elixir-editors/vim-elixir",
- ft = {"elixir", "eelixir"},
- disable = not O.lang.elixir.active
- }
+ use {"elixir-editors/vim-elixir", ft = {"elixir", "eelixir", "euphoria3"}}
end)
diff --git a/lua/settings.lua b/lua/settings.lua
index 4aaad357..6c7f7ddf 100644
--- a/lua/settings.lua
+++ b/lua/settings.lua
@@ -1,50 +1,60 @@
-vim.cmd('set iskeyword+=-') -- treat dash separated words as a word text object"
-vim.opt.shortmess:append("c") -- Don't pass messages to |ins-completion-menu|.
-vim.cmd('set inccommand=split') -- Make substitution work in realtime
-vim.o.hidden = O.hidden_files -- Required to keep multiple buffers open multiple buffers
-vim.o.title = true
-TERMINAL = vim.fn.expand('$TERMINAL')
-vim.cmd('let &titleold="'..TERMINAL..'"')
-vim.o.titlestring="%<%F%=%l/%L - nvim"
-vim.wo.wrap = O.wrap_lines -- Display long lines as just one line
-vim.cmd('set whichwrap+=<,>,[,],h,l') -- move to next line with theses keys
-vim.o.pumheight = 10 -- Makes popup menu smaller
-vim.o.fileencoding = "utf-8" -- The encoding written to file
-vim.o.cmdheight = 2 -- More space for displaying messages
-vim.cmd('set colorcolumn=99999') -- fix indentline for now
-vim.o.mouse = "a" -- Enable your mouse
-vim.o.splitbelow = true -- Horizontal splits will automatically be below
-vim.o.termguicolors = true -- set term gui colors most terminals support this
-vim.o.splitright = true -- Vertical splits will automatically be to the right
--- vim.o.t_Co = "256" -- Support 256 colors
-vim.o.conceallevel = 0 -- So that I can see `` in markdown files
-vim.opt.tabstop = 4 -- Insert 2 spaces for a tab
-vim.opt.shiftwidth = 4 -- Change the number of space characters inserted for indentation
---vim.opt.softtabstop = 4
-vim.opt.expandtab = true -- Converts tabs to spaces
-vim.o.completeopt = "menuone,noselect"
-vim.bo.smartindent = true -- Makes indenting smart
-vim.wo.number = O.number -- set numbered lines
-vim.wo.relativenumber = O.relative_number -- set relative number
-vim.wo.cursorline = O.cursorline -- set highlighting of the current line
-vim.o.showtabline = 2 -- Always show tabs
-vim.o.showmode = false -- We don't need to see things like -- INSERT -- anymore
-vim.o.backup = false -- This is recommended by coc
-vim.o.writebackup = false -- This is recommended by coc
-vim.o.swapfile = false -- Do not write any swp files
-vim.o.undodir = CACHE_PATH .. '/undo' -- Set undo directory
-vim.o.undofile = true -- Enable persistent undo
-vim.wo.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
-vim.o.updatetime = 300 -- Faster completion
-vim.o.timeoutlen = O.timeoutlen -- By default timeoutlen is 1000 ms
-vim.o.clipboard = "unnamedplus" -- Copy paste between vim and everything else
--- vim.g.nvim_tree_disable_netrw = O.nvim_tree_disable_netrw -- enable netrw for remote gx gf support (must be set before plugin's packadd)
-vim.cmd('filetype plugin on') -- filetype detection
--- vim.o.guifont = "JetBrainsMono\\ Nerd\\ Font\\ Mono:h18"
--- vim.o.guifont = "Hack\\ Nerd\\ Font\\ Mono"
--- vim.o.guifont = "SauceCodePro Nerd Font:h17"
-vim.o.guifont = "FiraCode Nerd Font:h17"
-
--- vim.o.guifont = "JetBrains\\ Mono\\ Regular\\ Nerd\\ Font\\ Complete"
-vim.o.ignorecase = O.ignore_case
-vim.o.smartcase = O.smart_case
+--- HELPERS ---
+
+
+local cmd = vim.cmd
+local opt = vim.opt
+
+
+--- VIM ONLY COMMANDS ---
+
+
+cmd('filetype plugin on') -- filetype detection
+cmd('let &titleold="'..TERMINAL..'"')
+cmd('set inccommand=split') -- show what you are substituting in real time
+cmd('set iskeyword+=-') -- treat dash as a separate word
+cmd('set whichwrap+=<,>,[,],h,l') -- move to next line with theses keys
+if O.transparent_window then
+ cmd('au ColorScheme * hi Normal ctermbg=none guibg=none')
+ end
+
+--- SETTINGS ---
+
+
+opt.backup = false -- creates a backup file
+opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
+opt.cmdheight = 2 -- more space in the neovim command line for displaying messages
+opt.colorcolumn = "99999" -- fix indentline for now
+opt.completeopt = {'menuone', 'noselect'}
+opt.conceallevel = 0 -- so that `` is visible in markdown files
+opt.fileencoding = "utf-8" -- the encoding written to a file
+opt.guifont = "monospace:h17" -- the font used in graphical neovim applications
+opt.hidden = O.hidden_files -- required to keep multiple buffers and open multiple buffers
+opt.hlsearch = O.hl_search -- highlight all matches on previous search pattern
+opt.ignorecase = O.ignore_case -- ignore case in search patterns
+opt.mouse = "a" -- allow the mouse to be used in neovim
+opt.pumheight = 10 -- pop up menu height
+opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
+opt.showtabline = 2 -- always show tabs
+opt.smartcase = O.smart_case -- smart case
+opt.smartindent = true -- make indenting smarter again
+opt.splitbelow = true -- force all horizontal splits to go below current window
+opt.splitright = true -- force all vertical splits to go to the right of current window
+opt.swapfile = false -- creates a swapfile
+opt.termguicolors = true -- set term gui colors (most terminals support this)
+opt.timeoutlen = O.timeoutlen -- time to wait for a mapped sequence to complete (in milliseconds)
+opt.title = true -- set the title of window to the value of the titlestring
+opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to
+opt.undodir = CACHE_PATH .. '/undo' -- set an undo directory
+opt.undofile = true -- enable persisten undo
+opt.updatetime = 300 -- faster completion
+opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
+opt.expandtab = true -- convert tabs to spaces
+opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
+opt.shortmess:append("c") -- don't pass messages to |ins-completion-menu|
+opt.tabstop = 4 -- insert 4 spaces for a tab
+opt.cursorline = O.cursorline -- highlight the current line
+opt.number = O.number -- set numbered lines
+opt.relativenumber = O.relative_number -- set relative numbered lines
+opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time
+opt.wrap = O.wrap_lines -- display lines as one long line
+
diff --git a/utils/installer/lv-config.example.lua b/utils/installer/lv-config.example.lua
index 543f8a72..c90d4876 100644
--- a/utils/installer/lv-config.example.lua
+++ b/utils/installer/lv-config.example.lua
@@ -18,6 +18,7 @@ O.leader_key = ' '
O.ignore_case = true
O.smart_case = true
O.lushmode = false
+O.transparent_window = false
-- After changing plugin config it is recommended to run :PackerCompile
O.plugin.hop.active = false