please.nvim is a plugin which allows you interact with your Please repository from the comfort of Neovim. The aim is to remove the need to switch from your editor to the shell when performing routine actions.
- Build, run, test, and debug a target with
please.build(),please.run(),please.test(), andplease.debug(). - Display history of previous commands and run any of them again with
please.history(). - Set the profile to use with
please.set_profile(). - Jump from a source file to its build target definition with
please.jump_to_target(). - Look up a build target by its label with
please.look_up_target(). - Yank a target's label with
please.yank(). pleaseconfigured as thefiletypeforBUILD,BUILD.plz,*.build, and*.build_defsfiles.iniconfigured as thefiletypefor.plzconfigfiles to enable better syntax highlighting.pleaseLSP client configured to useplz tool lpsforpleasefiles.- gopls language server configured to use appropriate
GOROOTwhen started in a Please respository. - Python tree-sitter parser configured to be used for please files to enable better syntax highlighting and use of all tree-sitter features in build files.
Screen.Recording.2022-12-03.at.18.22.18.mov
Shown above:
- Testing the target
//gopkg:testfromgopkg/gopkg_test.gowith<space>pt(please.test()) - Jumping to the defintion of the target
//gopkg:testfromgopkg/gopkg_test.gowith<space>pj(please.jump_to_target()) - Testing the target
//gopkg:testagain, this time from theBUILDfile (please.test()again)
Detailed documentation can be in doc/please.txt or by running :help please.nvim.
ℹ️ Neovim >= 0.11.1 is required to use please.nvim
Using packer.nvim
use({ 'marcuscaisey/please.nvim' })Using vim-plug
Plug 'marcuscaisey/please.nvim'Using dein
call dein#add('marcuscaisey/please.nvim')- nvim-treesitter - Tree-sitter configurations and abstraction layer for Neovim.
- telescope.nvim - Highly extendable fuzzy finder.
- dressing.nvim - Pairs with telescope.nvim to
provide a nice popup for inputs (
vim.ui.input) and selections (vim.ui.select). - nvim-dap - Debug Adapter Protocol client
implementation for Neovim. This is required to use
please.debug(). - nvim-dap-ui - UI for nvim-dap.
please.nvim configures the Python tree-sitter parser to be used for please files. It doesn't,
however, configure anything else to do with
nvim-treesitter, so it's recommended to at
least enable syntax highlighting like so:
require('nvim-treesitter.configs').setup({
highlight = {
enable = true,
},
})For more information on configuring nvim-treesitter,
see here.