Skip to content

Yet another light-weight rooter written in Lua

Notifications You must be signed in to change notification settings

changyiyao/NeoRoot.lua

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 

Repository files navigation

NeoRoot.lua

DEMO

demo.mov

New Intro. (updated 2022/04/19)

With NeoRoot.lua, you will be able to:

  • Before starting NeoVim, first navigate to your project root(can be modified later)
  • Run nvim . to start your NeoVim. Now NeoRoot will enter proj-mode(see below) with the path you run nvim . as the root
  • During development, you can temporarily change the cwd to your current buffer.
  • During development, you can temporarily re-define your project root. For example: ~/.config. (shorthand ~, ../s are supported!
    • if you want to change back to ../somewhere/MyProj/, just leave the prompt blank and hit Enter. Simple!

Old Promo.

Now you won't have a hard time :cd to the right place to see more files before executing commands that takes your current working directory into account (i.e. you need to go up some levels to make tools like rg/fd to "see" more files). You can also change your project root in the runtime, without typing any command, anymore!

Features

  • No dependencies
  • No requirements
  • free
  • Light-weight, ~100 lines

Compatibility

Setup

Packer.nvim

local NOREF_NOERR_TRUNC = { noremap = true, silent = true, nowait = true }
use {
  'nyngwang/NeoRoot.lua',
  config = function()
    require('neo-root').setup {
      CUR_MODE = 2 -- 1 for file/buffer mode, 2 for proj-mode
    }
  end
}
vim.cmd'au BufEnter * NeoRoot'
vim.keymap.set('n', '<Leader>p', function() vim.cmd('NeoRootSwitchMode') end, NOREF_NOERR_TRUNC)
vim.keymap.set('n', '<Leader>pre', function() vim.cmd('NeoRootChange') end, NOREF_NOERR_TRUNC)

Hint

To see your current working directory, simply call NeoRootSwitchMode twice.

TODO list

  • Add installation guide in README.md
    • packer.nvim
  • Customizable
    • keymappings
    • ignore list

About

Yet another light-weight rooter written in Lua

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%