Commit Graph

188 Commits

Author SHA1 Message Date
Jeff Avallone
80ec29cd6b Refactoring parser code to remove global state
This allows canceling an in-progress render and moves some of the
rendering code to a more appropriate location.
2014-12-18 11:13:15 -05:00
Jeff Avallone
7de0a6490a Adding code to track visualization lifecycle events 2014-12-17 19:54:58 -05:00
Jeff Avallone
c64e48946e Adding support for canceling a parse/render 2014-12-17 19:24:33 -05:00
Jeff Avallone
bc351bc9fc Removing unnecessary render step 2014-12-17 17:18:46 -05:00
Jeff Avallone
17a95392a8 Refactoring property definition code 2014-12-17 16:04:55 -05:00
Jeff Avallone
a0f145ab3d Removing unnecessary atype attributes 2014-12-17 15:48:06 -05:00
Jeff Avallone
020feae951 Fixing flag display 2014-12-17 15:28:04 -05:00
Jeff Avallone
f93388dec0 Converting getAnchor into a property 2014-12-17 15:24:27 -05:00
Jeff Avallone
155ad51d58 Turning container into a property 2014-12-17 15:14:33 -05:00
Jeff Avallone
c5c98ad62f Simplifying node proxy code 2014-12-17 15:12:04 -05:00
Jeff Avallone
dd6eac2b4e Simplifying literal merging code 2014-12-17 14:56:02 -05:00
Jeff Avallone
e362a54551 Converting methods into properties where possible/reasonable 2014-12-17 14:44:48 -05:00
Jeff Avallone
4af524112e Moving properties out of the way 2014-12-17 12:07:25 -05:00
Jeff Avallone
57ccd4b0c5 Refactoring to enhance the SyntaxNode extending 2014-12-17 11:53:04 -05:00
Jeff Avallone
6322b48f31 Removing debugging code 2014-12-17 10:06:03 -05:00
Jeff Avallone
484abdbb0c Explicitly specifying image dimensions 2014-12-16 23:22:33 -05:00
Jeff Avallone
c9754de8c4 Fixing broken download link 2014-12-16 23:13:55 -05:00
Jeff Avallone
b934423d11 Finishing tests for Regexper module 2014-12-16 19:00:27 -05:00
Jeff Avallone
5537928a80 Starting work on spec files 2014-12-16 16:08:36 -05:00
Jeff Avallone
f69d24e302 Tweaking styles 2014-12-16 15:46:56 -05:00
Jeff Avallone
91404ccf26 Replacing the setState method with a property 2014-12-16 13:34:02 -05:00
Jeff Avallone
dbae70ce52 Updating main JS to not run if not on the index page
This is to get the karma tests in a position where they can be written
2014-12-16 13:33:20 -05:00
Jeff Avallone
8651fd0d9b Adding some nav items 2014-12-16 11:05:13 -05:00
Jeff Avallone
22ade8846d Hiding results element when told to display an empty expression 2014-12-16 10:22:49 -05:00
Jeff Avallone
8cc2f29aec Adding regexp flag indications 2014-12-16 10:14:37 -05:00
Jeff Avallone
ca0e6fdfa9 Allowing newlines in regexps 2014-12-16 10:01:17 -05:00
Jeff Avallone
4195a101a2 Fixing some small styling issues 2014-12-16 10:00:57 -05:00
Jeff Avallone
3d42894ac2 Replacing some calls to _.each with new for loops 2014-12-15 22:11:12 -05:00
Jeff Avallone
26bf0fcd52 Converting some string generation to templates 2014-12-15 22:01:55 -05:00
Jeff Avallone
84d3fe797d Removing unnecessary binds 2014-12-15 22:00:24 -05:00
Jeff Avallone
d22ab35b68 Converting uses of Snap.format to use template literals 2014-12-15 21:51:17 -05:00
Jeff Avallone
db62743d54 Fixing various IE-related issues 2014-12-15 18:06:16 -05:00
Jeff Avallone
5a96955419 Tweaking text spacing 2014-12-15 15:29:13 -05:00
Jeff Avallone
dea4011530 Adding progress indicator 2014-12-15 15:19:37 -05:00
Jeff Avallone
f4ea4d6da6 Adding greedy indication 2014-12-15 12:43:13 -05:00
Jeff Avallone
c0eed07d9b Adding repetition labels 2014-12-15 12:29:47 -05:00
Jeff Avallone
b4b999d7a6 Removing support for "{,n}" syntax
Don't know I missed that this isn't supported in JS
2014-12-15 11:11:17 -05:00
Jeff Avallone
67a71289bc Getting rid of GitHub ribbon in exchange for a simple link 2014-12-15 11:05:37 -05:00
Jeff Avallone
deb95ef123 Removing duplicate elements from charset 2014-12-15 10:19:18 -05:00
Jeff Avallone
b103982273 Changing the cursor used on the "Display" button 2014-12-15 10:12:30 -05:00
Jeff Avallone
dab0dab9b1 Encoding regexp when updating URL 2014-12-15 10:09:54 -05:00
Jeff Avallone
3374e760db Fixing some styling issues 2014-12-15 08:37:43 -05:00
Jeff Avallone
f8ce2d8f40 Putting all labels in a tspan.
This will get all of them aligning the same way
2014-12-15 07:54:55 -05:00
Jeff Avallone
66d9b97a6f Making quotes around literals lighter 2014-12-14 22:17:59 -05:00
Jeff Avallone
10d5e7f534 Reverting change to repeat node that adjusted the vertical position 2014-12-14 21:53:54 -05:00
Jeff Avallone
95af49e385 Adding horizontal connecting lines 2014-12-14 21:37:56 -05:00
Jeff Avallone
a30c16a940 Fixing root node positioning 2014-12-14 19:29:45 -05:00
Jeff Avallone
40ac83ab91 Revert "Simplifying positioning code for root nodes"
This reverts commit 46ab0662f5.
2014-12-14 19:28:50 -05:00
Jeff Avallone
c2d8473425 Adding node-type-specific anchor code 2014-12-14 19:13:08 -05:00
Jeff Avallone
9ba2b8579e Updating major positioning code to use anchor position 2014-12-14 19:13:03 -05:00
Jeff Avallone
56927dd7fa Adding anchors 2014-12-14 19:13:00 -05:00
Jeff Avallone
46ab0662f5 Simplifying positioning code for root nodes 2014-12-14 17:48:48 -05:00
Jeff Avallone
97b816ffc9 Extracting a method to ease readability 2014-12-14 17:03:40 -05:00
Jeff Avallone
d216c0fe5f Simplifying more code 2014-12-13 13:42:55 -05:00
Jeff Avallone
407167a4ae Folding labeled box positioning into rendering 2014-12-13 13:26:43 -05:00
Jeff Avallone
b9f1cfae55 Cleaning up some messy code 2014-12-13 13:00:46 -05:00
Jeff Avallone
cb9785de91 Folding _position methods into render method promises 2014-12-13 12:55:03 -05:00
Jeff Avallone
29316bb2aa Updating renderLabel to be promise based 2014-12-13 12:28:16 -05:00
Jeff Avallone
773fd5c1a6 Refactoring how _position is called to be promise-based
The render method now returns a promise. Once this promise is resolved,
the _position method for that node will be called (if applicable). This
promise must be resolved only after all subordinate nodes have completed
their render phase (the promise returned by subordinate node's render
method has resolved). Node that do not have subordinates can return the
result of calling terminalRender, and proxied renders only need to
return the result of calling proxy.

