Code Monkey home page Code Monkey logo

kat.nvim's Introduction

Dotfiles

Neovim
i3
polybar
rofi

Neovim Plugins

kat.nvim - Programmatic warm blue colorscheme
Kreative - Colorscheme DIY backend - in progress
obluavim - Filetype plugin for TES 4 Oblivion - in progress

Vim plugins

vim-startify - A fork of Startify that always updates padding for dynamic padding control
obse.vim - Syntax files for TES 4 Oblivion
kat.vim - Warm blue colorscheme
Obli-Vim - Deprecated filetype plugin for TES 4 Oblivion

Other

Oblivion language reference - A language reference for TES 4 Oblivion
katcros-fnl - Fennel macros
tree-sitter-obl Tree-sitter grammar for the scripting language of TES 4 Oblivion

kat.nvim's People

Contributors

katawful avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

joehannes-ux

kat.nvim's Issues

Testing jamboree

There is a massive lack in testing and assertions, this needs to be fixed

Global statusline

This issue is about the global statusline feature recently added to NeoVim (i.e. set laststatus=3). While I prefer to keep my plugins based on NeoVim stable, I do know that this is a pretty big feature when it comes to colorschemes. If anyone is on 0.7 nightly currently and would prefer no bg color on window separators integrated into this colorscheme, let me know and I will add it into main as an option

16 color support

Since I have terminal support already, having 16 color support shouldn't be too hard to add

Progress:

  • 16 color theming
  • kitty output
  • alacritty output
  • rxvt-output
  • konsole output
  • GTK output
  • code clean up
  • documentation updates

Functional refactor

Most of this project was started before I knew much about functional programming, and thus has a lot of bad usages

Switch to json for exporting color files

Neovim's json integration is pretty good, I have used it in my dotfiles for exporting session data. vim.json.encode and its decode function pretty much perfectly deals with Lua tables

Currently, the exported files are fennel files built with aniseed that essentially just go through the tables I export and run them. This is really bulky, and requires a rather annoying build scheme on top of requiring fnlfmt to make the files valid before I can make them. With json, I can simply import each json as a raw table and pass it through my batch highlighting file

Depends on #16

Export table of colors and or color-functions for 3rd party access

Currently there is no way to actually interface with this colorscheme. If someone wants to add new support, say for a statusline, they basically just have to guess on how to do that. I would like to be able to give end users free access for their own uses, which would also allow simpler integration into this colorscheme as well

It can be vaguely modeled off of how I did Kreative

v1.0 release

Encompasses the testing needed to make sure everything is ready for version 1.0

  • Read through docs for grammar and clarity
  • Test rendering for supported versions
  • Test terminal support
  • Create tags

Dynamic color calling overhaul

Currently, dynamically changing colors can be set with vim.g.kat_nvim_stupidFeatures. This was both a bad name, and poorly implemented.

Suggestions for change:

  • Remove vim.g.kat_nvim_stupidFeatures
  • Implement dynamicism to color table directly
  • Simple function to adjust colors

Rendered color file for Neovim

Since this scheme is dynamic, it also means its a bit slower. It'll be a lot faster with Neovim 0.7, but I would like prerendered colorscheme files eventually. Tokyonight does a similar thing

Terminal themes pass 2

Merge light and dark variants

(N)Vim reloads colorscheme on background option change.

When a color scheme is loaded (the "g:colors_name" variable is set) setting 'background' will cause the color scheme to be reloaded. If the color scheme adjusts to the value of 'background' this will work. However, if the color scheme sets 'background' itself the effect may be undone.

As such, it's sufficient to check for vim.o.background value, and select corresponding palette. This would allow one to select colorscheme kat.nvim or colorscheme kat.nwim and switch background when, for example, sun sets or rises.

Specifically, I believe this would be the core change in https://github.com/katawful/kat.nvim/blob/main/fnl/katdotnvim/main.fnl#L23 (first time dealing with LISP code, please be kind):

  (if (= vim.o.background "dark")
      (do (if (= katContrast :hard)
              (let- :g :colors_name "kat.nvim")
              (let- :g :colors_name "kat.nwim")))
      (= vim.o.background "light")
      (do (if (= katContrast :hard)
              (let- :g :colors_name "kat.lightenvim")
              (let- :g :colors_name "kat.lightenwim"))

Better unit testing

Keyed tables in Lua do not sort, this makes unit testing very tricky. I absolutely need this for ease of developing this plugin, and need to find a way to achieve this

Dynamic JSON fallback

Currently, this theme only falls back to functional colors over JSON colors if no JSON colors are found at all. This is pretty static, and should instead check the currently desired color file to see if a JSON exists, then fallback just for that file

Code cleanups

There's a fair bit of bad documentation throughout, as well as usage of old macros

Remove background/foreground hardcoding

Current all 12 foreground and background colors are predefined in a table. While this works fine for the colorscheme now, I would like to replace it with something that would generate them on the fly. This would allow me to be able to use this for a template for more themes with ease

Variable deprecation warnings

vim.g.kat_nvim_dontRender and vim.g.kat_nvim_compile_enable are not needed

Also potentially deprecated vim.g.kat_nvim_commentStyle as overrides now exist

Neovim 0.7 features

Neovim 0.7 will add 2 major new features:

  • Lua based user commands
  • Global namespaces for highlight updates

Both will need to be added once 0.7 is out

Various plugins

coc.nvim

popular statuslines: (airline, galaxyline, feline, bufferline, lightline)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.