Coder Social home page Coder Social logo

zenith's Introduction

Zenith - A Text Editor Written in Zig

Features:

  • Syntax Highlighting (poorly)
  • Terminal Support (poorly)
  • Supports Linux and MacOS(?)

Controls:

  • Navigation:
    • Use arrow keys to navigate around the text
      • Ctrl + arrow keys for quicker navigation
  • Line Manipulation:
    • Alt + (Arrow Up/Down) to move a line
  • File Operations:
    • Ctrl + O to open a file (relative from the current working directory)
    • Ctrl + N to open a new empty tab
    • Ctrl + S to save a file
  • Tab Management:
    • Ctrl + K to move to the left tab
    • Ctrl + L to move to the right tab
    • Ctrl + W to close the tab
  • Editing:
    • Ctrl + Z to undo the last change
    • Ctrl + D to duplicate a line
  • Search:
    • Ctrl + F for file-wide searching
      • Press Escape to exit the Finder
      • Press Enter to continue searching
      • Any other character will exit the Finder and use the character on the Tab
  • Terminal:
    • Ctrl + P to open it
  • Exit:
    • Press Esc to exit the editor, the terminal (Ctrl + P), File Explorer (Ctrl + O) or the file-wide searcher

Config

By default it is stored in $USER/.zenith.json, you can override this by setting the $ZENITH_CONFIG_PATH Environment Variable.

The config file is in json format, here are the options:

{
    // Defines the horizontal line scroll behaviour,
    // "Line" [Default] will only scroll the line (kind of like nano does)
    // "Tab" will scroll all the visible lines 
    scrolling: "Line" | "Tab" = "Line"
};

To-Do:

  • Add more config options
    • When to scroll the line option in Config
      • Middle, MiddleEnd, End (?)
    • Ctrl + O behaviour
      • Use .vignore only
      • Use .gitignore only
      • Use both?
      • Use only (number) levels deep (.gitignore or .vignore or both)
  • Colors to the terminal (Ctrl + P)
  • .gitignore support for Ctrl + O
  • Implement Ctrl + Y for Redo
  • Text selection
    • Ctrl + A(?)
  • Implement proper Syntax Highlighting and code formatting
    • Tree-Sitter?
    • LSP?
  • Handle long box queries
  • Refractor input parsing (src/input.zig)
  • Refractor the code (to be more readable)
  • Resolve all To-Do's iside the codebase
  • Clipboard support

The tests were conducted on a Linux "kitty" terminal with Bash. Ctrl + Backspace does not work in the VSCode Terminal; This is a issue in the third party utility (VSCode).

zenith's People

Contributors

trnxdev avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.