Real-time collaboration extension that highlights code intersections between your working copy and teammates' work.
- Real-time highlights: See lines being worked on by you or your team
- Early conflict detection: Know about potential conflicts before pushing
- Instant navigation: View and diff peer code without waiting for commits
- Low overhead: Asynchronous IPC and efficient highlighting
- Cross-platform: Works on Linux, macOS, and Windows
- Neovim 0.5.0 or higher (recommended: 0.8.0+)
- Vim 8.2+ with Python3 support (some limitations apply, see below)
- Kawa Code desktop app (download here)
The plugin supports Vim 8.2+ using a pure VimScript implementation with the following requirements:
- Python3 support compiled in (check with
:versionand look for+python3) - Signs support (check with
:versionand look for+signs)
Architecture: The plugin automatically detects your editor and uses:
- Neovim: Native Lua implementation with async I/O and extmarks
- Vim 8.2+: Pure VimScript implementation with Python3 sockets and signs
Implementation differences:
- Neovim uses Lua for all logic (faster, more features)
- Vim uses VimScript for logic and Python3 for socket operations (stable, compatible)
- Both implementations provide the same core features (highlighting, IPC, commands)
{
'CodeAwareness/kawa.vim',
config = function()
require('code-awareness').setup({
-- Optional configuration
debug = false,
})
end,
}use {
'CodeAwareness/kawa.vim',
config = function()
require('code-awareness').setup()
end
}Plug 'CodeAwareness/kawa.vim'
" In your init.vim or init.lua:
lua << EOF
require('code-awareness').setup()
EOF- Clone the repository to your Vim pack directory:
# Create pack directory if it doesn't exist
mkdir -p ~/.vim/pack/plugins/start
# Clone the plugin
cd ~/.vim/pack/plugins/start
git clone https://github.com/CodeAwareness/kawa.vim.git- Add configuration to your
~/.vimrc:
" Kawa Code configuration
lua << EOF
require('code-awareness').setup({
debug = false,
})
EOFPlug 'CodeAwareness/kawa.vim'
" In your .vimrc:
lua << EOF
require('code-awareness').setup()
EOFcd ~/.vim/bundle
git clone https://github.com/CodeAwareness/kawa.vim.gitThen add to your ~/.vimrc:
lua << EOF
require('code-awareness').setup()
EOFAdd to your ~/.vimrc:
Plugin 'CodeAwareness/kawa.vim'Then run :PluginInstall and add configuration:
lua << EOF
require('code-awareness').setup()
EOFAfter installation, verify the plugin is working:
-
Check if plugin loaded:
:echo exists('g:loaded_code_awareness') " Should output: 1
-
Check Python3 support (Vim only):
:version " Look for +python3 in the output
-
Test the command:
:CodeAwareness status
- Install the Kawa Code desktop app and login
- Install this plugin using your package manager (see Installation above)
- Open Vim/Neovim in a Git repository
- Plugin will automatically connect to Kawa Code
- Highlights will appear on lines you or your teammates are working on
- Kawa Code will display the contributors for that file, as well as other info
Note for Vim users: Make sure you have Python3 support enabled. You can check with :version and look for +python3. If you see -python3, you'll need to recompile Vim with Python3 support or use a Vim distribution that includes it (like vim-nox on Debian/Ubuntu).
| Command | Description |
|---|---|
:CodeAwareness status |
Show connection and auth status |
:CodeAwareness toggle |
Enable/disable plugin |
:CodeAwareness refresh |
Force refresh current buffer |
:CodeAwareness clear |
Clear all highlights |
:CodeAwareness reconnect |
Reconnect to Kawa Code app |
Add to your init.lua or init.vim:
require('code-awareness').setup({
-- Enable debug logging
debug = false,
-- Highlight settings
highlight = {
enabled = true,
intensity = 0.3,
full_width = true,
colors = {
light = '#00b1a420',
dark = '#03445f',
},
},
-- Update behavior
update_delay = 500, -- ms debounce
send_on_save = true,
send_on_buffer_enter = true,
-- IPC settings
connection_timeout = 5000,
max_poll_attempts = 5,
})Add to your ~/.vimrc:
" Kawa Code configuration
lua << EOF
require('code-awareness').setup({
debug = false,
highlight = {
enabled = true,
intensity = 0.3,
full_width = true,
colors = {
light = '#00b1a420',
dark = '#03445f',
},
},
update_delay = 500,
send_on_save = true,
send_on_buffer_enter = true,
connection_timeout = 5000,
max_poll_attempts = 5,
})
EOFNote: Vim 8.2+ supports Lua, so you can use the same configuration format as Neovim.
See :help code-awareness for full documentation.
For architecture details, see ARCHITECTURE.md.
For development and contributing, see DEVELOPMENT.md.
MIT License - see LICENSE for details.
- kawa.emacs - Kawa Code for Emacs