Comments (11)
You don’t do that the way you show it. Colortemplate v2 (currently in beta) provides the Variant
keyword;
Variant: gui
# Defs that apply only in GUI or with termguicolors set
Variant: 256 16
# Defs that apply to terminals
See :help colortemplate-variants
.
Your specific example aside, I’m not against adding support for conditionals.
from vim-colortemplate.
Thanks for answering. But using variants would force me to redefine each group for each variant? I'd stick with the verbatim blocks at that point.
These conditional blocks could also be used to check user options, like filetype specific highlight, contrast, etc.
By the way it's just a readability issue, so not a big problem.
from vim-colortemplate.
But using variants would force me to redefine each group for each variant?
No, a Variant
directive specifies to which variants (true-color, 256-color, 16-color, and so on) the subsequent definitions apply. So, if you have different colors for FoldColumn
only, you can do:
Variant: gui # Only GUI or termguicolors set
FoldColumn skyblue nightblue
Variant: 256 16 # 256- and 16-color terminals
FoldColumn skyblue none
Variant: gui 256 16 # All three variants
# All the remaining highlight groups
It is a declarative way to define conditional behaviour. Your code would generate something similar to this in v2:
if (has('termguicolors') && &termguicolors) || has('gui_running')
if &termguicolors || has('gui_running')
hi FoldColumn guifg=#ffffff guibg=#000000 guisp=NONE gui=NONE cterm=NONE
else
hi FoldColumn guifg=#ffffff guibg=NONE guisp=NONE gui=NONE cterm=NONE
endif
finish
endif
if s:t_Co >= 256
if &termguicolors || has('gui_running')
hi FoldColumn ctermfg=231 ctermbg=16 cterm=NONE
else
hi FoldColumn ctermfg=231 ctermbg=NONE cterm=NONE
endif
endif
Your check is clearly redundant because it is performed automatically by Colortemplate.
These conditional blocks could also be used to check user options, like filetype specific highlight, contrast, etc.
Sure, they may be convenient. I'll work on that.
from vim-colortemplate.
The current master now implements (and will soon document) #if
, #else
, #elseif
and #endif
. They work like one-line verbatim blocks. The keywords must appear at the beginning of a line. For instance:
#if get(g:, 'transparent_foldcolumn', 0)
FoldColumn skyblue nightblue
#else
FoldColumn skyblue none
#endif
from vim-colortemplate.
My WWDC17 color scheme now uses them, if someone needs a real-world example.
from vim-colortemplate.
I have also added #let
and #unlet
, as they're handy. I hope this won't degenerate with people asking me to reimplement the whole of VimScript :>
from vim-colortemplate.
Works great, thanks!
I hope this won't degenerate with people asking me to reimplement the whole of VimScript :>
Maybe just #call
:)?
from vim-colortemplate.
You've got it! Check out the current master.
from vim-colortemplate.
Thanks, hoping I'm not being picky, #
is used for comments too, maybe &
or something else would be better.
from vim-colortemplate.
I like #
because it reminds me of C macros. Highlighting should make the distinction clear. Could be @
instead.
from vim-colortemplate.
For me it's fine also #
, thanks.
from vim-colortemplate.
Related Issues (20)
- Variant: 0 HOT 1
- cterm definitions for templates with dark and light backgrounds HOT 5
- Feature request: change meaning of term=/t= and add cterm=/c= HOT 2
- Commit `c7f0542` breaks compilation of vim-solarized8 HOT 3
- New highlight group added: CurSearch HOT 1
- alternative to changing saturation? HOT 3
- Invalid expression error when loading colorscheme HOT 3
- Neovim error for option balloonexpr HOT 3
- :h CTRL-L shadows built-in tag HOT 1
- Handling multiple palettes in a single template for a given background HOT 3
- gitignore tags file? HOT 5
- Verbatim is copied once for every variant HOT 3
- E518: Unknown option: <truncated file path> HOT 5
- Help moving Colortemplate v3 into production HOT 5
- Q: Can you elaborate on the Neovim compatibility directive? And why doesn't it exist in v3? HOT 5
- Not working in Neovim HOT 4
- "Unexpected token" from imported file HOT 1
- Allow color index to be in the range [0, 15] for the 256 variant? (v3) HOT 8
- The `Check` interface seems to disallow scrolling down (v3) HOT 2
- Higlight group definitions with discriminators and without variant restrictions check `has('gui_running')` (v3) HOT 9
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 vim-colortemplate.