Comment by jameshart
2 years ago
Really nice execution of a simple but compelling idea. And the presentation on the site is solid too - I get what this is immediately, and I could see how it would be useful to me. A replacement for that Sublime text window I keep around where I paste stuff to keep for later, or to examine some JSON I just grabbed from somewhere!
I do find myself wanting more features, but of course the beauty of this is how simple it is, so you definitely need to strongly resist the urge to add and add as people suggest ways to 'improve' it. Apply the old 'every feature starts with -100 points' mindset (attributable to Anders Hjelsberg, I think?).
But that said, I'm going to give you some feature requests anyway :D
The thing I feel like I most immediately want from a tool like this is something close to the common SQL notebook behavior where you can select a few lines of text and hit F5 to run just the selection. Obviously only makes sense in language blocks which have a script engine associated. But the ability to write a chunk of JS or Python or shell and instantly execute it might be powerful. Where does it run, what happens to the output, etc? All good questions. No idea.
I'd love to see markdown blocks get formatted in place (still monospaced, just some bold and italic and stuff) - probably whenever the cursor is not focused in the block... though the potential shift in line wrap that would cause might be annoying. Maybe just have an edit/display toggle on markdown blocks to flip them into formatted mode. Additionally, making markdown-formatted tables elastically align in place while editing them would be a huge quality of life boost....
... Which (since formatting markdown tables correctly amounts to the same thing) makes me think this could be an opportunity to implement a classic 'elastic tabstops' plain text mode... the fact that the tab key only increases line indent is... an interesting choice that reduces the need to indulge any tabs vs spaces discussions - though obviously it's possible to paste in text that contains tabs even if you can't type them. Coming up with something better to do with inline tabs than just 'snap to next multiple of tab width' is tricky, but I would suggest maybe enabling 'elastic tab' rules: https://nickgravgaard.com/elastic-tabstops/ - because this is a place that's meant to handle copy/pasted text and stuff natively typed in, NOT a place that is expected to open and correctly format files.
> I do find myself wanting more features, but of course the beauty of this is how simple it is, so you definitely need to strongly resist the urge to add and add as people suggest ways to 'improve' it.
Definitely! I'm happy that you preface the feature requests with this comment :).
I've thought about the possibility of some kind of evaluation of code blocks, but at the moment I'm not planning to add it. Mainly because of the questions you posed :).
Heynote currently gets most of its Markdown features (basically everything except the checkboxes) "for free" from CodeMirror's Markdown mode (https://github.com/codemirror/lang-markdown).
Regarding tab size, I realize that it's something that I'm going to have to add settings for. Up until now, me and a few friends have been the only users of Heynote, and it seems like none of us favors tabs before spaces (or at least no one has asked me to fix it).