summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md121
-rw-r--r--ftdetect/bicep.lua3
-rw-r--r--ftplugin/bicep.lua1
-rw-r--r--init.lua12
-rw-r--r--lua/config/defaults.lua35
-rw-r--r--lua/core/which-key.lua17
-rw-r--r--lua/lsp/null-ls/formatters.lua6
-rw-r--r--lua/lsp/null-ls/linters.lua6
-rwxr-xr-xutils/installer/install.sh14
-rw-r--r--utils/vscode_config/settings.json2
10 files changed, 89 insertions, 128 deletions
diff --git a/README.md b/README.md
index 11b50b5e..4157a3af 100644
--- a/README.md
+++ b/README.md
@@ -20,79 +20,37 @@
</div>
-## Install In One Command!
+## Documentation
-Make sure you have the newest version of Neovim (0.5).
+You can find all of the documentation for Lunarvim at [lunarvim.org](https://www.lunarvim.org)
-``` bash
-bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
-```
-
-### Customizing the installation
-
-The following options are supported by setting environment variables:
-- `"$LV_REMOTE"` Select a different LunarVim remote [default: 'lunarvim/lunarvim.git']
-- `"$LV_BRANCH"` Select LunarVim's branch [default: 'rolling']
-- `"$INSTALL_PREFIX"` Select LunarVim's install prefix [default: `'$HOME/.local'`]
-- `"$LUNARVIM_RUNTIME_DIR"` Select LunarVim's runtime directory [default: `'$HOME/.local/share/lunarvim'`]
-- `"$LUNARVIM_CONFIG_DIR"` Select LunarVim's configuration directory [default: `'$HOME/.config/lvim'`]
+## Install In One Command!
-Putting it all together
+Make sure you have the release version of Neovim (0.5).
``` bash
-curl -LSs https://raw.githubusercontent.com/lunarvim/lunarvim/rolling/utils/installer/install.sh -O install.sh
-INSTALL_PREFIX=/tmp/t1 LUNARVIM_CONFIG_DIR=/tmp/t2 LUNARVIM_RUNTIME_DIR=/tmp/t3 bash ./install.sh
-```
-
-### BREAKING CHANGE on rolling and master branches
-* The latest changes to LunarVim require you to [remove it completely](https://github.com/lunarvim/LunarVim/wiki/Uninstalling-LunarVim) before upgrading
-* Going forward LunarVim will no longer reside in the nvim configuration folder. LunarVim has been moved to `~/.local/share/lunarvim`.
-* To launch Lunarvim use the new `lvim` command. `nvim` will only launch standard neovim.
-* Your personal configuration file (`config.lua`) can now be found in `~/.config/lvim`. You can initialize this folder as a git repository to track changes to your configuration files.
-* If you want to keep launching LunarVim with the `nvim` command, add an alias entry to your shell's config file: `alias nvim=lvim`. To temporarily revert to the default `nvim` prefix it with a backslash `\nvim`.
-* Many options formerly available in `config.lua` have been renamed. For details [look here](https://github.com/lunarvim/LunarVim/wiki/Breaking-changes-in-rolling)
-
-### Debugging LunarVim's configuration
-* To turn on debugging add these settings `lvim.log.level = debug` and use `<leader>Ll` to see the options of viewing the logfiles
-* You can also use install [lnav](https://github.com/tstack/lnav) and use it in a floating terminal. Make sure to set `lvim.builtin.terminal.active = true`.
-
-### Fixing installation problems
-If your installation is stuck on `Ok to remove? [y/N]`, it means there are some leftovers, \
-you can run the script with `--overwrite` but be warned this will remove the following folders:
-- `~/.cache/nvim`
-- `~/.config/nvim` #Removed only on Master Branch
-- `~/.local/share/nvim/site/pack/packer` #Removed only on Master Branch
-- `~/.local/share/lunarvim` #Removed only on Rolling Branch
-- `~/.config/lvim` #Removed only on Rolling Branch
-```bash
-curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/rolling/utils/installer/install.sh | LVBRANCH=rolling bash -s -- --overwrite
+bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
```
-then run nvim and wait for treesitter to finish the installation
+## Install Language support
-## Installing LSP for your language
+- Enter `:LspInstall` followed by `<TAB>` to see your options for LSP
-Just enter `:LspInstall` followed by `<TAB>` to see your options
+- Enter `:TSInstall` followed by `<TAB>` to see your options for syntax highlighting
**NOTE** I recommend installing `lua` for autocomplete in `config.lua`
-For the julia language server look [here](https://github.com/lunarvim/LunarVim/wiki/Enabling-a-language-server#julia-support)
-
## Configuration file
-To activate other plugins and language features use the `lv-config.lua` file provided in the `nvim` folder (`~/.config/nvim/lv-config.lua`) in the master branch or (`~/.config/lvim/config.lua`) on rolling
+To install plugins configure LunarVim use the `config.lua` located here: `~/.config/lvim/config.lua`
Example:
```lua
-- general
lvim.format_on_save = true
-lvim.lint_on_save = true
lvim.colorscheme = "onedarker"
-lvim.builtin.compe.autocomplete = true
-
--- keymappings [view all the defaults by pressing <leader>Lk]
lvim.leader = "space"
-- add your own keymapping
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
@@ -105,25 +63,16 @@ lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
-- Use which-key to add extra bindings with the leader-key prefix
-- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" }
--- lvim.builtin.which_key.mappings["t"] = {
--- name = "+Trouble",
--- r = { "<cmd>Trouble lsp_references<cr>", "References" },
--- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" },
--- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnosticss" },
--- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" },
--- l = { "<cmd>Trouble loclist<cr>", "LocationList" },
--- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnosticss" },
--- }
-
--- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
+
+-- Configure builtin plugins
lvim.builtin.dashboard.active = true
lvim.builtin.terminal.active = true
--- if you don't want all the parsers change this to a table of the ones you want
+-- Treesitter parsers change this to a table of the languages you want i.e. {"java", "python", javascript}
lvim.builtin.treesitter.ensure_installed = "maintained"
lvim.builtin.treesitter.ignore_install = { "haskell" }
-lvim.builtin.treesitter.highlight.enabled = true
+-- Disable virtual text
lvim.lsp.diagnostics.virtual_text = false
-- set a formatter if you want to override the default lsp one (if it exists)
@@ -151,23 +100,8 @@ lvim.plugins = {
event = "InsertEnter"
}
}
-
--- Autocommands (https://neovim.io/doc/user/autocmd.html)
--- lvim.autocommands.custom_groups = {
--- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },
--- }
-
-
```
-In case you want to see all the settings inside LunarVim, run the following:
-
-```bash
-cd /tmp
-lvim --headless +'lua require("utils").generate_settings()' +qa && sort -o lv-settings.lua{,}
-```
-and then inspect `/tmp/lv-settings.lua` file
-
## Updating LunarVim
In order to update you should be aware of three things `Plugins`, `LunarVim` and `Neovim`
@@ -185,37 +119,12 @@ cd ~/.local/share/lunarvim/lvim && git pull
:PackerSync
```
-To update Neovim use your package manager or [compile from source](https://github.com/lunarvim/LunarVim/wiki/Installation#get-the-latest-version-of-neovim)
-
-## Project Goals
-
-1. Provide basic functionalities required from an IDE
- - LSP
- - Formatting/Linting
- - Debugging
- - Treesitter
- - Colorschemes
-2. Be as fast and lean as possible
- - Lazy loading
- - Not a single extra plugin
- - User configurable lang/feature enable/disable
-3. Provide a [simple and easy](https://github.com/LunarVim/LunarVimCommunity) way for users to share their own configuration or use others.
-4. Hot reload of configurations
- - Hot install of lsp/treesitter/formatter required upon opening a filetype for the first time
-5. Provide a stable & maintainable error free configuration layer over neovim
- - With the help of the community behind it
- - Github workflow testing
- - Freezing plugin versions
-6. Provide detailed documentation
- - Video series on how to configure LunarVim as an IDE for each lang
-7. Valhalla
-
## Resources
-- [YouTube](https://www.youtube.com/channel/UCS97tchJDq17Qms3cux8wcA)
-
- [Documentation](https://www.lunarvim.org)
+- [YouTube](https://www.youtube.com/channel/UCS97tchJDq17Qms3cux8wcA)
+
- [Discord](https://discord.gg/Xb9B4Ny)
- [Twitter](https://twitter.com/chrisatmachine)
diff --git a/ftdetect/bicep.lua b/ftdetect/bicep.lua
new file mode 100644
index 00000000..bdd52e5e
--- /dev/null
+++ b/ftdetect/bicep.lua
@@ -0,0 +1,3 @@
+vim.cmd [[
+ au BufRead,BufNewFile *.bicep set filetype=bicep
+]]
diff --git a/ftplugin/bicep.lua b/ftplugin/bicep.lua
new file mode 100644
index 00000000..8ed9ca23
--- /dev/null
+++ b/ftplugin/bicep.lua
@@ -0,0 +1 @@
+require("lsp").setup "bicep"
diff --git a/init.lua b/init.lua
index 3ed7d231..03fa38ef 100644
--- a/init.lua
+++ b/init.lua
@@ -3,16 +3,16 @@ local home_dir = vim.loop.os_homedir()
vim.opt.rtp:append(home_dir .. "/.local/share/lunarvim/lvim")
-vim.opt.rtp:remove(home_dir .. "/.config/nvim")
-vim.opt.rtp:remove(home_dir .. "/.config/nvim/after")
-vim.opt.rtp:append(home_dir .. "/.config/lvim")
-vim.opt.rtp:append(home_dir .. "/.config/lvim/after")
-
vim.opt.rtp:remove(home_dir .. "/.local/share/nvim/site")
vim.opt.rtp:remove(home_dir .. "/.local/share/nvim/site/after")
-vim.opt.rtp:append(home_dir .. "/.local/share/lunarvim/site")
+vim.opt.rtp:prepend(home_dir .. "/.local/share/lunarvim/site")
vim.opt.rtp:append(home_dir .. "/.local/share/lunarvim/site/after")
+vim.opt.rtp:remove(home_dir .. "/.config/nvim")
+vim.opt.rtp:remove(home_dir .. "/.config/nvim/after")
+vim.opt.rtp:prepend(home_dir .. "/.config/lvim")
+vim.opt.rtp:append(home_dir .. "/.config/lvim/after")
+
-- TODO: we need something like this: vim.opt.packpath = vim.opt.rtp
vim.cmd [[let &packpath = &runtimepath]]
-- }}}
diff --git a/lua/config/defaults.lua b/lua/config/defaults.lua
index 4f93f924..d60938b8 100644
--- a/lua/config/defaults.lua
+++ b/lua/config/defaults.lua
@@ -134,6 +134,20 @@ lvim.lang = {
},
},
},
+ bicep = {
+ formatters = {},
+ linters = {},
+ lsp = {
+ provider = "bicep",
+ setup = {
+ cmd = {
+ "dotnet",
+ DATA_PATH .. "/lspinstall/bicep/Bicep.LangServer.dll",
+ },
+ filetypes = { "bicep" },
+ },
+ },
+ },
c = {
formatters = {
-- {
@@ -1077,6 +1091,27 @@ lvim.lang = {
cmd = {
DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls",
},
+ root_dir = function(fname)
+ local util = require "lspconfig/util"
+ return util.root_pattern "package.json"(fname) or util.root_pattern "vue.config.js"(fname) or vim.fn.getcwd()
+ end,
+ init_options = {
+ config = {
+ vetur = {
+ completion = {
+ autoImport = true,
+ tagCasing = "kebab",
+ useScaffoldSnippets = true,
+ },
+ useWorkspaceDependencies = true,
+ validation = {
+ script = true,
+ style = true,
+ template = true,
+ },
+ },
+ },
+ },
},
},
},
diff --git a/lua/core/which-key.lua b/lua/core/which-key.lua
index 8f2f2a5a..458e1634 100644
--- a/lua/core/which-key.lua
+++ b/lua/core/which-key.lua
@@ -72,25 +72,26 @@ M.config = function()
["h"] = { "<cmd>nohlsearch<CR>", "No Highlight" },
b = {
name = "Buffers",
- j = { "<cmd>BufferPick<cr>", "jump to buffer" },
- f = { "<cmd>Telescope buffers<cr>", "Find buffer" },
- w = { "<cmd>BufferWipeout<cr>", "wipeout buffer" },
+ j = { "<cmd>BufferPick<cr>", "Jump" },
+ f = { "<cmd>Telescope buffers<cr>", "Find" },
+ b = { "<cmd>b#<cr>", "Previous" },
+ w = { "<cmd>BufferWipeout<cr>", "Wipeout" },
e = {
"<cmd>BufferCloseAllButCurrent<cr>",
- "close all but current buffer",
+ "Close all but current",
},
- h = { "<cmd>BufferCloseBuffersLeft<cr>", "close all buffers to the left" },
+ h = { "<cmd>BufferCloseBuffersLeft<cr>", "Close all to the left" },
l = {
"<cmd>BufferCloseBuffersRight<cr>",
- "close all BufferLines to the right",
+ "Close all to the right",
},
D = {
"<cmd>BufferOrderByDirectory<cr>",
- "sort BufferLines automatically by directory",
+ "Sort by directory",
},
L = {
"<cmd>BufferOrderByLanguage<cr>",
- "sort BufferLines automatically by language",
+ "Sort by language",
},
},
p = {
diff --git a/lua/lsp/null-ls/formatters.lua b/lua/lsp/null-ls/formatters.lua
index 26be00da..2c2a4f06 100644
--- a/lua/lsp/null-ls/formatters.lua
+++ b/lua/lsp/null-ls/formatters.lua
@@ -45,15 +45,15 @@ function M.list_configured(formatter_configs)
local formatter = null_ls.builtins.formatting[fmt_config.exe]
if not formatter then
- Log:error("Not a valid formatter:", fmt_config.exe)
+ Log:error("Not a valid formatter: " .. fmt_config.exe)
errors[fmt_config.exe] = {} -- Add data here when necessary
else
local formatter_cmd = services.find_command(formatter._opts.command)
if not formatter_cmd then
- Log:warn("Not found:", formatter._opts.command)
+ Log:warn("Not found: " .. formatter._opts.command)
errors[fmt_config.exe] = {} -- Add data here when necessary
else
- Log:debug("Using formatter:", formatter_cmd)
+ Log:debug("Using formatter: " .. formatter_cmd)
formatters[fmt_config.exe] = formatter.with { command = formatter_cmd, extra_args = fmt_config.args }
end
end
diff --git a/lua/lsp/null-ls/linters.lua b/lua/lsp/null-ls/linters.lua
index bc191d7e..d88a8b83 100644
--- a/lua/lsp/null-ls/linters.lua
+++ b/lua/lsp/null-ls/linters.lua
@@ -45,15 +45,15 @@ function M.list_configured(linter_configs)
local linter = null_ls.builtins.diagnostics[lnt_config.exe]
if not linter then
- Log:error("Not a valid linter:", lnt_config.exe)
+ Log:error("Not a valid linter: " .. lnt_config.exe)
errors[lnt_config.exe] = {} -- Add data here when necessary
else
local linter_cmd = services.find_command(linter._opts.command)
if not linter_cmd then
- Log:warn("Not found:", linter._opts.command)
+ Log:warn("Not found: " .. linter._opts.command)
errors[lnt_config.exe] = {} -- Add data here when necessary
else
- Log:debug("Using linter:", linter_cmd)
+ Log:debug("Using linter: " .. linter_cmd)
linters[lnt_config.exe] = linter.with { command = linter_cmd, extra_args = lnt_config.args }
end
end
diff --git a/utils/installer/install.sh b/utils/installer/install.sh
index c39f6c8e..ec9813cf 100755
--- a/utils/installer/install.sh
+++ b/utils/installer/install.sh
@@ -210,11 +210,23 @@ function backup_old_config() {
# we create an empty folder for subsequent commands \
# that require an existing directory
mkdir -p "$dir" "$dir.bak"
+ touch "$dir/ignore"
if command -v rsync &>/dev/null; then
rsync --archive -hh --partial --progress --cvs-exclude \
--modify-window=1 "$dir"/ "$dir.bak"
else
- cp -R "$dir/"* "$dir.bak/."
+ OS="$(uname -s)"
+ case "$OS" in
+ Linux)
+ cp -r "$dir/"* "$dir.bak/."
+ ;;
+ Darwin)
+ cp -R "$dir/"* "$dir.bak/."
+ ;;
+ *)
+ echo "OS $OS is not currently supported."
+ ;;
+ esac
fi
done
echo "Backup operation complete"
diff --git a/utils/vscode_config/settings.json b/utils/vscode_config/settings.json
index d8a91c0f..2cca67a5 100644
--- a/utils/vscode_config/settings.json
+++ b/utils/vscode_config/settings.json
@@ -362,7 +362,7 @@
},
{
"key": "P",
- "name": "Push",
+ "name": "Pull",
"type": "command",
"command": "git.pull"
},