themoritz/turbobean
Beancount implementation with a focus on speed and ease of use
master6274eebace9a6a82ce182e24468fef88e0b95f37
An implementation of Beancount with a focus on speed and ease of use.
Speed (processes huge files instantly)
LSP Server
Jump to account open
Hover account (before + after balance)
Auto completion (accounts, tags, links)
Highlight account
Syntax highlighting via semantic tokens
Rename account
Web Viewer
File Watcher (reloads instantly)
Journal
Balance Sheet
Income Statement
Lua Plugins
Formatter
Protobuf Output
Mostly compatible with Beancount, but follows some ideas from Beancount Vnext: Goals & Design, notably Beancount - Vnext: Booking Rules Redesign. This is currently implemented in a non-backwards-compatible way.
Put this into your nvim-lspconfig's config function:
local lspconfig = require 'lspconfig'
require('lspconfig.configs').turbobean = {
default_config = {
cmd = {
'bash',
'-c',
'/Users/moritz/code/turbobean/zig-out/bin/turbobean --lsp 2> >(tee turbobean.log >&2)',
},
filetypes = { 'beancount', 'bean' },
root_dir = require('lspconfig.util').root_pattern 'turbobean.config',
},
}
lspconfig.turbobean.setup {}
Disable treesitter:
return {
'nvim-treesitter/nvim-treesitter',
opts = {
highlight = {
enable = true,
disable = { 'beancount' },
},
},
}
Use extension in this repo.
cd vscode
npm i
code .
Then press F5, or go to debugging and click "Run Extension".
npm i
npm run test
File:
Project:
Process:
Query: