Giter VIP home page Giter VIP logo

quantumvim's Introduction

Hi, Iโ€™m @quantumfate

  • when it exists, I try to do it in neovim
  • it's not always a waste to reinvent the wheel
  • I read social-political books

Interests:

  • Embedded systems
  • Overcoming Outside impurities
  • Networking
  • Hardware
  • System automation

Langauges/Tools:

  • lua
  • python
  • graphql
  • c/c++
  • ansible

quantumvim's People

Contributors

quantumfate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

quantumvim's Issues

[Feat] Harden all dependencies in install script

As a developer/user I want to have a working QuantumVim configuration out of the box. Therefore dependencies should be installed on the system on first time setup should they not be available.

  • udate the script to install dependencies
    • detect tools such as nvm for npm

Dependencies:

  • ripgrep
  • npm
  • node

[Feat] User config plugin generation

As a user I want to be able to create plugin configurations on the fly that are easily picked up by the runtime logic.

  • update genconfic.sh to create a user config plugin scope
  • implement a seperate template repository for the configuration
  • implement a configuration template for each plugin that provides plugin options, lazy specs and a strategy (#5 ):

General:

local M = {}

-- global options for all user configurations
M.strategy = "override" -- | "keep" | "ignore"
-- these can override the behavior
M.plugin = {}
M.spec = {}

return M

Plugin specific:

local M = {}


-- these can override the behavior
M.plugin = {
    __strategy = "override" -- | "keep" | "ignore"
}
M.spec = {}

return M

[Feat] Runtime path modifications and user config after directory

As a quantumvim user I want to be able to use my personal configuration as well as my own scripts in the runtime path.

  • Update bootstrap.lua to reflect necessary rtp modifications
  • Update manager.lua to install plugins in the new data directory (decoupling plugin installation from runtime files and user configuration)

[Feat] Hook user language configuration in the language logic

As a user/developer I want to be able to inject my language specific settings into the present language algorithms without having to make changes in quantumvim's runtime files.

  • factor any settings and conditional parameters in the language section out to a confic file (eventually split logically into pieces such as null-ls, lsp and dap in a modular fashion to support future deprecation)
    • dap
    • null-ls
    • lsp
  • provide after and ftplugin folder in the user configuration (NOTE: the runtime path for quantumvim's internal ftplugins has to be placed before the ftplugin folder of the user #7 )
  • update the template generation
  • keep documentation up to date

[Feat] Move qvim to the state directory

As a developer I want to have seperate directory for configuration alongside quantumvim.

  • add a new variable QUANTUMVIM_RTP_DIR with the new rtp location in ~/.local/state/qvim
  • update the scripts to reflect new xdg variables
    • bin
    • install
    • run_test.sh
  • update the tests according to the described changes
  • update global variables and functions

[Feat] implement user configuration

As a user I want to be able to create user configurations for specific scenarios as well as for different machines. Managing these configurations can be a nuisance when there is no easy way to integrate them into the runtime file.

  • update the install script to generate a new user configuration (with a prompt)
  • IMPORTANT: update existing user configurations
  • a template repository or something else

The configuration should provide various ways to alter the runtime of quantumvim:

  • general settings
  • plugins
  • languages
    • dap
    • lsp
    • null-ls (we use this until there is something new)

[Feat] Configure structlog properly as quantumvim dependency

The code of quantum vim has grown too big so has the amount of log messages. Due to the use of only one logger factory message reports became redundant. Logging an entry at the error level for example causes the message to appear in any sink that is below error as well. Therefor each sink causes an entry to be logged.

  • add structlog as a dependency (Has to be in runtime path from the start #7 )
  • update the install script to dowload structlog on install in the pack directory
    • ensure lazy can pick up structlog for updates
  • implement multiple log factories as logical pieces
  • provide multiple log files as logical pieces (eventually seperated in directories, depending on the amount of sinks/factories)

[Feat] Add a log diroctory

As a developer and user I want a dedicated Log directory that builds on the same logic used to define other logical pieces like config, rtp, etc.

  • update the scripts to reflect new xdg variables
    • bin
    • install
    • run_test.sh
  • update global variables and functions
  • make the changes reflect in structlog
  • make the changes reflect in commands and autocommands

Depends on #5

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.