folke / edgy.nvim Goto Github PK
View Code? Open in Web Editor NEWEasily create and manage predefined window layouts, bringing a new edge to your workflow
License: Apache License 2.0
Easily create and manage predefined window layouts, bringing a new edge to your workflow
License: Apache License 2.0
v0.9.4 and v0.10.0-dev-366d0c7
Arch Linux
Getting this error message when trying to open command line window (q:):
Error detected while processing BufWinEnter Autocommands for "*":
.../user/.local/share/nvim/lazy/edgy.nvim/lua/edgy/util.lua:70: ...er/.local/share/nvim/lazy/edgy.nvim/lua/edgy/edgebar.lua:207: Error executing lua: vim/_editor.lua:0: BufWinEnter Autocommands for "*"..script nvim_exec2() called at BufWinEnter Autocommands for "*":0: Vim(wincmd):E11
: Invalid in command-line window; <CR> executes, CTRL-C quits
stack traceback:
^I[C]: in function 'nvim_exec2'
^Ivim/_editor.lua: in function 'cmd'
^I...er/.local/share/nvim/lazy/edgy.nvim/lua/edgy/edgebar.lua:208: in function <...er/.local/share/nvim/lazy/edgy.nvim/lua/edgy/edgebar.lua:207>
^I[C]: in function 'nvim_win_call'
^I...er/.local/share/nvim/lazy/edgy.nvim/lua/edgy/edgebar.lua:207: in function 'layout'
^I...ser/.local/share/nvim/lazy/edgy.nvim/lua/edgy/layout.lua:146: in function 'fn'
^I...ser/.local/share/nvim/lazy/edgy.nvim/lua/edgy/layout.lua:103: in function 'foreach'
^I...ser/.local/share/nvim/lazy/edgy.nvim/lua/edgy/layout.lua:145: in function 'layout'
^I...ser/.local/share/nvim/lazy/edgy.nvim/lua/edgy/layout.lua:182: in function <...ser/.local/share/nvim/lazy/edgy.nvim/lua/edgy/layout.lua:181>
^I[C]: in function 'pcall'
^I.../user/.local/share/nvim/lazy/edgy.nvim/lua/edgy/util.lua:67: in function <.../user/.local/share/nvim/lazy/edgy.nvim/lua/edgy/util.lua:65>
^I[C]: in function 'pcall'
q:
.No error is expected.
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
{
"folke/edgy.nvim",
opts = {
-- The same error occurs with other layout positions and filetypes as well.
bottom = {
{
ft = "help",
size = { height = 0.5 }
}
}
}
}
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
It would be awesome if opts.[direction].title
can accept a string and a function (the functions must return a string).
Two use cases:
bottom = {
{
-- Indicate in the windbar which help file is currently open
title = function() local bufname = vim.api.nvim_buf_get_name(0)
bufname = vim.fn.fnamemodify(bufname, ':t')
return string.format('HELP: %s', bufname)
end,
ft = 'help',
},
{
-- Indicate whether the location list or quickfix list is currently
-- displayed
title = function()
local loclist = vim.fn.getwininfo(vim.fn.win_getid())[1]['loclist'] == 1
return loclist and 'LOCATION LIST' or 'QUICKFIX LIST'
end,
ft = 'qf',
}
}
opts.[direction].title
accepts string and function
Disabling the winbar winbar = false
for a filetype and handling it manually with my winbar plugin. However this is a workaround and i'd love to handle all the winbar titles in edgy.nvim
No response
NVIM v0.10.0-dev-2952+g97c0a5241-Homebrew
MacOS 14.2.1
So I have edgy.nvim pinned neo-tree files view. When I tried to bring up my command history (:h cmdwin
). I get error straight away:
.../jackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/util.lua:70: ...ckieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/edgebar.lua:194: Error executing lua: vim/_editor.lua:0: nvim_exec2(): Vim(wincmd):E11: Invalid in command-line window; <CR> executes, CTRL-C quits
stack traceback:
^I[C]: in function 'nvim_exec2'
^Ivim/_editor.lua: in function 'cmd'
^I...ckieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/edgebar.lua:195: in function <...ckieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/edgebar.lua:194>
^I[C]: in function 'nvim_win_call'
^I...ckieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/edgebar.lua:194: in function 'layout'
^I...ackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/layout.lua:146: in function 'fn'
^I...ackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/layout.lua:103: in function 'foreach'
^I...ackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/layout.lua:145: in function 'layout'
^I...ackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/layout.lua:182: in function <...ackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/layout.lua:181>
^I[C]: in function 'pcall'
^I.../jackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/util.lua:67: in function <.../jackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/util.lua:65>
^I[C]: in function 'pcall'
^I.../jackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/util.lua:47: in function <.../jackieli/tmp/.repro/plugins/edgy.nvim/lua/edgy/util.lua:46>
nvim -u repro.lua
:Neotree
:
followed by <C-f>
no error appears
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/edgy.nvim",
{
"nvim-neo-tree/neo-tree.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
},
},
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
require("neo-tree").setup({})
require("edgy").setup({
left = {
{
title = "Neo-Tree",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "filesystem"
end,
pinned = true,
open = function()
vim.api.nvim_input("<esc><space>f")
end,
size = { height = 0.5 },
},
},
})
I want the opening and closing status of edgy to be synchronized among all tabs, just like the tab.sync
configuration item of nvim-tree
.
For example
None.
Maybe be able to configure a synchronous tab configuration for the edgybar in each direction.
No response
0.9.5 Release
Arch Linux
Hello, I'm new to nvim and its plugins. I'm using the lazynvim distribution of nvim. I installed all the optional packages for edgy.nvim and put the default config from here: http://www.lazyvim.org/extras/ui/edgy. There are two problems with that but I will focus on one in this issue.
here is a little snippet:
{
title = "Neo-Tree",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "filesystem"
end,
pinned = true,
open = function()
vim.api.nvim_input("<esc><space>e")
end,
size = { height = 0.5, width = 10},
},
In that snippet width = 10
does nothing.
Also doing this:
left = {
size = 30
},
Does nothing as well.
Using the default keybind space + ctrl + w + <
Does nothing as well, but for example same thing for height works as intended.
As a side issue that I think might be related to this: "bottom" edgebar doesn't work at all despite require("edgy").open("bottom")
. I'm not sure if they are related but if there is a problem with width related code it may not be able to display it correctly.
Neo-tree's width decreases or increases.
-- I didn't understand how to run edge-nvim with this config so I couldn't do anything.
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/edgy.nvim",
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
NVIM v0.10.0-dev-449+gcc41697775
Arch linux
after using edgy, I cannot use toggleterm's float term.
run :ToggleTerm direction=float
in nvim
Use float term normally
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
{
"folke/edgy.nvim",
opts = {
bottom = {
{ ft = "toggleterm", size = { height = 0.4 } },
},
},
},
{ "akinsho/toggleterm.nvim", opts = {} },
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
Nvim-spectre doesn't work well when an animation is enabled and it's pinned to the bottom.
It would be good to disable the edgy animation for specific items
{
ft = "spectre_panel",
title = "Spectre",
animation = false,
size = {
height = 0.4,
},
},
Disabling all animations, but I don't want to disable it for all windows
No response
It's not a bug or issue with edgy.nvim but with Symbols Outline.
The toggle functionality on SymbolsOutline keeps crashing after first open with the following error:
Error executing lua callback: ...e/nvim/lazy/symbols-outline.nvim/lua/symbols-outline.lua:208: Cursor position outside buffer
stack traceback:
[C]: in function 'nvim_win_set_cursor'
...e/nvim/lazy/symbols-outline.nvim/lua/symbols-outline.lua:208: in function '_highlight_current_item'
...e/nvim/lazy/symbols-outline.nvim/lua/symbols-outline.lua:19: in function <...e/nvim/lazy/symbols-outline.nvim/lua/symbols-outline.lua:18>
I changed it to simply use the 'Open' option and it works well:
{
ft = "Outline",
pinned = true,
open = "SymbolsOutlineOpen",
},
Just something to consider.
Other than that, great plugin.. enjoying it quite a lot.
PS: I'm using Neovim >= 0.10.0 (after June 5, 2023)
0.9.5
macos 14.2.1
Describe as the title and I'am using lazyvim. I'm guessing this is an edgy problem because when I commented lazyvim's edgy plugin import everything worked fine.
No response
The edgy.nvim
cannot work well with windows which can be full-screen. For example, while starting the neovim with a directory, netrw
or nvimtree
will be full-screen and the edgy.nvim
cannot work well with them.
The minimal init file to reproduce the bug is:
-- save as repro.lua
-- run with nvim -u repro.lua
-- DO NOT change the paths
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "runtime", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"--single-branch",
"https://github.com/folke/lazy.nvim.git",
lazypath,
})
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
-- add any other plugins here
{
"folke/edgy.nvim",
opts = {
left = {
{
ft = "netrw",
},
},
},
},
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
Then open a directory with neovim
> mkdir test
> nvim -u repro.lua test
The neovim and netrw
will be opened normally, but the cursor cannot move as expected, and I cannot open a file by netrw
as well.
nvimtree
has the similar problem too.
0.9.5
MacOS 14.1
When using Edgy and Diff View File History, and then selecting an entry using require("diffview.actions").open_in_diffview()
The diffview layout in the new tab is not correct. The layout should be diff2_horizontal
(default), but edgy causes the layout to split vertically.
DiffviewFileHistory
<C-A-d>
or require("diffview.actions").open_in_diffview()
Diffview Layout should remain intact (diff2_horizontal or whatever is configured)
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"sindrets/diffview.nvim",
"folke/edgy.nvim",
{
"folke/edgy.nvim",
opts = {
bottom = {
{
title = "Diff View File History",
ft = "DiffviewFileHistory",
},
},
},
},
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
For example, the settings are as follows
left = {
{
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "filesystem"
end,
title = "Neo-Tree",
size = { width = 0.2, height = 0.5 },
pinned = true,
open = function() require("neo-tree.command").execute({ dir = vim.uv.cwd() }) end,
},
{
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "git_status"
end,
title = "Neo-Tree Git",
size = { width = 0.2 },
pinned = true,
open = function()
require("neo-tree.command").execute({
position = "right",
source = "git_status",
})
end,
},
{
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "document_symbols"
end,
title = "Neo-Tree Document Symbols",
size = { width = 0.2 },
pinned = true,
open = function()
require("neo-tree.command").execute({
position = "top",
source = "document_symbols",
})
end,
},
}
Then, when executing require("edgy").open("left")
, edgy will open filesystem
, git_status
and document_symbols
.
I want edgy will auto hide git_status
and document_symbols
when executing require("edgy").open("left")
.
Maybe can add hide
setting for items with pinned
and open
.
None.
No response
v0.9.5
MacOS lastest
when I select a terminal buffer on left side panel, edgy.nvim ui is broken.
it should be placed under text editor
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/edgy.nvim",
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
0.9.1
macOS 13.0.1
Running a vanilla lazyvim installation, and enabled the following plugins
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- UI
{ import = "lazyvim.plugins.extras.ui.mini-animate" },
{ import = "lazyvim.plugins.extras.ui.edgy" },
-- Language Support
-- { import = "lazyvim.plugins.extras.lang.typescript" },
{ import = "lazyvim.plugins.extras.lang.json" },
{ import = "lazyvim.plugins.extras.lang.go" },
-- Coding Support
{ import = "lazyvim.plugins.extras.coding.copilot" },
-- import/override with your plugins
{ import = "plugins" },
},
If I toggle edgy, I get the following:
vim/_editor.lua:0: nvim_exec2(): Vim:E492: Not an editor command: SymbolsOutline
Presumably this is because symbols-outline.nvim is not listed as a dependency anywhere?
<leader>
-> u
-> e
No error.
As above.
v0.9.1
13.0.1 (22A400)
Pursuant to attmpting to resolve #27, I added symbols-outline.nvim as a dependency, but, no dice. Now the error is:
vim/_editor.lua:0: nvim_exec2(): Vim(lua):E5108: Error executing lua ...e/nvim/lazy/symbols-outline.nvim/lua/symbols-outline.lua:307: attempt to index field 'view' (a nil value)
stack traceback:
...e/nvim/lazy/symbols-outline.nvim/lua/symbols-outline.lua:307: in function 'toggle_outline'
[string ":lua"]:1: in main chunk
[C]: in function 'nvim_exec2'
vim/_editor.lua: in function 'cmd'
.../andy/.local/share/nvim/lazy/edgy.nvim/lua/edgy/view.lua:128: in function <.../andy/.local/share/nvim/lazy/edgy.nvim/lua/edgy/view.lua:127>
[C]: in function 'pcall'
.../andy/.local/share/nvim/lazy/edgy.nvim/lua/edgy/util.lua:6: in function 'try'
.../andy/.local/share/nvim/lazy/edgy.nvim/lua/edgy/view.lua:127: in function <.../andy/.local/share/nvim/lazy/edgy.nvim/lua/edgy/view.lua:122>
Also worth noting: I am unable to quit nvim with :q
. It simply toggles the first edgy window. I have to :qa
for it to work.
~/.config/nvim/lua/plugins/coding.lua
file with the following contents:return {
{"simrat39/symbols-outline.nvim"},
}
No error
As above.
Depending on the task I am doing I'd like to see one layout with some particular panels, or another layout with different panels. For example, I want one layout while developing, or maybe a different layout depending on the thing I am developing, a different one while debugging, a different one while merging the code with git, or even I'd like to disable temporarily edgy and use a "free" layout.
I'd like to be able to configure different layouts or disabling edgy (to have a free layout) and switch them using keymaps.
I think that nvim-ide supports several profiles, but I don't want to be forced yo use its panels.
No response
First of all, check the readme. It's in there :)
To have your views collapse fully, you either need:
I wish to have dynamic title for my quick fix windows, e.g., I open diagnostics in qf then my title should be Diagnostics, I open buffers in qf, then my title should be buffers, etc.
title field could be a function that returns a string, this way every time a new window is opened, title string could be obtained from this function.
none -
No response
I've configured edgy.nvim
to display help
, trouble
, manpage
, and quickfix
windows. Due to limited screen space, there are times when I'd like to temporarily hide the edgy
window to focus on my codebase, only to return to, for example, the help
menu later. Unfortunately, the current functionality doesn't allow hiding the edgy window without closing its content. While the require("edgy").toggle(pos?)
API function exists, it only toggles pinned views, and there's no direct way to restore a specific help
or manual
buffer that was being read.
Additionally, there is the "hide" keymap, yet its functionality differs from the desired behavior. While it effectively collapses within the edgbar, it doesn't contribute to expanding available screen space. Instead, it simply makes more room for other edgy configured windows within the existing display layout.
I appreciate edgy's unified concept, especially the ability to close every configured window with q
. It would be beneficial if there were a command to toggle every edgy window without losing its content, providing a seamless way to manage visibility without disrupting the current state of individual buffers.
I propose the inclusion of two new functions in the edgy.nvim API:
-- This function would be designed to hide the edgbar at a specified
-- position without removing its content.
require("edgy").hide(pos?)
-- This function would facilitate the display of the hidden edgbar at
-- the specified position, restoring its visibility.
require("edgy").show(pos?)
Furthermore, for consistency in naming conventions, the existing keymap:
["<c-q>"] = function(win) win:hide() end
-- could be more aptly renamed to:
["<c-q>"] = function(win) win:collapse() end
This adjustment aims to provide a clearer and more cohesive naming structure for keymap actions within the edgy.nvim
configuration.
I've explored the idea of creating a custom keymap to minimize the edgy window:
["<c-w>_"] = function(win)
win:resize("height", [min value])
end,
However, the result doesn't look very nice to me.
No response
v0.10.0-dev-2619+gc52dfb6e8
Windows 11
When opening Neo-Tree (or NvimTree as well), switching to a new tab, opening another Neo-Tree window there, then switching back to the original tab, I get this error:
...AppData/Local/nvim-data/lazy/edgy.nvim/lua/edgy/util.lua:70: ...Data/Local/nvim-data/lazy/edgy.nvim/lua/edgy/edgebar.lua:207: Edgy: Failed to layout windows.
Vim:E957: Invalid window number
{
last = "neo-tree",
win = "edgy"
}
The error repeats with identical notifications forever and I have to quit out of Neovim. I just tried this with a basic setup of only Lazy, Neo-Tree, and Edgy with no additional configuration other than the config described on the Edgy git page, and I get the same behavior. I also checked the non-nightly build of Neovim and I'm getting the same thing. This only seems to happen when there are multiple Neo-Tree windows in the edgebar config, but I'm also getting the problem with Nvim-Tree and only a single Nvim-Tree window in the edgebar. I'm assuming this is a bug since I just copied the config from Github. Thank you and I'm otherwise loving this plugin!
Neovim is not flooded with error notifications
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Example using a list of specs with the default options
vim.g.mapleader = " " -- Make sure to set `mapleader` before lazy so your mappings are correct
vim.g.maplocalleader = "\\" -- Same for `maplocalleader`
require("lazy").setup({
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
-- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
}
},
{
"folke/edgy.nvim",
event = "VeryLazy",
init = function()
vim.opt.laststatus = 3
vim.opt.splitkeep = "screen"
end,
opts = {
left = {
-- Neo-tree filesystem always takes half the screen height
{
title = "Neo-Tree",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "filesystem"
end,
size = { height = 0.5 },
},
{
title = "Neo-Tree Git",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "git_status"
end,
pinned = true,
open = "Neotree position=right git_status",
},
{
title = "Neo-Tree Buffers",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "buffers"
end,
pinned = true,
open = "Neotree position=top buffers",
},
-- any other neo-tree windows
"neo-tree",
},
},
}
})
NVIM v0.10.0-dev-476+ga217675a6-Homebrew
MacOS 13.4
When I use the config example and navigate between different panes, my cursor suddenly gets stuck and things start to flicker. If I remove SymbolsOutline, things seem to go back to normal.
I can use the left sidebar correctly
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify('./.repro', ':p')
-- set stdpaths to use .repro
for _, name in ipairs({'config', 'data', 'state', 'cache'}) do
vim.env[('XDG_%s_HOME'):format(name:upper())] = root .. '/' .. name
end
-- bootstrap lazy
local lazypath = root .. '/plugins/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
'git', 'clone', '--filter=blob:none',
'https://github.com/folke/lazy.nvim.git', lazypath
})
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
{
'nvim-neo-tree/neo-tree.nvim', branch = 'v2.x', dependencies = {
'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'MunifTanjim/nui.nvim'
}, config = true
}, {'simrat39/symbols-outline.nvim', config = true},
'folke/tokyonight.nvim', {
{
'folke/edgy.nvim', event = 'VeryLazy', opts = {
bottom = {
{ft = 'qf', title = 'QuickFix'}, {
ft = 'help', size = {height = 20},
-- only show help buffers
filter = function(buf)
return vim.bo[buf].buftype == 'help'
end
}, {ft = 'spectre_panel', size = {height = 0.4}}
}, left = {
-- Neo-tree filesystem always takes half the screen height
{
title = 'Neo-Tree', ft = 'neo-tree',
filter = function(buf)
return vim.b[buf].neo_tree_source == 'filesystem'
end, size = {height = 0.5}
}, {
title = 'Neo-Tree Git', ft = 'neo-tree',
filter = function(buf)
return vim.b[buf].neo_tree_source == 'git_status'
end, pinned = true,
open = 'Neotree position=right git_status'
}, {
title = 'Neo-Tree Buffers', ft = 'neo-tree',
filter = function(buf)
return vim.b[buf].neo_tree_source == 'buffers'
end, pinned = true,
open = 'Neotree position=top buffers'
}, {ft = 'Outline', pinned = true, open = 'SymbolsOutline'},
-- any other neo-tree windows
'neo-tree'
}
}
}
}
}
require('lazy').setup(plugins, {root = root .. '/plugins'})
vim.cmd.colorscheme('tokyonight')
-- add anything else here
NVIM v0.9.1 and NVIM v0.10.0-dev-695+g58f948614
MacOS Ventura 13.4
The last vertical bar for the border is not initially drawn. Most often, I see an empty space character where the border should be, but it simply depends on the width/height of the terminal and contents of the main buffer. Here are a few examples:
Icon from starter shown when term size is 25x111:
Space char shown when term size is 25x119 chars:
But as soon as you resize the window or open one of the sections, the character is drawn correctly. For example, in the below image, I simply made the terminal wider and then shorter again to the original size:
Note: This is easy to overlook with the standard border color of Tokyonight when a space character takes the place of the border. But I prefer a slightly brighter border to help distinguish my windows in vim, so I set my Tokyonight border color to the same color as comments. And that's when it stood out like a sore thumb.
stty size
).<leader>e
.To fix, simply resize the terminal window or open the neo-tree Buffers section.
I have tested with the latest nightly version from nvim as one of the prior issues stated that an upstream fix was posted, so I was unsure if that might be related, so I tested both 0.9.1 as well as nightly neovim. Problem happens on both.
I expect it to draw the full border as in the screenshot above.
I am struggling to create a simple config (my Lua Nvim skills aren't so great).
I was able to reproduce with a LazyVim starter kit with only the edgy extra enabled.
v0.10.0-dev-422+g68e2d7229
Linux6.3.5-arch1-1
Whenever opening a buffer(e.g. neotree and spectre), the background does not turn transparent, but instead uses the theme's background.
Which goes transparent if I move away from the buffer and move back.
Notably, using the repro config, the filter has to be there for it to happen.
:Neotree toggle
The buffer opens with transparent background
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-neo-tree/neo-tree.nvim",
{
"folke/edgy.nvim",
opts = {
left = {
{
-- title = "Neo-Tree",
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == "filesystem"
end,
}
}
}
},
{
"xiyaowong/transparent.nvim",
opts = {
extra_groups = {
"NeoTreeNormal",
"NeoTreeNormalNC",
}
}
},
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-
0.10
Ubuntu 22
When using many different toggleterms at the same time, edgy only allows you to resize the width on one of them. It seems that the other terms' windows are not managed by edgy
Both terms's windows are managed the equally
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/edgy.nvim",
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
NVIM v0.10.0-dev-2284+gf6042d5c3 && NVIM 9.5
Macos 14.11
If I open a help window first and then open a quickfix window, it freezes. However, if I adjust the configuration file and place the quickfix window at the top, it opens normally.
If there are other window configurations before the quickfix window, and you open them before opening the quickfix window, you may encounter such issues.
Open the quickfix window normally
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
{
"folke/edgy.nvim",
event = "VeryLazy",
init = function()
vim.opt.laststatus = 3
vim.opt.splitkeep = "screen"
end,
opts = {
bottom = {
{
ft = "help",
size = { height = 20 },
-- only show help buffers
filter = function(buf)
return vim.bo[buf].buftype == "help"
end,
},
{ ft = "qf", title = "QuickFix" },
},
},
}
})
0.10
ArchLinux
come from here
issue on switch tab with neotree opened
๎ช Error 12:40:01 AM notify.error edgy.nvim ...onnet/.local/share/nvim/lazy/edgy.nvim/lua/edgy/util.lua:70: ...et/.local/share/nvim/lazy/edgy.nvim/lua/edgy/edgebar.lua:207: Edgy: Failed to layout windows.
Vim:E957: Invalid window number
{
last = "neo-tree",
win = "edgy"
}
e
command (already started to flickering)<leader>TabTab
<leader>Tab+f
to fix this error i need to close neotree from first Tab, then clean all notification from notify
shoudl not have any error message of issue of flickering with edgy
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/LazyVim",
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
{ import = "lazyvim.plugins.extras.ui.edgy" },
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme "tokyonight"
-- add anything else here
v0.10.0-dev+492-gb6d2f49b4
Fedora release 39 (Rawhide)
nvim will crash if the plugin attempts to animate the resize of terminals. it's a bit tough for me to isolate the exact steps to repro tho, sometimes it won't animate but sometimes it does
<C-/>
2<C-/>
3<C-/>
Either not doing the animation or without crashing nvim.
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
{
"folke/edgy.nvim",
opts = {
bottom = {
{
ft = "toggleterm",
size = { height = 0.4 },
filter = function(buf, win)
return vim.api.nvim_win_get_config(win).relative == ""
end,
},
}
}
},
{
"akinsho/toggleterm.nvim",
config = function(_, opts)
require("toggleterm").setup(opts)
end,
---@type ToggleTermConfig
opts = {
open_mapping = "<c-/>",
autochdir = true,
},
cmd = "ToggleTerm",
---@type LazyKeys{}
keys = {
"<c-/>",
},
},
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
0.10-dev
Manjaro 6.1.44
Using LazyVim, with edgy default's config and dropbar default's config an error is thrown.
I have also created an issue in dropbar project, because I am not sure where could be the root's cause:
Bekaboo/dropbar.nvim#72
No error is thrown
No idea how to reproduce with minimal config. The issue appears on a fresh LazyVim config with edgy active and dropbar plugin installed
NVIM v0.10.0-dev
ubuntu 22.04
I believe a bug I reported to neotest has something to do with edgy and how it spawns windows for its quickfix.
Linked to the bug. Not sure how to make a minimal reproduction, but trying now.
No errors
Edit*
It would appear after more config changing and testing, the issue is related to the Trouble Quickfix menu, and the neotest E36 error in the bug report above.
NVIM v0.10.0-dev
archlinux
When navigating between window on the left panel, the main buffer get the focus again
(I would be very interested on the debug method to use there as I have many other bug in my config and I don't think i have an efficient way of debuging thoses)
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
git clone https://github.com/adelin-b/LazyVim ~/.config/nvim
cd ~/.config/nvim
nvim
'
Then press <leader>fo
(filetree open)
c-j
/ c-k
multiple time to move in the left panel, you can use <
>
for toggling the neotree panels and it will bug on thoses when you c-j
and c-k
mutiple times in a direction or another.
It will go back to the main buffer
It should stay on the left panel
^ docker command above, if it doesn't work i can try another repro here.
v0.11.0-dev-164+g3a1515bfe
Linux loric 6.9.3-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:26 +0000 x86_64 GNU/Linux
When edgy is configured with a filter but an empty filetype, the window title gets set but the window itself is not controlled by edgy.
I noticed this running Overseer.nvim.
As you can see in the screenshot, the 'Overseer runner' window does not follow edgy config (contrary to the other 2), and is not toggled with edgy.
{ ft = "", filter = function(buf, win) return vim.b.overseer_task ~= nil end, title = "Overseer Runner" }
to the edgy bottom section:OverseerToggle
The window title should be set and the window should be managed by edgy.
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/edgy.nvim",
'stevearc/overseer.nvim',
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
require('overseer').setup()
require('edgy').setup({ bottom = {
{
ft = "toggleterm",
open = "ToggleTerm",
size = {
height = 0.3,
},
filter = function(_, win)
return vim.api.nvim_win_get_config(win).relative == ""
end,
pinned = true,
},
"Trouble",
{ ft = "qf", title = "QuickFix" },
{ ft = "OverseerList", title = "Overseer List" },
{ title = "Overseer Runner", ft = "", filter = function (buf, win)
return vim.b.overseer_task ~= nil
end,
size = {
height = 0.3,
},
}
},
})
I wanted to be able to resize my terminal's window but in the docs is described that it is not possible to do it manually. It would be really awesome to be able to automatically resize the focused window
parametrize the values of the hight/width that a window should take from the other windows close to the given one. Something similar to this: https://github.com/camspiers/lens.vim (please see the video in the documentation)
The alternative I have considered is using the above mentioned plugin (lens) but it seems to have some issues with edgy (or maybe is just my set up)
Thanks for doing such a great job!
I use edgy as a left-side pane to have different cwd-dependent views, e.g., a file tree, a tree of modified files as tracked by git and a tree of open buffers. I use neo-tree
sources to display these. However, I find the hide_root_node
option of neo-tree
quite handy, as I see the redundant root node always displaying the cwd for all views. By hiding the root node, I don't waste horizontal nor vertical space on this information, but it would be good to have it at the top of the whole edgy
sidebar.
It'd be great to add a title
option to the windows, i.e., to left
, right
, top
and bottom
.
Using the bufferline
title to display this information.
No response
NVIM v0.9.2
Linux 5.15.0-84-generic #93-Ubuntu SMP Tue Sep 5 17:16:10 UTC 2023 GNU/Linux
Neovim exhibits unusual behavior when an invalid configuration is used. Specifically, instead of encountering an exception during the execution of require"edgy".setup {}
, Neovim starts to consume 100% of a CPU's core after certain window manipulations. Additionally, it may freeze on the :q command.
Extensive examination revealed the root of the issue. The utility edgy.util.with_retry
fails to increment the retries
variable. This results in Neovim entering a perpetual loop of try -> vim.schedule(try) -> vim.schedule(try) ->...
, effectively rendering it stuck and not displaying an error message to the user.
local plugs = vim.fn.stdpath("data") .. "/lazy"
local edgy = plugs .. "/edgy.nvim"
vim.opt.runtimepath:append(edgy)
require("edgy").setup({
// Erroneous configuration
animate = false,
bottom = { { ft = "help" }, },
})
Neovim should maintain normal CPU usage and not reach 100% consumption.
local plugs = vim.fn.stdpath("data") .. "/lazy"
local edgy = plugs .. "/edgy.nvim"
vim.opt.runtimepath:append(edgy)
require("edgy").setup({
-- Erroneous configuration, should be `{ animate = { enabled = false } }`
animate = false,
bottom = { { ft = "help" }, },
})
NVIM v0.10.0-dev-473+gb3d5138f
Both Linux and Macos - OS independent
Starting from neovim/neovim@b3d5138fd, neo-tree in edgy doesn't work quite right.
Prior to this, opening the left sidebar in my config looked like this:
Going to investigate further. Wanted to get this noted, though.
Edit: Forgot to note: When using the problem commit, nothing happens after I toggle("left")
until I press any additional key.
{
"folke/edgy.nvim",
event = "VeryLazy",
opts = {
options = {
left = { size = 35 },
top = { size = 15 },
bottom = { size = 15 },
right = { size = 35 },
},
exit_when_last = true,
wo = {
-- Setting to `true`, will add an edgy winbar.
-- Setting to `false`, won't set any winbar.
-- Setting to a string, will set the winbar to that string.
winbar = false,
winfixwidth = true,
winfixheight = true,
winhighlight = "WinBar:EdgyWinBar",
spell = false,
signcolumn = "no",
statuscolumn = "",
number = false,
relativenumber = false,
},
keys = {
["q"] = function(win)
win:hide()
end,
["<c-q>"] = false,
["Q"] = false,
["]w"] = false,
["[w"] = false,
["]W"] = false,
["[W"] = false,
["<c-w>>"] = false,
["<c-w><lt>"] = false,
["<c-w>+"] = false,
["<c-w>-"] = false,
["<c-w>"] = false,
["<A-C-j>"] = function(win)
win:resize("height", 1)
end,
["<A-C-k>"] = function(win)
win:resize("height", -2)
end,
["<A-C-h>"] = function(win)
win:resize("width", 2)
end,
-- decrease width
["<A-C-l>"] = function(win)
win:resize("width", -2)
end,
},
animate = {
enabled = false,
},
top = {
{
ft = "qf",
title = "QuickFix",
pinned = true,
open = ":copen",
wo = {
winbar = true,
winhighlight = "Normal:EdgyQuickfixNormal",
},
},
},
bottom = {
{
ft = "toggleterm",
size = { height = 0.15 },
pinned = true,
open = function()
local t = require("tt")
if #t.terminal.TermList == 0 then
t.terminal:NewTerminal()
return
end
if t:IsOpen() then
t.terminal:Close()
return
end
t.terminal:Open("last")
end,
-- wo = {
-- winhighlight = "Normal:EdgyTermNormal",
-- },
},
{
ft = "termlist",
size = { height = 0.15, width = 25 },
},
"Trouble",
},
left = {
{
title = "Buffers",
ft = "neo-tree",
size = { height = 0.15 },
filter = function(buf)
return vim.b[buf].neo_tree_source == "buffers"
end,
pinned = true,
visible = true,
wo = {
height = "15",
winbar = true,
},
open = "Neotree source=buffers position=left",
},
{
title = "File Tree",
ft = "neo-tree",
size = { height = 0.85 },
pinned = true,
visible = true,
filter = function(buf)
return vim.b[buf].neo_tree_source == "filesystem"
end,
wo = {
winbar = true,
},
open = "Neotree filesystem position=top",
},
},
right = {
{
ft = "Outline",
visible = false,
size = { height = 0.25 },
pinned = true,
open = "SymbolsOutlineOpen",
wo = {
winbar = true,
},
},
{
ft = "help",
size = { width = 79 },
filter = function(buf)
return vim.bo[buf].buftype == "help"
end,
wo = {
winhighlight = "Normal:EdgyHelpNormal",
},
},
},
},
},
require("edgy").toggle("left")
Neo-tree in Edgy to only split on the left
No response
NVIM 0.10 nightly
Arch Linux, 6.5.2-arch1-1
When using dynamic titles (title = "%{%v:lua.custom_edgy_title()%}"
), the width of a window is not calculated properly when folded. This leads to some windows getting wider when folded because highlight attrs / the result of the expr are not accounted for.
bottom
or top
view (where title width affects folded width).The width of the folded view will not be the same as the actual text width of the winbar.
The window should be folded to the text width of the winbar.
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
"folke/edgy.nvim",
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
function _G.custom_edgy_title()
return "%#EdgyTitle#Test%#*"
end
require("edgy").setup({
bottom = {
{
ft = "qf",
title = "%{%v:lua.custom_edgy_title()%}",
},
{
ft = "terminal",
title = "%{%v:lua.custom_edgy_title()%}",
},
},
})
vim.api.nvim_create_autocmd("TermOpen", {
callback = function(ev)
vim.bo[ev.buf].filetype = "terminal"
end
})
NVIM v0.9.1
MacOS Ventura 13.4
When neo-tree auto expand is enabled (e
keybinding), If Neo-tree needs to expand due to width of its contents , the screen flickers as the width of the neo-tree sidebar quickly alternates between widths. Here is a video of it occurring.
e
).e
) and flickering will stop.No flickering.
My lua skills aren't the good. I've tried for the past 30 minutes to come up with a bare minimum config, but I keep hitting a wall. I'm a new user to LazyVim and I'm using the starter kit with edgy extra enabled.
NVIM v0.9.4 Build type: Release LuaJIT 2.1.1696795921
MacOs 13.4.1
I've set up the help window to be displayed in edgy.nvim
. When navigating between help files using <C-]>
to follow tags, the new help files no longer appear to be an edgy window. This is noticeable through changes in the winbar, and the default keymap q
to close the window ceases to work.
nvim --clean -u repro.lua
:help :cnext
/switchbuf<cr>
<C-]>
--> new helpfile is no edgy window
the jumped helpfile is still an edgy window
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
{
"folke/edgy.nvim",
opts = {
bottom = {
{ ft = 'help' },
}
}
},
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.