mamot.fr is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mamot.fr est un serveur Mastodon francophone, géré par La Quadrature du Net.

Server stats:

3.3K
active users

#HelixEditor

3 posts3 participants0 posts today

I have roughly 30 plugins in #Vim #NeoVim. #HelixEditor covers the functionality of almost all of them. It doesn’t have the power of vim-abolish; and it’s maybe got a little ways to go on working with #Git. Abolish seems too complicated and special case to fit into the core of Helix. I don’t use it often, but when that’s the tool you need, Abolish is the only thing that will do the job.

Continued thread

So it does look like the TypeScript language server has a limit of 4MB source size where it disables type checking (and actually shows an erroneous error stating that exports that exist in the file do not exist) for files that are imported but not open in the current workspace/session.

Still not sure if this is documented anywhere or not (haven’t been able to find it, if it is).

99.99999% of the time, unless you’re doing niche stuff like I am, you won’t run into this.

Workaround: should you have such a large file, e.g., with a large generated object, try and refactor to split it up into multiple files and rejoin it a separate file. The actual object size/memory usage isn’t the issue, it’s the file size.

github.com/typescript-language

I ran into an issue while creating and exporting a constant object that holds component versions of the ~1,500 icons in the Phorsphor icons library and I’ve created the simple reproduction below: D...
GitHubServer fails on import when exported object constant has too many entries/is too large · Issue #951 · typescript-language-server/typescript-language-serverBy aral
#TypeScript#max#lines

Been using #HelixEditor full-time several days in a row now. Editing is getting easier. I’m remembering how to do things better and faster. I have three language servers installed now: #Python, #RustLang, and #Markdown. I love seeing errors and warnings right in the editor. I love being able to run the formatter at will. I love being able to use tree-sitter nodes as textobjects. I still have some things that catch me every time. Like when your cursor is sitting on the end-of-line position in normal mode: the difference between 'a' and 'A'. And I’m still not used to going into insert mode while there is a selection growing the selection as you type.

I’m very far from a Helix expert, and I disagree about some things; but I really feel good about this editor.

Replied in thread

@ainmosni @bernh In case you're thinking about giving Helix a try, make sure to start off with the tutorial (run it from the command line with the --tutor argument).

As for getting on top of the key bindings in Helix, I created a crib sheet to help me remember/find the most vital and most interesting controls:

bobulous.org.uk/coding/Helix-c

(Definitely best viewed on a big screen.)

www.bobulous.org.ukHelix crib sheetA quick reference for the key bindings and modes used in the multi-modal text editor Helix.
Replied in thread

@galdor I see your point, and idiom in #RustLang agrees with you. Import such that at the call-site you say `module.identifier()`.

On the one side (the side that disagrees with you), my IDE typically tells me where naked `identifier` is defined (either #PyCharm or #HelixEditor in my case); and it’s the most common case in #Python code I have read (and I’ve been programming in Python for decades).

On the other side you’re not always hovering as you read over big blocks of code. Naming the origin module is informative.

In the middle, it’s not needed for a lot of things, especially stdlib and common packages. It seems like a fine line and I’m not quite certain what the best behavior is.

I’m liking #HelixEditor more and more each day. I think it has a ways to go; and I’m not nearly as fast in Helix as I am in Vim (mostly because I keep stopping to look stuff up) but I see no reason, with _my_ workflow, not to use Helix as my daily driver. (This after more than 20 years as a #Vim and then #NeoVim user). The LSP and tree-sitter stuff are absolutely compelling.

If you are constantly SSHing into machines you don’t control; and that’s your whole job — you probably have a different answer.

Replied in thread

@art I’m a long time #Vim and #NeoVim user. In fact, I’ve given talks on them. I use Vim key-bindings everywhere I can; especially #IdeaVim in #PyCharm. I’ve been using #HelixEditor lately. The key-bindings come from Vim, but aren’t about playing code golf. They’re about being easy to use and remember. When you start a multi-key sequence, there is typically a menu that pops up showing you what the next key can be. The big difference, though, is that in Helix first you make a selection, and then you act on it.

Helix is easier to use than Vim/NeoVim. I’m just a Helix beginner especially compared to my skills in Vim. Helix is absolutely worth a try. If it’s Vim for you, then it’s Vim. But Helix might offer you something familiar but simpler.

#Vim #NeoVim has #Surround plugin. #HelixEditor has it built in. The Helix version doesn’t do "surround with function". I started a discussion on the Helix Discussion board, but privately forked and cloned and started experimenting. Just when I finally got a response in the discussion, I finally had close to a working prototype.

github.com/helix-editor/helix/

The response showed the keystrokes to do it in Helix as it is now, and they were reasonable. Using Nik Revenco’s way was a better match for Helix’ "vision" as expressed in their Vision.md doc.

I learned a lot from prototyping a command (in #RustLang #Rust) within Helix (in particular, how to make a prompt in the editor and get a string from the user was a big thing for me), but I ended up throwing it away. I was wrong.

I’m really starting to like Helix, but like Rust, I have so much to learn. Still experimenting, still learning for both.

I checked out #HelixEditor on a whim last night by working through `:tutor` and I think I like it! It truly does "play" like a fully-loaded Neovim w/ IDE-like integrations out of the box.

I never really got deep into learning Vim operations, just the basics, so it's difficult for me to compare what's new and different about Helix vs Vim outside of the obvious. At any rate I can see how powerful it can be, once I manage to fit all the key commands in my head that is.

I think I'll keep using it for a bit as my daily-driver to see how it fits.

Because of the editors I use ( #NeoVim and playing with #HelixEditor ), I use and like a specific change to my keyboard. The CapsLock key is instead Escape when you tap it, or Control when you hold it with any other key.

It’s easy to make my #KinesisAdvantage360 do this. So it’s frustrating when I have to use the built-in keyboard on my Windows laptop. But I found this:

youtube.com/watch?v=fSfuHspXy5

gist.github.com/108anup/ecd891

I see #HelixEditor is getting a built-in language (eventually, I don’t know when, and I don’t have links to information about it). The language will be a #Scheme called Steel. Steel is inspired by #RacketLang and written in Rust. I’ve written small programs in Racket and don’t much like it. I find them hard to understand when I come back to them later. Probably that’s just lack of experience. Adding a built-in language is a really good thing. Picking a Scheme is almost certainly a great choice, despite my feelings. If I do settle on Helix and if I do end up scripting it, maybe I’ll end up liking Scheme more. As far as I’m concerned, this addition to Helix can’t come soon enough.

Hello masto,

When trying out #helixEditor I really liked that smapping `x` increase the selection one line down. I would like to do the same in #NeoVIM

How can I map a key **only** in "linewise visual mode", but not in "block visual mode"?

:linewiseonlymap X j

ie. `VVVV` would linewise select 4 lines, but `V<C-V>VV` would first do a linewise selection, then go to block selection, then go back to linewise selection, and finally the last V will select a second line.