diff options
| author | christianchiarulli <[email protected]> | 2021-09-03 18:38:46 -0400 | 
|---|---|---|
| committer | christianchiarulli <[email protected]> | 2021-09-03 18:38:46 -0400 | 
| commit | a77e36483b39c09ed39a4cd78de7c240e0f9e9a5 (patch) | |
| tree | a99f503d01f539dfa9ab04106555f0cf3986d77a | |
| parent | 79a4a4295374933617b30ecff8c36bf8f6440d7a (diff) | |
| parent | f82ffdca1fbd7733b42e07b3d68daac4f041985e (diff) | |
Merge branch 'rolling' of github.com:ChristianChiarulli/LunarVim into rolling
| -rw-r--r-- | README.md | 121 | ||||
| -rw-r--r-- | ftdetect/bicep.lua | 3 | ||||
| -rw-r--r-- | ftplugin/bicep.lua | 1 | ||||
| -rw-r--r-- | init.lua | 12 | ||||
| -rw-r--r-- | lua/config/defaults.lua | 35 | ||||
| -rw-r--r-- | lua/core/which-key.lua | 17 | ||||
| -rw-r--r-- | lua/lsp/null-ls/formatters.lua | 6 | ||||
| -rw-r--r-- | lua/lsp/null-ls/linters.lua | 6 | ||||
| -rwxr-xr-x | utils/installer/install.sh | 14 | ||||
| -rw-r--r-- | utils/vscode_config/settings.json | 2 | 
10 files changed, 89 insertions, 128 deletions
| @@ -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" @@ -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"          }, | 
