cursorless/init.lua
Cedric Halbronn 0ec5e3c4bc
Cursorless in neovim / terminal (#2256)
![neovim_take](https://github.com/cursorless-dev/cursorless/assets/387346/e72acd0d-fee2-4bae-a8b1-0cf8644c0ecf)

![neovim_clone_cut_post_drink](https://github.com/cursorless-dev/cursorless/assets/387346/20041f0d-8ff1-41b8-a2bd-02bc353ad8c5)

![neovim_terminal](https://github.com/cursorless-dev/cursorless/assets/387346/423b6d29-a1e4-4910-8a4e-32acd5dd3c5b)

# Repositories

This currently relies on:
* https://github.com/saidelike/cursorless/tree/nvim-talon (this PR) 
* compiled and pushed to
https://github.com/hands-free-vim/cursorless.nvim (neovim cursorless
plugin)
* https://github.com/saidelike/command-server/tree/neovim
  * compiled and pushed to cursorless mono repo
* https://github.com/hands-free-vim/talon.nvim (neovim talon plugin)
* https://github.com/hands-free-vim/neovim-talon (talon commands for
neovim: command-client, commands for navigating/editing/split/tabs in
editor. Deprecates https://github.com/fidgetingbits/talon-vim)

# Todo

- [x] https://github.com/hands-free-vim/neovim-talon/issues/20
- [x] https://github.com/hands-free-vim/neovim-talon/pull/24

# Checklist for pokey

The below list can be useful to review the code since some files are
based on vscode similar files.

- packages\cursorless-neovim-e2e\src\suite\recorded.neovim.test.ts
versus packages\cursorless-vscode-e2e\src\suite\recorded.vscode.test.ts
- packages\cursorless-neovim-e2e\src\endToEndTestSetup.ts versus
packages\cursorless-vscode-e2e\src\endToEndTestSetup.ts
- packages\cursorless-neovim\src\constructTestHelpers.ts versus
packages\cursorless-vscode\src\constructTestHelpers.ts
- packages\cursorless-neovim\src\extension.ts versus
packages\cursorless-vscode\src\extension.ts
- packages/cursorless-neovim/src/NeovimCommandServerApi.ts versus
https://github.com/pokey/command-server/blob/main/src/extension.ts#L32
- packages/cursorless-neovim/src/registerCommands.ts versus
packages/cursorless-vscode/src/registerCommands.ts
- packages\neovim-common\src\TestHelpers.ts versus
packages\vscode-common\src\TestHelpers.ts
- packages\neovim-common\src\getExtensionApi.ts versus
packages\vscode-common\src\getExtensionApi.ts
- packages\neovim-common\src\ide\neovim\NeovimCapabilities.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeCapabilities.ts
- packages/neovim-common/src/ide/neovim/NeovimClipboard.ts
 vs packages\cursorless-vscode\src\ide\vscode\VscodeClipboard.ts
- packages\neovim-common\src\ide\neovim\NeovimEdit.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeEdit.ts
- packages\neovim-common\src\ide\neovim\NeovimEvents.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeEvents.ts
- packages\neovim-common\src\ide\neovim\NeovimFileSystem.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeFileSystem.ts
- packages\neovim-common\src\ide\neovim\NeovimGlobalState.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeGlobalState.ts
- packages\neovim-common\src\ide\neovim\NeovimIDE.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeIDE.ts
- packages\neovim-common\src\ide\neovim\NeovimMessages.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeMessages.ts
- packages\neovim-common\src\ide\neovim\NeovimTextDocumentImpl.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeTextDocumentImpl.ts
- packages\neovim-common\src\ide\neovim\NeovimTextEditorImpl.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeTextEditorImpl.ts
- packages\neovim-common\src\ide\neovim\NeovimTextLineImpl.ts vs
packages\cursorless-vscode\src\ide\vscode\VscodeTextLineImpl.ts
- packages\neovim-common\src\ide\neovim\hats\NeovimHats.ts vs 
- packages\neovim-common\src\{neovimApi,neovimHelpers}.ts vs
https://code.visualstudio.com/api/references/vscode-api
- packages\neovim-common\src\runCommand.ts vs
packages\vscode-common\src\runCommand.ts
- packages\neovim-common\src\testUtil\openNewEditor.ts vs
packages\vscode-common\src\testUtil\openNewEditor.ts
- packages\test-harness\src\index.ts vs
packages\test-harness\src\runners\extensionTestsVscode.ts
- packages/test-harness/src/launchNeovimAndRunTests.ts vs
packages/test-harness/src/launchVscodeAndRunTests.ts
- packages/test-harness/src/scripts/runNeovimTestsCI.ts vs
packages/test-harness/src/scripts/runVscodeTestsCI.ts
- docs\contributing\cursorless-in-neovim.md vs
docs\contributing\CONTRIBUTING.md

---------

Co-authored-by: Cedric Halbronn <cedric.halbronn@nccgroup.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: fidgetingbits <fidgetingbits@users.noreply.github.com>
Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>
2024-07-26 12:45:59 +00:00

34 lines
1.1 KiB
Lua

-- This config file is used for local development and testing.
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or 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.runtimepath:prepend(lazypath)
require("lazy").setup({
-- Allows title detection by neovim-talon while testing
"hands-free-vim/talon.nvim",
-- Provides concise mode display while testing. This is useful because talon.nvim sets cmdheight = 0
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
})
-- Allows better range selection debugging - it allows us to see single character ranges.
vim.o.guicursor = "a:hor20-blink100"
local repo_root = os.getenv("CURSORLESS_REPO_ROOT")
if not repo_root then
error("CURSORLESS_REPO_ROOT is not set. Run via debug-neovim.sh script.")
end
vim.opt.runtimepath:append(repo_root .. "/cursorless.nvim")
require("talon").setup()
require("cursorless").setup()
require("lualine").setup()