Comments (3)
Hmm, technically Lush only supports Neovim. I think it's better that any compat layer is done outside of Lush. Wary of scope creep.
I would probably patch it before the make file since you already have a build system
function targets.vim8()
local parsed = lush(melange)
-- i forget how to write lua properly...
for group, values in pairs(parsed) do
values.gui = maybe_gui_without_blend(values.gui)
-- I think you can abuse lua mutability here
parsed[group] = values -- might muck up lua's pairs/next() iterator though
-- you can see that compile does some basic type checking (for a __lushmeta key)
-- https://github.com/rktjmp/lush.nvim/blob/02b79d4db6f61b23849b28f988e4f15683cdb4ee/lua/lush/compiler.lua#L37
-- so just update the gui key, don't recreate the whole table
end
local compiled = lush.compile(parsed, {force_clean = true })
table.insert(compiled, 4, "let g:colors_name = 'melange'")
-- or you could just strip blend from the compiled list, just be careful to be order agnostic,
-- blend is last right now, but that's not for any reason, a new key may appear after it at some point
-- or existing keys may be reordered.
-- your current fix may fail if this happens too I think, you might get extra ','.
return table.concat(compiled, '\n')
end
I think the real fix is getting vim to support blending 🌮
I had been thinking about a compiler plugin system, more around lush => alacritty than lush => vim8. Something that accepts a parsed spec and outputs external themes. Not sure how practical that is though when each theme probably wants to connect its colors to external theme parts differently (Normal -> bg vs g[n] -> bg, etc). If that existed, that's where vim8 compat would be.
from lush.nvim.
I would probably patch it before the make file since you already have a build system
Ehhh, yeah. Should have thought of that first.
I think I'll go with removing blend
from the compiled list for now.
I had been thinking about a compiler plugin system...
I don't think it's urgent to add that to Lush. I haven't had much trouble with the "build" system I wrote. It's not fancy, but it does the job. The only alternative I've considered so far is to use a templating system like mustache 🤔
when each theme probably wants to connect its colors to external theme parts differently...
Yep. I don't have a "standard" 16 colors theme, so I'm still figuring out that one myself.
from lush.nvim.
Now has option pass exclude_keys
to compile
,
See #30 (comment)
from lush.nvim.
Related Issues (20)
- Unreliable Lushify behaviour HOT 1
- Using new Treesitter groups/tags HOT 4
- How to specify treesitter highlight groups? HOT 2
- How to define treesitter `@x.y` groups HOT 14
- Transparent function HOT 4
- separate colors for keywords and brackets in JavaScript? HOT 3
- Theme the nvim-cmp HOT 2
- `:LushImport` broken HOT 5
- `:Lushify` doesn't work with `lush.extends()` HOT 2
- Built-in support for `g:terminal_color_*` variables HOT 1
- Following the guide to configure an existing theme removes icon colors HOT 7
- Changing boilerplate `sed` code results in error in Mac HOT 4
- `Cursor` highlight group appears not to be working HOT 1
- HSV support ? HOT 2
- `LushImport` doesn't work and errors saying bad argument HOT 3
- slow startup time HOT 8
- Cannot add colour variation for filetype sh HOT 4
- Add warning in :LushRunTutorial to avoid loss of work with naive `:w`'s HOT 1
- Error `bad argument #1 to 'unpack' (table expected, got nil)` HOT 8
- altfont style support is missing HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lush.nvim.