#Vext, an intuitive but (hopefully) powerful terminal text editor

1 messages · Page 1 of 1 (latest)

gloomy iron
#

Written in C++ without fancy libraries like ncurses. It should be familiar to anyone used to typical GUI text editors, and has some nice features like multiple cursors. Some of the more "basic" (tho still a nightmare to program) features it has right now are undo/redo and selecting text. I plan to add copy and paste, auto closing brackets/quotes, find and replace, basic syntax highlighting, etc. I also plan to make many aspects configurable.

midnight light
#

Did you forget the link :v

midnight light
gloomy iron
midnight light
#

Wait, you don't know how to use GitHub yet? Do you know git or are you a beginner programmer and you're making a text editor as one of your first projects :0

#

If so that's very cool

gloomy iron
# midnight light In the mean time - why did you want to make a text editor? - why C++ <:dawae:121...

I wanted to make a text editor because other ones have annoyed me with their questionable choices. That's where the name comes from. It's a pun on "vexed", b/c I've been vexed by other text editors.

C++ b/c it's the only language I know well enough to make a project like this

Yes, I've looked at other TUI text editors (not edit tho), and most seem to be either way too hard to learn or just lacking in certain features (and/or have weird defaults)

gloomy iron
midnight light
#

Lol I see

midnight light
#

It's very simple and, despite being written in Rust, the binary is very lightweight :p

#

Do you use C++ in an OOP way, or in a kind of procedural C with a bit more features way? And also do you use a lot of templates or something

gloomy iron
#

I'll look into it
Currently, my favorite TUI text editor is Micro. It's like Nano but way less weird, and generally a bit more powerful.

gloomy iron
midnight light
#

i c

#

Well, if you need help setting up a GitHub (or any other (probably ethically better) git hosting servers) and SSH and GPG keys and stuff like that, people in this server will gladly help xd

gloomy iron
#

I'll probably get into GitHub soon. Already have an account, but haven't actually done anything with it yet

maiden chasm
#

Cool project- what are your 'highest' goals with it?

gloomy iron
#

So I kinda gave up on this project a while ago. The code was not my worst, but it was not thought out very well, making certain features kinda impossible to develop without rewriting major parts of the code, which I didn't feel like doing.

#

Biggest issue was that I was just using C++ interacting directly with the terminal, meaning it was a nightmare to get working, I barely understood what I was doing, and it would almost certainly not work on 99% of people's computers

#

However

#

I've restarted from scratch!

#

In Rust this time, using an actual library to do all the scary stuff for me: Ratatui

midnight light
#

lesgoooooo

#

-# (I mean I've never used a TUI lib but it probably works ok)

gloomy iron
#

It's kinda insane how much faster development has been now that I'm using a proper tool

#

In 1 day I've done like 30% of what my entire raw C++ version had after months.

#

Also will support utf-8 unicode, unlike my C++ one

#

Btw, I highly encourage anyone interested in making TUI applications to try out Ratatui. It's a lot simpler than I expected, and just so easy to set up a complex layout for all the parts of your application

#

Anyway, it's 3:30 AM. I've never been so excited to continue working on a programming project

exotic rune
gloomy iron
#

reached the point where I can open Vext's source code in itself

#

btw, ALL of Vext's source code is in main.rs rn, so it only took 158 lines for me to reach this point

gloomy iron
#

line numbers exist now

gloomy iron
#

Can scroll now. Also started designing a system for configurable themes. Also started making a scrollbar.

#

I know Ratatui already has built in scrollbar widgets, but they don't work properly by my standards

#

E.g., Ratatui's scrollbar can change length just from scrolling (probably due to how it rounds the position of the top and bottom of the scrollbar). I don't like that.

gloomy iron
#

woah it worked first try

gloomy iron
midnight light
gloomy iron
#

I added cursors

#

They just move around rn

#

Spent a decent chunk of time refactoring the code into several modules instead of everything being in main.rs

#

Working on being able to actually type

gloomy iron
#

Got sidetracked remembering I want to support UTF-8

#

But now I've fixed the parts that didn't support that

gloomy iron
#

multiple cursors typing

gloomy iron
#

Btw I'm still working on this

#

Undo/redo system kinda threw a wrench into my multiple cursor system, but that's finally all fixed

#

Currently working on a pop-up system for things like warning you when you try to quit without saving.