feat(LazyVSCode): tabs-related and file search

This commit is contained in:
2025-04-16 13:39:31 +08:00
parent c14012b7cd
commit baeab79398
5 changed files with 81 additions and 25 deletions

5
.gitignore vendored
View File

@@ -1,3 +1,4 @@
*.json
*.toml
.vscode/
lazy-lock.json
lazyvim.json
baremetal

15
.neoconfig.json Normal file
View File

@@ -0,0 +1,15 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}

View File

@@ -2,16 +2,22 @@
## Configuration for VSCode-Neovim
### `<leader>` +
|L1 |L2 |L3 |Function |
|--- |--- |--- |--- |
|`<leader>` |b |- | Toggle Side Bar Visibility|
|`<leader>` |B |- | Toggle Side Bar Position |
|`<leader>` |l |- | Toggle Line Number Mode |
|`<leader>` |z |- | Toggle Zen Mode |
|`<leader>` |/ |- | Toggle Flash.nvim Search |
|c (code) |f |- | Format Code |
|c |t |- | Flash.nvim Treesitter |
|b (side bar) |e |- | Open Explorer |
|s (search) |
|t (tab) |n |- | Next Tab |
|w (window) | |
|L1 |L2 |L3 |Function |
|--- |--- |--- |--- |
|`<leader>`(toggle) |b |- | Toggle Side Bar Visibility |
|`<leader>` |B |- | Toggle Side Bar Position |
|`<leader>` |l |- | Toggle Line Number Mode |
|`<leader>` |t |- | Toggle Tabs Inside Group |
|`<leader>` |T |- | Toggle Tabs Cross-Groups |
|`<leader>` |z |- | Toggle Zen Mode |
|`<leader>` |/ |- | Toggle Flash.nvim Search |
|b (side bar) |e |- | Open Sidebar Explorer |
|b |s |- | Open Sidebar Search |
|c (code) |f |- | Format Code |
|c |t |- | Flash.nvim Treesitter |
|f (file) |s |- | File search with VSCode ctrl-p |
|s (search) |
|t (tab) |l |- | Search Tabs Inside Group: Least |
|t (tab) |p |- | Search Tabs Inside Group: Previous |
|t (tab) |s |- | Search Tabs Cross-Groups: Previous |
|g (group) | |

View File

@@ -69,13 +69,17 @@ local sidebar = {
togglePosition = function()
vscode.action("workbench.action.toggleSidebarPosition")
end,
open = function()
openExplorer = function()
vscode.action("workbench.view.explorer")
end,
openSearch = function()
vscode.action("workbench.view.search")
end
}
vim.keymap.set("n", "<leader><leader>b", sidebar.toggleVisibility, { desc = "Toggle Sidebar Vidibility" })
vim.keymap.set("n", "<leader><leader>B", sidebar.togglePosition, { desc = "Toggle Sidebar Position" })
vim.keymap.set("n", "<leader>be", sidebar.open, { desc = "Open Side bar Explorer" })
vim.keymap.set("n", "<leader>be", sidebar.openExplorer, { desc = "Open Sidebar Explorer" })
vim.keymap.set("n", "<leader>bs", sidebar.openSearch, { desc = "Open Sidebar Explorer" })
-- Toggle Line-Number Mode
vim.keymap.set("n", "<leader><leader>l", function()
@@ -95,21 +99,48 @@ vim.keymap.set("n", "<leader>cf", function()
end, { desc = "Format Code" })
-- Window
-- TODO: <leader><leader>g to toggle between two groups
-- TODO: <leader>gv to split vertically
-- TODO: <leader>gs to split horizontally
-- TODO: <leader>gd to delete a group
-- Tab
-- TODO: <leader>td to delete a tab
-- TODO: <leader>tm + hjkl to move a tab to another group
local tabs = {
next = function()
-- vscode.action("workbench.action.quickOpen")
-- vscode.action("workbench.action.quickOpenNavigateNextInFilePicker")
-- vscode.action("workbench.action.quickOpenSelectNext")
-- vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor")
toggleInGroup = function()
vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup")
vscode.action("list.select")
end,
toggleCrossGroups = function()
vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor")
vscode.action("list.select")
end,
previous = function()
vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup")
end,
least = function()
vscode.action("workbench.action.quickOpenLeastRecentlyUsedEditorInGroup")
end,
select = function()
vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor")
end
}
vim.keymap.set("n", "<leader>tp", tabs.next, { desc = "Previous Tab" })
vim.keymap.set("n", "<leader><leader>t", tabs.toggleInGroup, { desc = "Toggle Between Two Tabs inside Group" })
vim.keymap.set("n", "<leader><leader>T", tabs.toggleCrossGroups, { desc = "Toggle Between Two Tabs Cross-Groups" })
vim.keymap.set("n", "<leader>ts", tabs.select, { desc = "Select Tab Cross-Groups" })
vim.keymap.set("n", "<leader>tp", tabs.previous, { desc = "Select Tab in Group: Previous" })
vim.keymap.set("n", "<leader>tl", tabs.least, { desc = "Select Tab in Group: Least" })
-- Files
local files = {
search = function()
vscode.action("workbench.action.quickOpen")
-- vscode.action("workbench.action.quickOpenNavigateNextInFilePicker")
vscode.action("workbench.action.quickOpenSelectNext")
end
}
vim.keymap.set("n", "<leader>fs", files.search, { desc = "Search Files with VSCode ctrl-p" })
-- Use Lazy.nvim as the plugin manager
require("lazy").setup({

3
stylua.toml Normal file
View File

@@ -0,0 +1,3 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120