savolai / regex-you-can-read

Regex You Can Read - teamwork repository
GNU General Public License v3.0
6 stars 0 forks source link

Keyboard UI, drag and drop Email w/Sam & Olli #5

Open samsullivan opened 8 years ago

samsullivan commented 8 years ago

Olli Savolai: Biggest challenge is handling importing/exporting/rendering expressions (AKA creating a robust regex parser); needs to be multi-dialect.

Sam Sullivan: I doubt any existing regex library is robust enough for confidently using with multi-dialect expressions; probably makes sense to work on this from scratch. Biggest concern is creating a good UX; where is the line drawn between features that actually involve the end-user writing literal expressions and utilizing the GUI to create expressions without knowing regex...would drag & drop be a good way to bridge the difference between literal vs. GUI? What should the scope of the FOSS project be -- web app, IDE, etc.?

OS: Main idea behind the UX is the idea of a ctrl+space search menu. Typing without this menu, would create literal matches for characters. Maybe, in the future, add more functionality with around \ to bridge the gap between novice and advanced regex'rs. Usability testing (ctrl+space is MVP for testing)!!! Web app makes sense; maybe IDE plugin(s) in the future. UI would be great to include "visual" and "real" expressions at the same time; good for learning, but requires live importing/exporting.

SS: Maybe there's a way to take the ctrl+space idea one step further; either an always-searching contextual menu (so typing literals would show optional choices for things like character classes, etc.) or a fixed menu on the sidebar...probably too complicated for testing in an MVP. Live import/export is crucial, in my opinion, and shouldn't be too hard once the backend regex engine is complete; not all dialects are necessary to start usability testing. First steps: start creating a library to understand data structures for importing/exporting one dialect (PCRE), build a dictionary that relates the data structures to searchable terms for novices building expressions, and then work on a simple GUI with ctrl+space menu using the dictionary and the library doing live exporting for usability testing.

savolai commented 8 years ago

Thanks, that's just about it. Related discussion here https://medium.com/@savolai/to-me-escaping-sequences-are-a-part-of-the-regex-problem-not-so-much-the-solution-357e523bdc5f#.1eeufs5ou

and in our wiki [[Ideas]] page

savolai commented 8 years ago

Realized that you already mentioned the fixed menu on the sidebar here, too.

Indeed, this could be done if the UI had a sidebar that provided options dynamically depending on what the user has just done. (It seems that if something like a dropdown - that appears at user cursor location - would appear at each keypress, that would be pretty distracting, if I am catching your drift.)

I am a bit careful in terms of facilitating user adoption and learning for different audiences. Just like the syntax makes it easier to read regexes, I believe it is possible to find the right mix of panels available for different users.

So do I understand correctly that we agree on the following, for the current MVP goal?