summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/changelog.yml22
-rw-r--r--.github/workflows/cliff.toml77
-rw-r--r--.github/workflows/commitlint.yml7
-rw-r--r--.gitignore3
-rw-r--r--CHANGELOG.md278
-rw-r--r--lua/lvim/keymappings.lua15
-rw-r--r--utils/ci/update_changelog.sh15
7 files changed, 415 insertions, 2 deletions
diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml
new file mode 100644
index 00000000..74b20dc7
--- /dev/null
+++ b/.github/workflows/changelog.yml
@@ -0,0 +1,22 @@
+name: changelog
+on: release
+
+jobs:
+ changelog-gen:
+ name: Generate changelog
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - uses: orhun/git-cliff-action@v1
+ with:
+ config: cliff.toml
+ args: -vv --latest --strip header -c .github/workflows/cliff.toml
+ env:
+ OUTPUT: CHANGELOG.md
+
+ - name: Print the changelog
+ run: cat "${{ steps.git-cliff.outputs.changelog }}"
diff --git a/.github/workflows/cliff.toml b/.github/workflows/cliff.toml
new file mode 100644
index 00000000..a183df33
--- /dev/null
+++ b/.github/workflows/cliff.toml
@@ -0,0 +1,77 @@
+# configuration file for git-cliff (0.1.0)
+
+[changelog]
+# changelog header
+header = """
+# Changelog\n
+All notable changes to this project will be documented in this file.\n
+"""
+# template for the changelog body
+# https://tera.netlify.app/docs/#introduction
+body = """
+{% if version %}\
+ ## [{{ version | trim_start_matches(pat="v") }}]
+{% else %}\
+ ## [unreleased]
+{% endif %}\
+{% for group, commits in commits | group_by(attribute="group") %}
+ ### {{ group | upper_first }}
+ {% for commit in commits
+ | filter(attribute="scope")
+ | sort(attribute="scope") %}
+ - {% if commit.breaking %}[**breaking**] {% endif %}_({{commit.scope}})_ {{ commit.message }}
+ {%- endfor %}
+ {% for commit in commits %}
+ {%- if commit.scope -%}
+ {% else -%}
+ - {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message }}
+ {% endif -%}
+ {% endfor -%}
+ {% raw %}{% endraw %}\
+{% endfor %}\n
+"""
+# remove the leading and trailing whitespaces from the template
+trim = true
+# changelog footer
+footer = """
+<!-- generated by git-cliff -->
+"""
+
+[git]
+# allow only conventional commits
+# https://www.conventionalcommits.org
+conventional_commits = true
+# filter out the commits that are not conventional
+filter_unconventional = true
+# regex for parsing and grouping commits
+commit_preprocessors = [
+ { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/lunarvim/lunarvim/pull/${2}))"},
+]
+commit_parsers = [
+ { message = "(.*bump|.*Bump)", group = "<!-- 7 --> Miscellaneous Tasks", skip = true},
+ { message = "^build", group = "<!-- 0 --> Packaging"},
+ { message = "(^feat|^Feat|^\\[Feat)", group = "<!-- 1 --> Features"},
+ { message = "(^bug|^Bug|^fix|^\\[Bug)", group = "<!-- 2 --> Bugfix"},
+ { message = "(^refactor|^ref)", group = "<!-- 3 --> Refactor"},
+ { message = "^doc", group = "<!-- 4 --> Documentation"},
+ { message = "^revert", group = "<!-- 5 --> Revert"},
+ { message = "^perf", group = "<!-- 6 --> Performance"},
+ { message = "^chore", group = "<!-- 7 --> Miscellaneous Tasks", skip = true},
+ { message = "^ci", group = "<!-- 7 --> Miscellaneous Tasks", skip = true},
+ { message = "^test", group = "<!-- 7 --> Miscellaneous Tasks", skip = true},
+]
+# filter out the commits that are not matched by commit parsers
+filter_commits = false
+# glob pattern for matching git tags
+tag_pattern = "v[0-9]*"
+# regex for skipping tags
+skip_tags = "v0.1.0-beta.1"
+# regex for ignoring tags
+ignore_tags = ""
+# sort the tags topologically
+topo_order = false
+# sort the commits inside sections by oldest/newest order
+sort_commits = "oldest"
+
+[features]
+preserve_order = ["serde_json/preserve_order"]
diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml
index 93c776e3..1bae3a10 100644
--- a/.github/workflows/commitlint.yml
+++ b/.github/workflows/commitlint.yml
@@ -1,5 +1,9 @@
name: "Commit Linter"
-on: pull_request
+on:
+ pull_request:
+ branches:
+ - "rolling"
+
jobs:
lint-commits:
runs-on: ubuntu-latest
@@ -13,3 +17,4 @@ jobs:
with:
configFile: .github/workflows/commitlint.config.js
helpURL: https://github.com/LunarVim/LunarVim/blob/rolling/CONTRIBUTING.md#commit-messages
+ firstParent: true
diff --git a/.gitignore b/.gitignore
index 440d01d9..c4b5cbc1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,4 +28,5 @@ lua/lv-user-config/
*.backup
*.old
-.luacheckcache \ No newline at end of file
+.luarc.json
+.luacheckcache
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..d6fb592a
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,278 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### <!-- 1 --> Features
+
+- _(cmp)_ documentation is deprecated in favor of window.documentation ([#2461](https://github.com/lunarvim/lunarvim/pull/2461))
+- _(cmp)_ add option to disable friendly-snippets ([#2660](https://github.com/lunarvim/lunarvim/pull/2660))
+- _(codelens)_ cursorhold is too much intrusive for codelens ([#2600](https://github.com/lunarvim/lunarvim/pull/2600))
+- _(icons)_ make it possible to disable icons ([#2529](https://github.com/lunarvim/lunarvim/pull/2529))
+- _(installer)_ ensure correct responses when prompting user ([#2506](https://github.com/lunarvim/lunarvim/pull/2506))
+- _(lua-dev)_ use the newer lua-dev branch till folke comes back ([#2538](https://github.com/lunarvim/lunarvim/pull/2538))
+- _(neovim)_ neovim 0.8 compatibility ([#2544](https://github.com/lunarvim/lunarvim/pull/2544))
+- _(peek)_ make sure max width and height are customizable ([#2492](https://github.com/lunarvim/lunarvim/pull/2492))
+- _(plugins)_ add support for packer snapshots ([#2351](https://github.com/lunarvim/lunarvim/pull/2351))
+- _(quit)_ make sure to ask before discarding changes ([#2554](https://github.com/lunarvim/lunarvim/pull/2554))
+- lock nvim <0.7 to a specific tag ([#2491](https://github.com/lunarvim/lunarvim/pull/2491))
+- gitsigns yadm support ([#2535](https://github.com/lunarvim/lunarvim/pull/2535))
+- add cmp-tmux to the list of sources ([#2542](https://github.com/lunarvim/lunarvim/pull/2542))
+- prompt when closing modified/term buffers ([#2658](https://github.com/lunarvim/lunarvim/pull/2658))
+
+### <!-- 2 --> Bugfix
+
+- _(autocmd)_ actually use the format wrapper ([#2560](https://github.com/lunarvim/lunarvim/pull/2560))
+- _(autocmds)_ make sure we are using codelens correctly ([#2576](https://github.com/lunarvim/lunarvim/pull/2576))
+- _(autocmds)_ disable commentstring_calc on cursor-hold ([#2581](https://github.com/lunarvim/lunarvim/pull/2581))
+- _(autocmds)_ toggle format-on-save properly ([#2659](https://github.com/lunarvim/lunarvim/pull/2659))
+- _(cmp)_ update nvim-cmp to the latest version ([#2467](https://github.com/lunarvim/lunarvim/pull/2467))
+- _(cmp)_ hotfix nvim-cmp version
+- _(cmp)_ bring back default keybindings ([#2470](https://github.com/lunarvim/lunarvim/pull/2470))
+- _(cmp)_ update nvim-cmp to the latest version ([#2467](https://github.com/lunarvim/lunarvim/pull/2467)) ([#2469](https://github.com/lunarvim/lunarvim/pull/2469))
+- _(dap)_ temporarily use dap-buddy dev branch which has older code ([#2567](https://github.com/lunarvim/lunarvim/pull/2567))
+- _(dap)_ pause key binding commmand ([#2573](https://github.com/lunarvim/lunarvim/pull/2573))
+- _(impatient)_ avoid get_options in fast handler ([#2451](https://github.com/lunarvim/lunarvim/pull/2451))
+- _(installer)_ latest and specified release version for neovim have different urls ([#2484](https://github.com/lunarvim/lunarvim/pull/2484))
+- _(installer/pwsh)_ fixes some details on installer and uninstaller ([#2404](https://github.com/lunarvim/lunarvim/pull/2404))
+- _(log)_ add date to the timestamp of logs ([#2669](https://github.com/lunarvim/lunarvim/pull/2669))
+- _(lsp)_ undo stdpath overload to avoid datarace ([#2540](https://github.com/lunarvim/lunarvim/pull/2540))
+- _(lualine)_ color theme gaps in some components ([#2465](https://github.com/lunarvim/lunarvim/pull/2465))
+- _(luasnip)_ make sure all snippets are loaded ([#2447](https://github.com/lunarvim/lunarvim/pull/2447))
+- _(luasnip)_ only use user snippets if the folder exists ([#2481](https://github.com/lunarvim/lunarvim/pull/2481))
+- _(nvimtree)_ escape the dot character in custom filter ([#2493](https://github.com/lunarvim/lunarvim/pull/2493))
+- _(nvimtree)_ make sure on_config_done is using the correct require ([#2509](https://github.com/lunarvim/lunarvim/pull/2509))
+- _(nvimtree)_ add latest changes from nvimtree ([#2537](https://github.com/lunarvim/lunarvim/pull/2537))
+- _(nvimtree)_ update nvim-tree setup ([#2681](https://github.com/lunarvim/lunarvim/pull/2681))
+- _(readme)_ update lsp server ignore syntax
+- _(readme)_ remove black as linter ([#2510](https://github.com/lunarvim/lunarvim/pull/2510))
+- _(telescope)_ set <cr> binding to actions.select_default only ([#2395](https://github.com/lunarvim/lunarvim/pull/2395))
+- _(theme)_ make sure the new theme is fully loaded ([#2392](https://github.com/lunarvim/lunarvim/pull/2392))
+- _(windows)_ specify required powershell version for the installation script ([#2376](https://github.com/lunarvim/lunarvim/pull/2376))
+- update deprecated methods in example configuration for trouble.nvim ([#2416](https://github.com/lunarvim/lunarvim/pull/2416))
+- use correct cache path ([#2593](https://github.com/lunarvim/lunarvim/pull/2593))
+- load notify's telescope extension properly ([#2586](https://github.com/lunarvim/lunarvim/pull/2586))
+
+### <!-- 3 --> Refactor
+
+- _(lsp)_ replace deprecated ocamllsp with ocamlls ([#2402](https://github.com/lunarvim/lunarvim/pull/2402))
+- _(lsp)_ cleanup servers' override configuration ([#2243](https://github.com/lunarvim/lunarvim/pull/2243))
+- _(lsp)_ decouple the installer setup-hook ([#2536](https://github.com/lunarvim/lunarvim/pull/2536))
+- _(telescope)_ don't overwrite default cmd to show hidden files
+- re-enable packer.sync() in LvimReload ([#2410](https://github.com/lunarvim/lunarvim/pull/2410))
+- update impatient ([#2477](https://github.com/lunarvim/lunarvim/pull/2477))
+- lock new installations to nvim v0.7+ ([#2526](https://github.com/lunarvim/lunarvim/pull/2526))
+- use api-autocmds for lsp functions ([#2549](https://github.com/lunarvim/lunarvim/pull/2549))
+- [**breaking**] load the default options once ([#2592](https://github.com/lunarvim/lunarvim/pull/2592))
+- remove redundant ftdetects ([#2651](https://github.com/lunarvim/lunarvim/pull/2651))
+
+### <!-- 4 --> Documentation
+
+- _(README)_ change forgotten breaking change in example ([#2377](https://github.com/lunarvim/lunarvim/pull/2377))
+- _(windows)_ use alpha in config_win.example.lua ([#2452](https://github.com/lunarvim/lunarvim/pull/2452))
+
+### <!-- 5 --> Revert
+
+- do not run packer.sync() on every reload ([#2548](https://github.com/lunarvim/lunarvim/pull/2548))
+
+## [1.1.3]
+
+### <!-- 1 --> Features
+
+- add alpha.nvim integration (#1906)
+
+### <!-- 2 --> Bugfix
+
+- _(alpha)_ globalstatus after openning files from dashboard (#2366)
+- _(bufferline)_ add an additional space before diagnostics (#2367)
+- _(lualine)_ conditional theme loading (#2363)
+- _(peek)_ make sure popup_options are positive (#2373)
+- _(peek)_ print error if lsp is unable to get file contents (#2379)
+- _(terminal)_ whichkey -> which-key (#2380)
+- _(terminal)_ weird lazygit commit message bug (#2382)
+- _(windows)_ use correct validation for the alias (#2371)
+- nvim-tree taking half the window on open (#2357)
+- correct typo in backup function (#2358)
+- automatically set colorscheme (#2370)
+
+### <!-- 3 --> Refactor
+
+- load onedarker theme externally (#2359)
+
+### <!-- 4 --> Documentation
+
+- update demo images on the main readme (#2386)
+
+## [1.1.2]
+
+### <!-- 1 --> Features
+
+- _(installer)_ Use pnpm to install nodejs dependencies(#2279) (#2280)
+- _(windows)_ Add custom config_win.example.lua (#2330)
+- Add option to automatically answer 'yes' for sh install script (#2306)
+- Enable nlsp-settings schemas (#2322)
+
+### <!-- 2 --> Bugfix
+
+- _(nlsp-settings)_ Cross platform issue (#2335)
+- _(timeoutlen)_ This has caused way too many issues in the past (#2287)
+- Disable the default intro message (#2340)
+
+### <!-- 3 --> Refactor
+
+- _(nvim-tree)_ Update settings structure (#2304)
+
+### <!-- 4 --> Documentation
+
+- _(readme)_ Fix typo in example config (#2333)
+
+## [1.1.1]
+
+### <!-- 2 --> Bugfix
+
+- Add tsx to treesitter ensure_installed list (#2268)
+- Correct a path to bufferline module (#2270)
+
+## [1.1.0]
+
+### <!-- 1 --> Features
+
+- _(vue)_ Set volar as default language server instead of vuels (#2230)
+- Use schemastore.nvim to provide extended json schema support (#2239)
+- Use bufferline instead of barbar (#2254)
+- Add a minimal implementation of bbye (#2267)
+
+### <!-- 2 --> Bugfix
+
+- _(autopairs)_ Remove weird tex rules from autopairs (#2206)
+- _(diag)_ Show lsp-diag code in open_float (#2180)
+- _(installer)_ Usernames can contain @ symbol (#2167)
+- _(installer)_ Universal bash (#2241)
+- _(logging)_ Disable insane amount of logging inside lvim.log (#2205)
+- _(lsp)_ No need to stop clients on LvimReload (#2160)
+- _(lsp)_ Use temporary fork of lua-dev (#2187)
+- _(lsp)_ Avoid accessing undefined user_data (#2216)
+- _(lualine)_ Add space to diff components (#1897)
+- _(lualine)_ Compacter size for treesitter icon (#2247)
+- _(lualine)_ Use 1-char width symbol for changed (#2246)
+- _(which-key)_ The PR has been merged to the original repo (#2172)
+- _(zsh)_ Don't set filetype to sh (#2035)
+- Added -ScriptBlock to run commands ```install.ps1``` (#2188)
+
+### <!-- 3 --> Refactor
+
+- _(nvim-tree)_ Cleanup and update settings (#2182)
+- _(nvim-tree)_ Remove unused code (#2266)
+- Remove unused outdated files (#2184)
+
+### <!-- 4 --> Documentation
+
+- _(readme)_ Add powershell installer script for Windows (#2208)
+
+## [1.0.0]
+
+### <!-- 1 --> Features
+
+- _(info)_ Display overridden servers for filetype (#2155)
+- _(luadev)_ Better vim api completion (#2043)
+- Add lualine config for darkplus
+- Last updates before 1.0.0 (#1953)
+- Use Telescope's git_files with fallback (#2089)
+- Plugin version bump (#2120)
+- Lazyload notify's configuration (#1855)
+- Plugin version bump (#2131)
+
+### <!-- 2 --> Bugfix
+
+- _(gitsigns)_ Rounded border (#2142)
+- _(install)_ Avoid data-races for `on_packer_complete` (#2157)
+- _(installer)_ Backup linked files with rsync (#2081)
+- _(installer)_ Check if npm-prefix is writable (#2091)
+- _(installer)_ More robust yarn validation (#2113)
+- _(lsp)_ Set the handlers opts for v0.6 as well (#2109)
+- _(lsp)_ Formatter now use new null-ls api function (#2135)
+- _(lsp)_ Formatter now use new null-ls api function (#2135)
+- _(null-ls)_ Avoid sending invalid opts.args (#2154)
+- _(which-key)_ Temporary solution for which-key (#2150)
+- Remove autopairs cmp completion (#2083)
+- Remove "error" message from git tag (#2141)
+
+### <!-- 3 --> Refactor
+
+- _(bootstrap)_ More robust git module (#2127)
+- _(info)_ Use new null-ls api for sources (#2125)
+- _(install.sh)_ Fix typo in node error message (#2107)
+- _(null-ls)_ Allow passing full list of options for sources (#2137)
+- _(settings)_ Add headless-mode settings (#2134)
+- _(term)_ Leave the first few ids unassigned (#2156)
+- _(test)_ Cleanup test utilities (#2132)
+- Deprecate lvim.lang.FOO (#1913) (#1914)
+- Remove unused old language configs (#2094)
+- Uplift neovim's minimum version requirement to 0.6.0 (#2093)
+- Avoid running ts.setup in headless (#2119)
+- More consistent autocmds (#2133)
+- Use a static lvim binary template (#1444)
+
+## [1.0.0-rc]
+
+### <!-- 1 --> Features
+
+- _(installer)_ Nicer rsync output (#2067)
+- _(terminal)_ Lazygit can now be toggled (#2039)
+- Add lualine config for darkplus
+- Last updates before 1.0.0 (#1953)
+- Support new null-ls (#1955)
+- Empty for empty buffers instead of Buffer <#>
+- Improved LSP grouping in lualine
+- Decrease hide in width limit for lualine
+- Add support for fsharp (#2021)
+- Add some messages in uninstall.sh (#1945)
+- Null-ls code_actions interface (#2008)
+- Full compatibility with neovim v0.6 (#2037)
+- Multiple enhancements to lvim-reload (#2054)
+- Bump plugin versions (#2064)
+- Update lsp-installer and lspconfig hashes to enable solidity_ls language server (#2072)
+
+### <!-- 2 --> Bugfix
+
+- _(autopairs)_ Add missing configuration entries (#2030)
+- _(bootstrap)_ Remove hard-coded spellfile option (#2061)
+- _(cmp)_ Revert broken sequential loading (#2002)
+- _(installer)_ Better handling of existing files (#2066)
+- _(lsp)_ Avoid installing an overridden server (#1981)
+- _(lsp)_ Prevent repeated setup call (#2048)
+- _(lsp)_ Correct client_id parsing in lvim-info (#2071)
+- _(lsp)_ Allow overriding servers with custom providers (#2070)
+- _(lualine)_ Change `fg` of section `a` in onedarker (#1909)
+- _(null-ls)_ Allow the same linter and formatter (#1968)
+- _(nvimtree)_ Update settings (#2001)
+- _(nvimtree)_ Restore default mappings + make them customizable (#2007)
+- _(nvimtree)_ Handle paths containing spaces (#2027)
+- _(plugins)_ Typo of pin commit of `treesitter` (#2046)
+- _(terminal)_ Allow disabling the open binding for toggleterm
+- _(windows)_ Autocmd requires forward slashes (#1967)
+- _(windows)_ Remove redundant `resolve` call (#1974)
+- Bump nvim-tree version
+- Formatting
+- Remove duplicate lint messages
+- Allow LunarVim changelog to work outside the lvim directory (#1952)
+- Use an indepdent shadafile from neovim (#1910)
+- Packersync issue when you have large number of plugins (#1922)
+- No idea why this breaks barbar
+- Lsp root can get very annoying when working with multiple languages. User is still able to turn it on.
+- Update jdtls script
+- Correct order for cmp's setup (#1999)
+- Dont close if next char is a close pair and no pairs in same line (#2017)
+- More accessible changelog (#2019)
+- Better default, ignore `.git` in `live_grep` (#2020)
+- No restart required when changing colorscheme (#2026)
+- No longer treat lazygit missing as an error (#2051)
+
+### <!-- 3 --> Refactor
+
+- Deprecate lvim.lang.FOO (#1913) (#1914)
+- More configurable format-on-save (#1937)
+- Load the default keymaps once (#1965)
+
+<!-- generated by git-cliff -->
diff --git a/lua/lvim/keymappings.lua b/lua/lvim/keymappings.lua
index 8c91b761..137f1cc0 100644
--- a/lua/lvim/keymappings.lua
+++ b/lua/lvim/keymappings.lua
@@ -133,6 +133,21 @@ function M.clear(keymaps)
end
end
+-- Unsets all keybindings defined in keymaps
+-- @param keymaps The table of key mappings containing a list per mode (normal_mode, insert_mode, ..)
+function M.clear(keymaps)
+ local default = M.get_defaults()
+ for mode, mappings in pairs(keymaps) do
+ local translated_mode = mode_adapters[mode] and mode_adapters[mode] or mode
+ for key, _ in pairs(mappings) do
+ -- some plugins may override default bindings that the user hasn't manually overriden
+ if default[mode][key] ~= nil or (default[translated_mode] ~= nil and default[translated_mode][key] ~= nil) then
+ pcall(vim.api.nvim_del_keymap, translated_mode, key)
+ end
+ end
+ end
+end
+
-- Set key mappings individually
-- @param mode The keymap mode, can be one of the keys of mode_adapters
-- @param key The key of keymap
diff --git a/utils/ci/update_changelog.sh b/utils/ci/update_changelog.sh
new file mode 100644
index 00000000..49dae53a
--- /dev/null
+++ b/utils/ci/update_changelog.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+set -eo pipefail
+
+BRANCH="$(git rev-parse --abbrev-ref HEAD)"
+
+if [ "$BRANCH" != "master" ]; then
+ exit 0
+fi
+
+REPO_DIR="$(git rev-parse --show-toplevel)"
+LATEST_TAG="$(git describe --tags --abbrev=0)"
+CONFIG_FILE="$REPO_DIR/.github/workflows/cliff.toml"
+CHANGELOG="$REPO_DIR/CHANGELOG.md"
+
+git -C "$REPO_DIR" cliff "$LATEST_TAG"..HEAD -u -c "$CONFIG_FILE" -p "$CHANGELOG"