Closed
Description
Description
Hey there,
I do quite often like to "namespace" my files in many projects.
For instance, with my Hyprland config, I have various environment settings files for my different apps, and name them 00-env.<APP NAME>.conf
.
I've noticed nvim-tree
sorts those based on <APP NAME>
and they end up in a different spot in my file list than expected.
Neovim version
NVIM v0.9.1
Build type: Release
LuaJIT 2.1.0-beta3
Operating system and version
Linux 6.3.8-arch1-1
nvim-tree version
Clean room replication
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvt-min/site]]
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
require("packer").startup {
{
"wbthomason/packer.nvim",
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
-- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
-- OP's note: No plugin necessary
},
config = {
-- OP's note: this is the only change to nvt-nvim.lua I made
-- It seems however that the default sorting mode has the same behaviour.
sort_by = 'extension',
package_root = package_root,
compile_path = install_path .. "/plugin/packer_compiled.lua",
display = { non_interactive = true },
},
}
end
if vim.fn.isdirectory(install_path) == 0 then
print "Installing nvim-tree and dependencies."
vim.fn.system { "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path }
end
load_plugins()
require("packer").sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]]
vim.opt.termguicolors = true
vim.opt.cursorline = true
-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
require("nvim-tree").setup {}
end
Steps to reproduce
Make a bunch of files with same extension like, say .ext
.
Have some of them have prefixes to their extension like, for example, .moo
, .foo
, .bar
, .baz
This command will:
- Make a temporary directory
- CD into it
- Create a few empty files
- Start NeoVim with NvimTree open
cd $(mktemp -d) \
&& touch thing1.ext thing2.ext thing3.ext \
&& for prefix in moo foo bar baz; do touch thing1.$prefix.ext; done \
&& nvim +NvimTreeOpen
Expected behavior
Edited screenshot of my Hyprland config files for demonstration purposes