Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: nvim v0.10 support #1260

Merged
merged 86 commits into from
Jul 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
b434c79
feat: implement inlay virtual text for rust and go (#759)
ClSlaid May 23, 2023
af9a16c
merge main to 0.10.
ayamir Jun 19, 2023
ad57d95
workaroud for watchfile problem (#871)
fecet Jul 17, 2023
41c2f00
Merge branch 'main'
Jint-lzxy Jul 17, 2023
eac349e
Merge branch 'main' into 0.10
Jint-lzxy Jul 23, 2023
00b6393
Merge branch 'main' into 0.10
ayamir Jul 31, 2023
c80f9d0
Merge branch 'main' into 0.10
ayamir Jan 8, 2024
2e183e8
chore(neodim): remove pin commit (#1142)
CharlesChiuGit Jan 9, 2024
9bf2c26
fix: remove `specs.nvim` due to long time no update.
ayamir Feb 9, 2024
089cc46
Merge branch 'main' into 0.10
ayamir Feb 9, 2024
2dfc8ea
refactor: use neovim native inlay-hint.
ayamir Feb 9, 2024
e8a156c
Merge branch 'main' of https://github.com/ayamir/nvimdots into 0.10
ayamir Feb 15, 2024
af582ae
Merge branch 'main' of https://github.com/ayamir/nvimdots into 0.10
ayamir Feb 22, 2024
0c48d53
Merge branch 'main' into 0.10
ayamir Mar 10, 2024
f31f428
Merge branch 'main' into 0.10
ayamir Mar 23, 2024
9015a87
fix(lsp): adapt to upstream API, eliminate warning.
ayamir Mar 23, 2024
edb72a9
fix(plugins): add nvim-bqf.
ayamir Mar 23, 2024
968ae88
fix(go.nvim): adapt upstream api.
ayamir Mar 25, 2024
2aa73f8
Merge branch 'main' into 0.10
ayamir Mar 29, 2024
698e8c9
feat(plugins): add dropbar.nvim for winbar.
ayamir Mar 29, 2024
f30e5b9
feat(settings): make enable_inlayhint configurable.
ayamir Mar 30, 2024
4d6c753
fixup: check user input, improve robustness.
ayamir Mar 30, 2024
4574a97
fix(clangd): disable clangd for proto.
ayamir Mar 30, 2024
8319235
fixup: clean redundant config files.
ayamir Mar 30, 2024
28f6de3
fix(gopls): unify gopls config, allow user overrides.
ayamir Mar 30, 2024
d951f77
fixup: clean code.
ayamir Mar 30, 2024
48905de
feat(clang_format): enable clang_format for cuda and protobuf.
ayamir Mar 30, 2024
4db4144
Merge branch 'main' into 0.10
ayamir Apr 6, 2024
9e3beb2
fix: inlay_hint error (#1236)
Mythos-404 Apr 20, 2024
ce8c31e
Merge remote-tracking branch 'origin' into 0.10
ayamir May 20, 2024
c04ee29
Merge remote-tracking branch 'origin' into 0.10
ayamir May 20, 2024
8ba62c6
fix: lua_ls workspace settings.
ayamir May 20, 2024
46380cd
chore: upgrade to new api to judge if is a list.
ayamir May 20, 2024
f4d848a
chore: use builtin grep_string to search selection.
ayamir May 20, 2024
b5dd44d
Merge branch 'main' into 0.10
Jint-lzxy May 22, 2024
66d6fe1
chore: general cleanup
Jint-lzxy May 22, 2024
4b0b06e
fix: `inlayhint` -> `inlayhints`
Jint-lzxy May 22, 2024
3b323fb
fix(ts-autotag): update config format
CharlesChiuGit May 24, 2024
2769274
chore: use vim.uv in place of vim.loop.
ayamir May 26, 2024
f46800d
Merge remote-tracking branch 'refs/remotes/origin/0.10' into 0.10
ayamir May 26, 2024
cee6354
chore: use vim.iter():flattern in place of vim.tbl_flattern.
ayamir May 26, 2024
69e2015
chore: update install scripts for nvim 0.10 stable. (#1271)
ayamir May 26, 2024
13df6c3
chore: replace deprecated apis (#1266)
ayamir Jun 2, 2024
04543b5
fix(toggleterm): use `""` instead of `nil` to fix auto-exit on Window…
CharlesChiuGit Jun 2, 2024
a7c136a
fix: utilize `ts-context` in `glance` preview window (#1265)
mvmx3 Jun 2, 2024
a27f8f1
chore: use vim.o in place of vim.api.nvim_get_option_value. (#1269)
ayamir Jun 6, 2024
0278b2d
fix(0.10): minor cleanup (#1276)
Jint-lzxy Jun 7, 2024
d249c86
feat(scripts): update frequently used functions (#1277)
Jint-lzxy Jun 7, 2024
fd46426
feat(docs): support v0.10 (#1278)
Jint-lzxy Jun 7, 2024
f286380
fix(scripts): typo
Jint-lzxy Jun 7, 2024
f8bc12b
fixup! fix(scripts): typo
Jint-lzxy Jun 7, 2024
59bc46b
feat(README): supports `0.9` -> `0.10`
Jint-lzxy Jun 7, 2024
0322c31
chore: cleanup
Jint-lzxy Jun 7, 2024
9be7ffe
fix(lualine): ensure all components are properly aligned
Jint-lzxy Jun 7, 2024
f6ebc05
unlock rustaceanvim
Jint-lzxy Jun 9, 2024
9e6cf9e
Merge branch 'main' into 0.10
Jint-lzxy Jun 9, 2024
593c906
feat(lsp): be protective
Jint-lzxy Jun 9, 2024
a50a90e
fix: `neovim` -> `Neovim`
Jint-lzxy Jun 9, 2024
a55678e
Revert "fix(lualine): ensure all components are properly aligned"
Jint-lzxy Jun 9, 2024
e11310b
feat: support new options (#1279)
Jint-lzxy Jun 10, 2024
e8976c8
feat(trouble)!: v3 support (#1281)
Jint-lzxy Jun 10, 2024
b74c753
refactor: overhaul the icon library (#1282)
Jint-lzxy Jun 10, 2024
f639f87
feat(lsp): correctly configure diagnostic-signs (#1280)
Jint-lzxy Jun 10, 2024
2da7aed
feat: disable more plugins for RO (buf|file)types (#1284)
Jint-lzxy Jun 11, 2024
281930a
fix(alpha): cannot cast `string` to `integer` for winheight (#1285)
Jint-lzxy Jun 11, 2024
2e84827
feat(ibl): support per-language indent config (#1287)
Jint-lzxy Jun 12, 2024
086bb81
feat(ibl): more language nodes (#1288)
Jint-lzxy Jun 13, 2024
2fedc08
feat(luasnip): support ECMAScript regexes (#1291)
Jint-lzxy Jun 16, 2024
9937d58
feat(core): use the lua API to set options (#1292)
Jint-lzxy Jun 17, 2024
80cda84
feat: include several new plugins (#1235)
CharlesChiuGit Jun 18, 2024
3166eef
feat: better way to check if the (T|G)UI is running (#1297)
Jint-lzxy Jun 18, 2024
7e11cdc
chore(global): cleanup legacy code (#1296)
Jint-lzxy Jun 18, 2024
4d76779
feat: reduce the use of direct syscalls (#1294)
Jint-lzxy Jun 18, 2024
4e614a3
fix(events): avoid name clashes (#1295)
Jint-lzxy Jun 18, 2024
93c06cd
Feat/telescope collections keymaps (#1299)
CharlesChiuGit Jun 20, 2024
64e85d1
fix(gitsigns): upstream breaking changes (#1300)
Jint-lzxy Jun 20, 2024
c42151f
fix(core): missing leading path separator (#1301)
Jint-lzxy Jun 20, 2024
3bf00f0
Revert "Feat/telescope collections keymaps (#1299)" (#1302)
ayamir Jun 20, 2024
6c59c16
Feat/telescope collections keymaps (#1303)
ayamir Jun 21, 2024
a6a3356
feat(treesitter): lessened performance restrictions (#1305)
Jint-lzxy Jun 24, 2024
57f647e
chore: update plugin author's name
CharlesChiuGit Jun 25, 2024
07a165b
feat(nixos): add `mergeLazyLock` option (#1310)
misumisumi Jun 30, 2024
b1406ca
fix: cmp snippets source selecting issue (#1309)
CharlesChiuGit Jul 1, 2024
757a36e
fix(cmp): occasional inability to select completion items (#1315)
Jint-lzxy Jul 1, 2024
f0369f5
feat: credit all collaborators as copyright holders (#1316)
Jint-lzxy Jul 1, 2024
8f30bae
feat: make format timeout configurable (#1275)
ayamir Jul 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
value: |
_Before reporting:_ Search [existing issues](https://github.com/ayamir/nvimdots/issues) and check the [FAQ](https://github.com/ayamir/nvimdots/wiki/Issues). Thank you for helping us improve!
> [!IMPORTANT]
> The `0.10` branch is intended for nightly neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
> The `0.11` branch is intended for nightly Neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
- type: checkboxes
id: is-latest-commit
attributes:
Expand Down Expand Up @@ -38,7 +38,7 @@ body:
attributes:
label: "Neovim version"
description: "Paste the output of `nvim --version` here"
placeholder: "NVIM v0.10.0-dev-873+g71ad771ea"
placeholder: "NVIM v0.11.0-dev-194+g6c7677e5d"
validations:
required: true
- type: input
Expand Down Expand Up @@ -69,16 +69,16 @@ body:
description: "Which branch are you currently on? If you are not sure, check the output of `git rev-parse --abbrev-ref HEAD`"
options:
- main (Default/Latest)
- 0.8 (Legacy)
- 0.7 (Deprecated)
- 0.10 (Nightly)
- 0.9 (Legacy)
- 0.8 (Deprecated)
- 0.11 (Nightly)
validations:
required: true
- type: dropdown
id: fetch-pref
attributes:
label: "Fetch Preferences"
description: "In what way do you fetch resources? If you are not sure, check the value of `use_ssh` in `lua/core/settings.lua`"
description: "In what way do you fetch resources? If you are not sure, check the value of `use_ssh` in `lua/user/settings.lua`"
options:
- SSH (use_ssh = true)
- HTTPS (use_ssh = false)
Expand Down
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/custom_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
value: |
_Before requesting:_ Make sure you've read through our [Wiki: Usage](https://github.com/ayamir/nvimdots/wiki/Usage) before you start to add things to nvimdots!
> [!IMPORTANT]
> The `0.10` branch is intended for nightly neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
> The `0.11` branch is intended for nightly Neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
- type: checkboxes
id: is-latest-commit
attributes:
Expand All @@ -30,7 +30,7 @@ body:
attributes:
label: "Neovim version"
description: "Paste the output of `nvim --version` here"
placeholder: "NVIM v0.10.0-dev-873+g71ad771ea"
placeholder: "NVIM v0.11.0-dev-194+g6c7677e5d"
validations:
required: true
- type: dropdown
Expand All @@ -40,9 +40,9 @@ body:
description: "This issue template mainly targets `main` branch. Check the output of `git rev-parse --abbrev-ref HEAD` if you're not sure."
options:
- main (Default/Latest)
- 0.8 (Legacy)
- 0.7 (Deprecated)
- 0.10 (Nightly)
- 0.9 (Legacy)
- 0.8 (Deprecated)
- 0.11 (Nightly)
validations:
required: true

Expand Down
12 changes: 6 additions & 6 deletions .github/ISSUE_TEMPLATE/lsp_issue_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
value: |
_Before reporting:_ Search [existing issues](https://github.com/ayamir/nvimdots/issues) and check the [FAQ](https://github.com/ayamir/nvimdots/wiki/Issues). Thank you for helping us improve!
> [!IMPORTANT]
> The `0.10` branch is intended for nightly neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
> The `0.11` branch is intended for nightly Neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
- type: checkboxes
id: is-latest-commit
attributes:
Expand Down Expand Up @@ -38,7 +38,7 @@ body:
attributes:
label: "Neovim version"
description: "Paste the output of `nvim --version` here"
placeholder: "NVIM v0.10.0-dev-873+g71ad771ea"
placeholder: "NVIM v0.11.0-dev-194+g6c7677e5d"
validations:
required: true
- type: input
Expand Down Expand Up @@ -69,16 +69,16 @@ body:
description: "Which branch are you currently on? If you are not sure, check the output of `git rev-parse --abbrev-ref HEAD`"
options:
- main (Default/Latest)
- 0.8 (Legacy)
- 0.7 (Deprecated)
- 0.10 (Nightly)
- 0.9 (Legacy)
- 0.8 (Deprecated)
- 0.11 (Nightly)
validations:
required: true
- type: dropdown
id: fetch-pref
attributes:
label: "Fetch Preferences"
description: "In what way do you fetch resources? If you are not sure, check the value of `use_ssh` in `lua/core/settings.lua`"
description: "In what way do you fetch resources? If you are not sure, check the value of `use_ssh` in `lua/user/settings.lua`"
options:
- SSH (use_ssh = true)
- HTTPS (use_ssh = false)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint_code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ jobs:
- uses: actions/checkout@v4
- uses: lunarmodules/luacheck@v1
with:
args: . --std luajit --globals vim _toggle_lazygit _buf_vtext _command_panel _flash_esc_or_noh _debugging --max-line-length 150 --no-config
args: . --std luajit --globals vim _debugging _command_panel _flash_esc_or_noh _telescope_collections _toggle_lazygit --max-line-length 150 --no-config
41 changes: 25 additions & 16 deletions LICENSE
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
MIT License
BSD 3-Clause License

Copyright (c) 2021 ayamir
Copyright (c) 2022 Jint-lzxy, CharlesChiuGit
Copyright (c) 2023 aarnphm, misumisumi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 changes: 13 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<br>
<a href="https://github.com/neovim/neovim/releases/tag/stable">
<img
alt="NeoVim Version Capability"
src="https://img.shields.io/badge/Supports%20Nvim-v0.9-A6D895?style=for-the-badge&colorA=363A4F&logo=neovim&logoColor=D9E0EE">
alt="Neovim Version Capability"
src="https://img.shields.io/badge/Supports%20Nvim-v0.10-A6D895?style=for-the-badge&colorA=363A4F&logo=neovim&logoColor=D9E0EE">
</a>
<a href="https://github.com/ayamir/nvimdots/releases">
<img
Expand Down Expand Up @@ -36,23 +36,23 @@

## 🪷 Introduction

This repo hosts our [NeoVim](https://neovim.io/) configuration for Linux [(with NixOS support)](#nixos-support), macOS, and Windows. `init.lua` is the config entry point.
This repo hosts our [Neovim](https://neovim.io/) configuration for Linux [(with NixOS support)](#nixos-support), macOS, and Windows. `init.lua` is the config entry point.

Branch info:

<div align="center">

| Branch | Supported neovim version |
| Branch | Supported Neovim version |
| :----: | :----------------------: |
| main | nvim 0.9 stable |
| 0.10 | nvim 0.10 nightly |
| main | nvim 0.10 stable |
| 0.11 | nvim 0.11 nightly |
| 0.9 | nvim 0.9 |
| 0.8 | nvim 0.8 |
| 0.7 | nvim 0.7 |

</div>

> [!IMPORTANT]
> The `0.10` branch is intended for nightly neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.
> The `0.11` branch is intended for nightly Neovim builds and is **not** stable. It typically harbors subtle issues scattered throughout. Therefore, refrain from submitting issues if you happen to encounter them. They will be closed directly unless a viable solution is proposed or included.

We currently manage plugins using [lazy.nvim](https://github.com/folke/lazy.nvim).

Expand All @@ -61,14 +61,14 @@ Chinese introduction is [here](https://zhuanlan.zhihu.com/p/382092667).
### 🎐 Features

- **Fast.** Less than **30ms** to start (Depends on SSD and CPU, tested on Zephyrus G14 2022 version).
- **Simple.** Run out of the box.
- **Simple.** Runs out of the box.
- **Modern.** Pure `lua` config.
- **Modular.** Easy to customize.
- **Powerful.** Full functionality to code.

## 🏗 How to Install

Just run the following interactive bootstrap command, and you're good to go 👍
Simply run the following interactive bootstrap command, and you should be all set 👍

- **Windows** _(Note: This script REQUIRES `pwsh` > `v7.1`)_

Expand Down Expand Up @@ -197,14 +197,16 @@ It's strongly recommended to read [Wiki: Prerequisites](https://github.com/ayami
- [ayamir](https://github.com/ayamir)
- [Jint-lzxy](https://github.com/Jint-lzxy)
- [CharlesChiuGit](https://github.com/CharlesChiuGit)
- [aarnphm](https://github.com/aarnphm)
- [misumisumi](https://github.com/misumisumi)

## 🎉 Acknowledgement

- [glepnir/nvim](https://github.com/glepnir/nvim)

## 📜 License

This NeoVim configuration is released under the MIT license, which grants the following permissions:
This Neovim configuration is released under the BSD 3-Clause license, which grants the following permissions:

- Commercial use
- Distribution
Expand Down
2 changes: 1 addition & 1 deletion lazy-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
"which-key.nvim": { "branch": "main", "commit": "4b7167f8fb2dba3d01980735e3509e172c024c29" },
"wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" }
}
}
19 changes: 14 additions & 5 deletions lua/core/event.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,32 @@ local autocmd = {}

function autocmd.nvim_create_augroups(definitions)
for group_name, definition in pairs(definitions) do
vim.api.nvim_command("augroup " .. group_name)
-- Prepend an underscore to avoid name clashes
vim.api.nvim_command("augroup _" .. group_name)
vim.api.nvim_command("autocmd!")
for _, def in ipairs(definition) do
local command = table.concat(vim.tbl_flatten({ "autocmd", def }), " ")
local command = table.concat(vim.iter({ "autocmd", def }):flatten(math.huge):totable(), " ")
vim.api.nvim_command(command)
end
vim.api.nvim_command("augroup END")
end
end

-- defer setting LSP-related keymaps till LspAttach
-- Hold off on configuring anything related to the LSP until LspAttach
local mapping = require("keymap.completion")
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("LspKeymapLoader", { clear = true }),
callback = function(event)
if not _G._debugging then
-- LSP Keymaps
mapping.lsp(event.buf)

-- LSP Inlay Hints
local inlayhints_enabled = require("core.settings").lsp_inlayhints
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.server_capabilities.inlayHintProvider ~= nil then
vim.lsp.inlay_hint.enable(inlayhints_enabled == true, { bufnr = event.buf })
end
end
end,
})
Expand All @@ -32,7 +41,7 @@ vim.api.nvim_create_autocmd("BufEnter", {
local layout = vim.api.nvim_call_function("winlayout", {})
if
layout[1] == "leaf"
and vim.api.nvim_get_option_value("filetype", { buf = vim.api.nvim_win_get_buf(layout[2]) }) == "NvimTree"
and vim.bo[vim.api.nvim_win_get_buf(layout[2])].filetype == "NvimTree"
and layout[3] == nil
then
vim.api.nvim_command([[confirm quit]])
Expand All @@ -59,7 +68,7 @@ vim.api.nvim_create_autocmd("FileType", {
},
callback = function(event)
vim.bo[event.buf].buflisted = false
vim.api.nvim_buf_set_keymap(event.buf, "n", "q", "<CMD>close<CR>", { silent = true })
vim.api.nvim_buf_set_keymap(event.buf, "n", "q", "<Cmd>close<CR>", { silent = true })
end,
})

Expand Down
10 changes: 4 additions & 6 deletions lua/core/global.lua
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
local global = {}
local os_name = vim.loop.os_uname().sysname
local os_name = vim.uv.os_uname().sysname

function global:load_variables()
self.is_mac = os_name == "Darwin"
self.is_linux = os_name == "Linux"
self.is_windows = os_name == "Windows_NT"
self.is_wsl = vim.fn.has("wsl") == 1
self.vim_path = vim.fn.stdpath("config")
local path_sep = self.is_windows and "\\" or "/"
local home = self.is_windows and os.getenv("USERPROFILE") or os.getenv("HOME")
self.cache_dir = home .. path_sep .. ".cache" .. path_sep .. "nvim" .. path_sep
self.modules_dir = self.vim_path .. path_sep .. "modules"
self.home = home
self.cache_dir = vim.fn.stdpath("cache")
self.data_dir = string.format("%s/site/", vim.fn.stdpath("data"))
self.modules_dir = self.vim_path .. "/modules"
self.home = self.is_windows and os.getenv("USERPROFILE") or os.getenv("HOME")
end

global:load_variables()
Expand Down
40 changes: 20 additions & 20 deletions lua/core/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@ local global = require("core.global")

-- Create cache dir and data dirs
local createdir = function()
local data_dir = {
global.cache_dir .. "backup",
global.cache_dir .. "session",
global.cache_dir .. "swap",
global.cache_dir .. "tags",
global.cache_dir .. "undo",
local data_dirs = {
global.cache_dir .. "/backup",
global.cache_dir .. "/session",
global.cache_dir .. "/swap",
global.cache_dir .. "/tags",
global.cache_dir .. "/undo",
}
-- Only check whether cache_dir exists, this would be enough.
if vim.fn.isdirectory(global.cache_dir) == 0 then
os.execute("mkdir -p " .. global.cache_dir)
for _, v in pairs(data_dir) do
if vim.fn.isdirectory(v) == 0 then
os.execute("mkdir -p " .. v)
---@diagnostic disable-next-line: param-type-mismatch
vim.fn.mkdir(global.cache_dir, "p")
for _, dir in pairs(data_dirs) do
if vim.fn.isdirectory(dir) == 0 then
vim.fn.mkdir(dir, "p")
end
end
end
Expand Down Expand Up @@ -135,12 +136,13 @@ You're recommended to install PowerShell for better experience.]],

local basecmd = "-NoLogo -MTA -ExecutionPolicy RemoteSigned"
local ctrlcmd = "-Command [console]::InputEncoding = [console]::OutputEncoding = [System.Text.Encoding]::UTF8"
vim.api.nvim_set_option_value("shell", vim.fn.executable("pwsh") == 1 and "pwsh" or "powershell", {})
vim.api.nvim_set_option_value("shellcmdflag", string.format("%s %s;", basecmd, ctrlcmd), {})
vim.api.nvim_set_option_value("shellredir", "-RedirectStandardOutput %s -NoNewWindow -Wait", {})
vim.api.nvim_set_option_value("shellpipe", "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode", {})
vim.api.nvim_set_option_value("shellquote", nil, {})
vim.api.nvim_set_option_value("shellxquote", nil, {})
local set_opts = vim.api.nvim_set_option_value
set_opts("shell", vim.fn.executable("pwsh") == 1 and "pwsh" or "powershell", {})
set_opts("shellcmdflag", string.format("%s %s;", basecmd, ctrlcmd), {})
set_opts("shellredir", "-RedirectStandardOutput %s -NoNewWindow -Wait", {})
set_opts("shellpipe", "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode", {})
set_opts("shellquote", "", {})
set_opts("shellxquote", "", {})
end
end

Expand All @@ -160,10 +162,8 @@ local load_core = function()
require("core.pack")
require("keymap")

local colorscheme = settings.colorscheme
local background = settings.background
vim.api.nvim_command("set background=" .. background)
vim.api.nvim_command("colorscheme " .. colorscheme)
vim.api.nvim_set_option_value("background", settings.background, {})
vim.cmd.colorscheme(settings.colorscheme)
end

load_core()
1 change: 1 addition & 0 deletions lua/core/mapping.lua
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ local core_map = {
["n|<C-q>"] = map_cr("wq"):with_desc("edit: Save file and quit"),
["n|<A-S-q>"] = map_cr("q!"):with_desc("edit: Force quit"),
["n|<leader>o"] = map_cr("setlocal spell! spelllang=en_us"):with_desc("edit: Toggle spell check"),
["n|<leader>bn"] = map_cu("enew"):with_noremap():with_silent():with_desc("buffer: New"),
["n|tn"] = map_cr("tabnew"):with_noremap():with_silent():with_desc("tab: Create a new tab"),
["n|tk"] = map_cr("tabnext"):with_noremap():with_silent():with_desc("tab: Move to next tab"),
["n|tj"] = map_cr("tabprevious"):with_noremap():with_silent():with_desc("tab: Move to previous tab"),
Expand Down
Loading