Code Monkey home page Code Monkey logo

riva's Introduction

riva

A vim-like text editor written in Rust!

Rationale

Text editors come and go, but they are and always shall be a necessity in the world of software development. While we are truly spoiled for choice for good IDEs and text editors, I wanted to try my hand at building a simple and extensible text editor that anyone can build atop of.

To that end, I have considered what exactly is "necessary" for a text editor. Of course, the ability to open files, edit, and save them is paramount. To this end, I believe there are many editor operations that can be pre-built into the editor to make writing anything much easier and less confusing. I believe that the Vim philosophy of keyboard-centrism is a very strong place to start. There are also plenty of Vim and Neovim plugins that add a lot to their existing capabilities. I would like to include those things.

However, it is very easy to get lost in a sea of features and builtins. Language parsers and debuggers aren't going to last forever and may be replaced by better software. File management, version control, and scripting languages are all ephemeral and changeable things. What we have now is great, but there are no guarantees that anything will be the "standard" for the next twenty, or even ten years. These will not be built into the editor. But I will provide a number of plugins that provide certain features so that anyone can immediately get started. That being said, all is replaceable.

Finally, while I am used to the way that Vim and Neovim organize commands in normal mode, I have always wondered by only one mode should exist. That is, certain editor functions may be better served grouped together under different modes. This may help with code organization, functionality, and a stronger understanding of what exactly is happening in the editor at any point in time. That being said, I wouldn't like to stray too hard from normal mode and take everything away from it. Baby steps. I'll move in this direction and see if it all makes sense. If not, then I don't mind letting it go either.

I am not and never will be some genius developer who can build a tool that does everything right. To the extent that Riva can edit text, I will do the best I can. To the extent that I can make it look nice and simple to configure, I will try. Hopefully others can take up my idea for what this editor should be and follow along and build something that is friendly, functional, and fun to use.

<3

riva's People

Contributors

marcybelardo 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.