Feature request for nedit-like rectangular editing feature

Hi,

We are looking in the company I work for, for a replacement for nedit (https://en.wikipedia.org/wiki/NEdit).

I just saw that a little bit column editing is possible in atom with some extensions.
But the ones I checked do not allow thw full MAGIC nedit can do.

The thing is, that we often use the special unique rectangular editing
feature in nedit and I would like to ask, if this could be implemented
in atom.

To see it, you have to try it with nedit, which is in most linux distributions
still available, although it is no longer maintained.

These features I would like to request:

What do I mean with “rectangular block editing”?

Like in nedit, in atom it is possible to mark
a rectangular part of the text using some extension.

Within nedit, it exists very powerfull features with this marked block.

After with Ctrl+LM a block of the text is marked, you can

  • move the block with just MM (Middle Mouse) without keyboard
    and move away text which was at the target position of the movement
    press MM and move the text and release it to stop moving.

  • move the block with C+MM and replace the text which was at
    the position where you move th block to. The block at the
    origin gets replaced by white spaces.

  • copy the block with CS+MM (Ctrl+Shift+MiddleMouse) and replace the
    text which was at the position where you move the block to. The
    block at the origin stays the same, so really copy no deletion.

This is really powerfull and because we often edit large text-files,
where the data is aranged in column order, it is often used by us.

Isn’t this worth to make atom to be the one unique sucessor which
is enabled of this feature?

To show the capabilities of nedit I created a short 2min
screencast with nedit and uploaded it ot youtube:

Greetings

Alexander Bruns

Please see:

Hi, I had a look to this enhancement. I wrote my suggestion for an enhancement also after having a look to
these packages which do not have the same functionality but go tin the right direction:

  • select-rectangle
  • Sublime-Style-Column-Selection

The key message what is missing is not the possibility to mark a rectangle / box area or to have multiple cursors.

The key message is the functionality to move the text-block with mouse with insert, to move with overwrite and to copy it with insert or with overwrite just with mouse drag and drop.

See my video again, read carefully my description of the three modes. I in no other editor saw similar behavior so it seems to be unique in this special but very beneficial manner.

We tested jedit, notepad++, textpad. I think all the enhancements available for atom face similar functionality. But not this advanced different one.

I would suggest to an enhancement core or plugin named “nedit-style-box-editing”.

Hello.

I am impressed by the functionality you demonstrated with NEdit.

Packages in Atom that tries to ease editing of CSV files is probably the closest you will get to what you seek. Though I have not sourced any of those that I would recommend. I use a spreadsheet editor (LibreOffice) for such editing work.

I do understand you are looking for something more optimized for your work flow. Chances are slim to none that someone would volunteer to add into Atom the functionality you seek. Zero chances of core developers giving it their time.

You will have to code a package yourself to add the functionality into Atom. How is your skill at JavaScript? The API for Atom is documented here: https://flight-manual.atom.io/api/latest

Please let me know if you decide to code a package. I would be interested in using the functionality you are looking for.

Cheers.

Hi, is really an implementation of this doable in JavaScript? I did it long time ago. Rally long time ago. Ithought Skills in C++ are necessary for this Editor. What about developing such an extension. Is it then also available for vscode? The seem to be relatively close to each other and having the same code-basis somehow. I could imagine to give it a try.

No, most of the Atom specific functionality is implemented in JS. It is possible to use C++, and the underlying text buffer for open files is implemented in C++, but that’s not a concern here and probably not useful unless you are doing heavy computations, want to use an existing C/C++ library, or similar.

All of the public API, e.g., for the TextEditor class which tracks things like the cursors, is JS.

Ok I have to get to know to JavaScript again. What is the best to do that?

Do you have suggestions to good books?
Or PDF or online material?

Normally I stick on O’Reilly Literature, but the Javascript-Book is from 2011.
Is it outdated or is JavaScript just no longer developed?

Is mouse-reactions also tracked only in VS?

If I mark a rectangle area and only want to push the area around moving or copying the included text to the new location, it is not used by any keybaord-only shortcut. It is done directly after releasing the mouse-button. That is the unique behavior in nedit.

If you tell me this all can be handled with VS I will try to start working and lonring on it to bring it in.

Yes, the editor is just HTML, CSS, and JS. You can add event handlers for mouse down and such. You might like to check out the Hyperclick functionality of the atom-ide-ui package (which has been deprecated, but still works) for how it directly subscribes to mouse events on an editor.

Ok, I jst grabbed two JavaScript Books from our Library and start learning it. And tomorrow I will try to dig into the sourcecode of BOX-EDIT thats nearly one half of the way done in this extension. Keep you updated.

Is there something loke a discussion forum or similar to ask questions?