Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A glance into web tech-based text editors’ text management (ecc-comp.blogspot.com)
99 points by hyperhopper on Nov 11, 2016 | hide | past | favorite | 20 comments


If you are interested in this kind of stuff, Craig Finseth's The Craft of Text Editing is a great read: https://www.finseth.com/craft/


That will make a good weekend read thanks! Others may be interested in Data Structures for Text Sequences by Charles Crowley[0] which describes Piece Tables. This is the basis for the Vis editor[1].

[0]https://www.cs.unm.edu/~crowley/papers/sds.pdf

[1]https://github.com/martanne/vis


I wish this article had also discussed DraftJS and QuillJS, which both use much more involved text management logic. Draft is powered by Immutable.js ( https://facebook.github.io/immutable-js/ ) and Quill is powered by Parchment ( https://github.com/quilljs/parchment ).

I've been creating a hobby text editor for myself and have tried almost every text editor library on the planet, I think Draft and Quill are the best.


"There is a huge opportunity here to contribute to Atom and make it way better than it already is. Write a piece chain text buffer implementation. Write a gap buffer implementation. Anything but using a regular array like this."

Is it really that easy? Why aren't they using those data structures already?


Because it doesn't matter with modern day CPUs with typical file sizes and typing speeds.

Worst case scenario for a plain array is if you insert to the front of the array where it has to shift everything down one. But even if the file is on the order of several megabytes, this will still finish in milliseconds at most and the typist won't notice it.


What a waste of fossil fuel energy!

What a waste of laptop battery!

It can be really hard to make software efficient, sometimes there are easy wins.. seems odd to not just do it.

An insert or delete from (e.g.) a rope is very cheap and as they are immutable can make some other features very easy... saves copying megabytes...


I'd imagine that only having a partial buffer available makes it really hard to do text highlighting, auto completion, linting, etc.


Key takeaway from the article: "One thing I'm taking away from this is if I ever need a web-based source code editor, hands down I'm going with CodeMirror."


Total noob here but laughed at FARTF05 in assembly code. Would like if i got to code up FARTS in my daily job. What does that code do?


It's a label you can jump to. I guess FARTF stands for the function name: FcAppendRgchToFn. Then the number is used to differentiate each label.


I long for the day that Microsoft starts transitioning to C# on .NET Core for vscode. They made the right choice using typescript on the electron platform, but the difference in efficiency between C# and js is night and day. I've heard it's in the long term plans, but how that'll work I have no clue.


According to this, early versions of MS Word used a piece table: http://1017.songtrellisopml.com/whatsBeenWroughtUsingPieceTa...


Neat article and interesting to see some source code.

Too bad, blogspot on mobile is a pain in the butt.


For those wondering why the heck you would make a web based text editor: browsers are actually very good at displaying text, and javascript is good at handling text.


Good article, and a really cool blog. Try to set it up for mobile also. Thank you.


What is particularly wrong with mobile? The only thing seems to be the GitHub Gist pastes.


That headline hurts my brain. Awful start. Why not "how web based text editors manage their text" or "a glance at the text management of web based text editors"


yay! I'm helping! (the original headline was the same as the article title "A Glance Into Web Tech.-Based Text Editors' Text Management")


The new title is not accurate though, since those editors are not "web-based", but indeed "web tech-based" (based on Chrome), or perhaps simply "HTML/JS-based".


I gave up reading it after my sixth sheep got sick.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: