please.nvim is a plugin which enables you to interact with Please repositories from the comfort of Neovim.
Look up a target by its build label with :Please look_up_target.
Provide Label
Use Label Under Cursor
pleaseconfigured as the'filetype'forBUILD,BUILD.plz,*.build, and*.build_defsfiles.iniconfigured as the'filetype'for.plzconfigfiles to enable better syntax highlighting.- 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.
pleaseLSP client configured to useplz tool lpsforpleasefiles.- Language servers gopls, golangci-lint-langserver, basedpyright, and pyright configured for use in a Please repository.
- Runs
puku fmtwhen a Go file is saved.
please.nvim requires:
- Neovim >= 0.11.0
- Please
please.nvim supports the latest two Neovim minor versions. CI tests against the minimum supported version and the latest patch of each supported minor.
Additional dependencies are required for some features:
- tree-sitter-go for
:Please test under_cursorand:Please debug under_cursorin Go files - tree-sitter-python for
:Please test under_cursorand:Please debug under_cursorin Python files,:Please jump_to_target,:Please look_up_target, and:Please build,:Please run,:Please test,:Please debug, and:Please yankin BUILD files - nvim-dap for
:Please debug
Execute :checkhealth please to verify that the required dependencies are available and to see
whether any feature-specific dependencies are missing.
Note
These steps require Neovim >= 0.12 to use vim.pack.
- Open a test file in a Please repository.
- Execute
:lua vim.pack.add({ 'https://github.com/marcuscaisey/please.nvim' }, { confirm = false })to installplease.nvim. - Execute
:Please testto test the target corresponding to the test file in a popup. - Execute
:lua vim.pack.del({ 'please.nvim' }, { force = true })to uninstallplease.nvim.
Install using your favourite plugin manager. See below for snippets for some popular ones.
Note
Requires Neovim >= 0.12.
vim.pack.add({
{
src = 'https://github.com/marcuscaisey/please.nvim',
version = vim.version.range('1.*'), -- Use for stability; omit to use master branch for the latest features
},
}){
'marcuscaisey/please.nvim',
version = '1.*', -- Use for stability; omit to use master branch for the latest features
}- nvim-treesitter - Tree-sitter configurations and abstraction layer for Neovim. This enables you to install tree-sitter parsers.
- fzf-lua - Highly extendable fuzzy finder. This provides a
good
vim.ui.selectimplementation. - nvim-dap-ui - UI for nvim-dap.
See doc/please.txt or execute :help please.nvim.