With this change, it is no longer necessary to explicitly position
subordinate nodes. They will already be positioned once their render
promise is resolved.
2014-12-13 09:09:58 -05:00
Jeff Avallone
bc84f68250 Adding a delay before positioning the regex
This gives the page time to render the loading indicator before doing
all the positioning work; providing a better experience for users when
rendering complicated regexs like that Perl email regex.
2014-12-13 08:19:27 -05:00
Jeff Avallone
f81ba6535f Adding transform method to Base node 2014-12-10 20:28:02 -05:00
Jeff Avallone
340d6b4859 Simplifying literal normalization code 2014-12-10 20:11:51 -05:00
Jeff Avallone
2e60561be6 Cleaning up code for match node 2014-12-10 19:58:36 -05:00
Jeff Avallone
dbcdd583ed Removing need for separate setContainer calls 2014-12-10 19:31:07 -05:00
Jeff Avallone
9ac25b9a50 No need to save most label objects 2014-12-10 19:23:14 -05:00
Jeff Avallone
15655900f1 Updating to automatically size labels when positioning 2014-12-10 19:16:21 -05:00
Jeff Avallone
d953dcaab4 renderLabel method doesn't really need a container argument 2014-12-10 19:12:17 -05:00
Jeff Avallone
521ab74723 Cleanup of path code 2014-12-10 19:09:31 -05:00
Jeff Avallone
f0c25dfc41 Simplifying code related to passing rendering through to nested node 2014-12-10 19:01:57 -05:00
Jeff Avallone
ff7525a6e4 De-duplicating code to render subexp and charset containers 2014-12-10 18:27:07 -05:00
Jeff Avallone
fc7032241f Short-circuiting the render of nodes.
This will reduce the depth of nesting of elements (and hopefully make
final positioning easier)
2014-12-10 17:16:21 -05:00
Jeff Avallone
6dcc5f48c4 Adjusting positioning of loop and skip lines 2014-12-10 17:14:14 -05:00
Jeff Avallone
b13ee3add2 Removing some connecting lines
This is in preparation for properly aligning nodes and simplifying the
connecting lines to reduce the number of path elements required.
2014-12-10 17:13:23 -05:00
Jeff Avallone
6ab5b2993b Removing references to "self" 2014-12-10 17:01:21 -05:00
Jeff Avallone
035984a61c Adding class to labels 2014-12-10 17:00:04 -05:00
Jeff Avallone
0b85f552c3 Setting class names of nodes automatically 2014-12-10 16:57:42 -05:00
Jeff Avallone
60d7cab504 Adding code to indicate subexpression numbers 2014-12-10 06:18:55 -05:00
Jeff Avallone
4a8103f404 Still working on the connecting lines 2014-12-09 21:32:13 -05:00
Jeff Avallone
629faf7086 Adjusting connecting line positioning 2014-12-09 21:10:42 -05:00
Jeff Avallone
772da725a3 Removing more dead code 2014-12-09 21:05:07 -05:00
Jeff Avallone
e6e8a1ed54 Tweaking connector lines 2014-12-09 21:04:14 -05:00
Jeff Avallone
975780609d Fixing label positioning in charset nodes 2014-12-09 21:00:36 -05:00
Jeff Avallone
e26d91bae5 Fixing label positioning in subexp nodes 2014-12-09 20:22:44 -05:00
Jeff Avallone
27a23162b4 Removing some dead code 2014-12-09 20:09:27 -05:00
Jeff Avallone
7082a670d6 Extracting code to layout elements vertically 2014-12-09 20:08:34 -05:00
Jeff Avallone
0f97afd880 Fixing font size of charset label 2014-12-09 19:03:50 -05:00
Jeff Avallone
cd11b7e6e5 Centralizing some of the layout code 2014-12-09 19:02:31 -05:00
Jeff Avallone
7ed865ecdb Normalizing function names 2014-12-09 18:08:40 -05:00
Jeff Avallone
7ab386e7a4 Cleanup of match fragment rendering 2014-12-09 17:56:22 -05:00
Jeff Avallone
5a4c62c2c0 Cleanup of charset range rendering 2014-12-09 17:51:04 -05:00
Jeff Avallone
0cb090bc10 Cleanup of charset rendering code 2014-12-09 17:48:44 -05:00
Jeff Avallone
3bbd55c36a Refactoring code for escape display 2014-12-09 17:43:05 -05:00
Jeff Avallone
cd279d3a80 Further refactoring of Regexper class
Still not entirely sure this is setup how I'd like it to be.
2014-12-07 21:40:05 -05:00
Jeff Avallone
ae064b2b8e Adding rendering for Subexp 2014-12-07 21:16:23 -05:00
Jeff Avallone
52a0863449 Refactoring rendering code to allow the loader to show
The loader is mostly an easter egg for people who like to try rendering
that enormous email-matching regexp from the Mail::RFC822::Address perl
module
2014-12-07 18:19:00 -05:00
Jeff Avallone
e99c284216 Rendering CharsetRange 2014-12-07 17:51:13 -05:00
Jeff Avallone
fadfaee440 Adding code to render charsets 2014-12-07 17:38:24 -05:00
Jeff Avallone
9cc23183be Adding rendering code for escape, literal, and "." 2014-12-07 15:26:45 -05:00
Jeff Avallone
f5d1e734f1 Removing Terminal type and replacing with Literal, Escape, and AnyChar
This is to eventually simplify the combining of Literals together (and
to actually make it work correctly, since terminals should not have been
merged)
2014-12-06 16:03:58 -05:00
Jeff Avallone
41c11ad5d4 Fixing bug with concatenation of literals 2014-12-06 15:46:46 -05:00