Git Product home page Git Product logo

mateo.nvim's Issues

FEAT: Simplify statusline

Tasks

Refer to link

  • Choose colors to use for statusline (maybe more colorscheme agnostic)
  • Convert back to statusline per window
  • Create function to switch from global to local statusline

FEAT: Add Zettelkasten behavior for org files

  • Telescope search for each type of note (literature, fleeting and permanent)
  • Add workflow to convert refile note into a ZK note
  • Create org ZK templates
  • Forward and back link detection
  • Note linking keymap
  • improve highlighting of ZK related text objects

Road to v1.0

So, life is changing and I need a reliable tool for the next couple of years that doesn't consume my time tinkering. It's time to make Neovim my sharp axe, therefore I have decided to aim this config into its "1.0" version and stop having it as a "rolling-release" kind of thingy.

This config must be ergonomic for doing science, don't forget about that!

v1.0 of my nvim setup should be focused on building a config that provides the following:

  • Nice defaults for any problem encountered
    • Proper Treesitter and Mason config
    • Respect of language/tool specific config files (e.g. *.toml)
    • Nice navigation based on fuzzy finder (Telescope) and marked buffers (Harpoon or similar)
    • Git/GitHub as a first-class citizen (maybe add a Git-related plugin to the mix)
  • Feature-rich for literate programming
    • Add support for Quarto files
    • Add support for jupytext.nvim
  • Feature-rich for note taking and writing
    • Zettelkasten environment with links status, easy linking, and searching capabilities for content, tags, headers, etc.
    • Properly configure image.nvim
  • Feature-rich for scientific computing
    • Better REPL experience (inspired in nvim-luapad)
    • Add CLI, script and modules templates
  • Good interplay with external programs
  • Clean and minimal UI to maximize signal/noise ratio
    • Refer to issue #25 for more details
  • Feature-complete editing for relevant languages
    • Julia
    • Python
    • LaTeX and/or Typst
    • Markdown
    • Quarto
    • Bash
    • Makefile
  • Improve navigation
    • Better ]<key>/[<key> keymaps
  • Improve organization of config to comply with a more Vim-like config
    • Make use of after, plugin, ftplugin, etc.
    • Override defaults to improve out-of-box config
    • Implement helper functions for common taks
    • Implement plugins that are small enough to not depend on external resources

Add tooling for Python development

Since I started working in Protera, the need for proper Python development tools integration
is required in order to make my life easier. This issue intends to setup all the required
tooling properly so I can proceed to enjoy the goodies and forget of the common problems.

Tools needed:

  • Proper documentation generation (i.e. docstrings and readthedocs)
  • Formatter
  • Linter
  • Debugger
  • Code actions
  • Diagnostics
  • Completion

Most are already partially solved, but the plan is to have a robust setup that I can rely on
and forget. It would be good to use the guidelines proposed by Protera related to this tools
and make my setup reactive to pyproject.py files.

Massive UI rework

On the spirit of starting my blog and improving my config, this issue aims to
provide a checklist of the things I intend to modify for my base UI (later on I
want to add more things using Hydra and other plugins).

The list goes as follows:

  • Better colorscheme (customize default or plugin) 179ca07
  • "Normal" UI, i.e. the main view of Neovim
  • Statusline
  • Statuscolumn
  • Tabline (I don't know the real name of this, but the line where tabs
    would show)
  • Quick/Loclist

This are some starting points, maybe along the way I come up with more UI
elements I could modify.

Improve Zettelkasten behaviour

Tasks

  • Add keymaps to handle links (create, remove, change, etc.)
  • Implement sidebar with links a la Obsidian
  • Implement media inserter from clipboard
  • Create cheatsheet with Obsidian Markdown flavor
  • Add searcher for task tags
  • Add searcher for tags and note types

Implement a `defaults.lua` file

This file should contain tables and configurations for common things I use in my config,
e.g. borders for Telescope or other things

New MiniStarter

Stopped using MiniStarter for oil.nvim + telescope.nvim, but want to go back to using the
first. This issue intends in changing my current MiniStarter config.

Tasks

  • Remove sessions section
  • Add startuptime from lazy
    • require("lazy").stats().startuptime
  • Add number of packages loaded / lazy-loaded
  • Add number of packages available to update
  • Add cheatsheet section with useful keybinds

Compartamentalize colorscheme modifications

The modifications I commonly do to the colorschemes are also applied to other stuff, e.g.
oil.nvim or statusline. This issue plans to extract this behaviour and have it as a standalone
file in order to improve reliability of this.

Document all the things

Tasks

  • Add descriptions to the ideas and expected outcomes of everything
  • Generate Emmylua docstrings to my functions

Fix statusline

The currently implemented statusline works like a charm. It has the information I need, its
reactive for the different type of proyects I'm working on, etc. It has only 1 problem:

It has too much stuff!

This issue aims to solve this problema and streamline my statusline a little bit in order to
show only the completely relevant information depending on the proyect.

Some examples of the problems I have encountered:

  • If no LSP is available, don't show diagnostics
  • If file not in GH repo, don't show git status
  • If file not in GH repo, show shortened path to file (e.g. 2 last directories)
  • If window is to small, only show diagnostics if it makes sense
  • Move mode indicator to the left, since in the other side it doesn't get the love it deserves

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.