Skip to content
This repository has been archived by the owner on Jul 21, 2023. It is now read-only.

can you explain a little more what the purpose of the plugin? #3

Closed
luxus opened this issue Jan 26, 2023 · 3 comments
Closed

can you explain a little more what the purpose of the plugin? #3

luxus opened this issue Jan 26, 2023 · 3 comments
Assignees
Labels
documentation Improvements or additions to documentation question Further information is requested

Comments

@luxus
Copy link

luxus commented Jan 26, 2023

it was hard to find out what it does, I think a quick intro could be helpful

@dharmx
Copy link
Owner

dharmx commented Jan 26, 2023

Hey, there.

Yes, I am aware that there is aren't any demos or, guides regarding the usage of this plugin.
This is because I am completely rewriting this. The reason being that currently the code is really unsanitary and cluttered.

I will write a full guide after I complete and refine that. That being said.. the following is a quick rundown of what this plugin does and aims to do.

Also, there are help pages :help Color:random() they might not be good but its worth a mention.

Theming utilities.

The general idea for this plugin is to provide you with coloring utilities like lighten, darken, warmth, etc. This will help greatly when creating your own colorscheme from scratch (without nvim-colo's builtin architecture). Like you would not have to use a colorpicker or, external site to apply edits to your colors.

A theming architecture.

Allow inbuilt themes and allow users to override specific highlight groups if they do not like the defaults. And, also allow users to add their own colorschemes that follows the nvim-colo theming architecture.

Treesitter

Support the new treesitter tags highlights. And, add some queries that will enunciate some tokens for better code readability.

Provide a telescope theme picker

Allow users to browse inbuilt and user themes and set them using telescope.nvim.

Premade configs.

Provide some premade plugin configs like what nord.nvim does. That is, the user will be able
to use a ready-made feline, bufferline, incline configs.

Allow aggregates

Users will be allowed to toggle bold, italic, underline, transparent, etc modifiers.

Allow presets

Users will be able to toggle darker contrasted colors for specific highlight groups, toggle
italic comments, etc.

Generators

This feature is similar to what packer.nvim does. The idea is to generate a Lua file with
nvim_set_hl calls in colors/theme.lua. This will completely remove nvim-colo dependency from
the user's config and they can just use the generated file for setting their colorscheme.

  • TODO: Compile generated theme file to bytecode.

A colorpickers. And other frontends.

This is on TODO.

About.

I wanted to use multiple colorschemes but, every other colorscheme plugin followed there own way of defining colors which was not uniform or, did things differently. This did not play well with my configuration which often imported colors from the colorscheme. Secondly, some plugins supported presets and aggregates but there was no way to add my own groups to them. And, their premade plugin config had hardcoded values.

@dharmx dharmx self-assigned this Jan 26, 2023
@dharmx dharmx added documentation Improvements or additions to documentation question Further information is requested labels Jan 26, 2023
@dharmx dharmx pinned this issue Jan 26, 2023
@luxus
Copy link
Author

luxus commented Jan 26, 2023

thanks for the answer,
sounds like a cool project, lately many similar projects have been started (mini.base16, starry.nvim, nightfox etc.)
looks like there is really a need for it.
i myself like to switch themes as well.
i use sunset.nvim in my config to switch it from day to nighttime, and i wish there would be more options for even more time frames to change themes, like i had with https://github.com/abzcoding/lvim

i hope you make it easy to add new plugin support to it, and maybe accept PRs
would be nice to have 1 theme to rule them all :D

i tried the built in theme picker and its great.
bytecode themes sounds great, and with lazy.nvim it would be easy not to load colo (load by keys or cmd) and still use the theme

in summary, i lot of nice idea you have and hopefully you stay motivated to work on your rewrite.

@dharmx
Copy link
Owner

dharmx commented Jan 26, 2023

For sure man!

@dharmx dharmx closed this as completed Jan 26, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Improvements or additions to documentation question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants