Age | Commit message (Collapse) | Author |
|
|
|
Converting NSNumber to a string raises the possibility of outputing a
number like 2.2e-8, as it essentially uses the %g format specifier.
This then cannot be parsed.
Since there is no built-in specifier for outputing floats with variable
precision (ie: removing any trailing zeros), I cooked up a function to
do just that.
Currently set the maximum precision at 4dp (our normal grid layout only
makes use of 2dp).
|
|
Shape sizes can change (if you're actively editing a shape), which can
mean that some edge properties need to be recalculated.
We do this at the graph, rather than edge, level to avoid the overhead
of installing a notification for every single edge.
|
|
|
|
|
|
Edges almost always want to be anchored to the "center" of an unstyled
(style=none) node, as otherwise edges won't join up. However, this
anchor should be discarded if a style is then set on the node, otherwise
arrowheads tend to disappear.
|
|
The editable preambles include a bunch of things that *have* to be there
for previews to work, which makes figuring out what you can edit hard.
We now add a \documentclass automagically if it is missing, and if
\begin{document} is missing, we assume the preview-specific stuff should
be added.
OSX changes are untested.
|
|
It turns out that the [NSString stringWithContentsOfFile:] family of
methods do not have a way of reporting why a file could not be read;
[NSString stringWithContentsOfFile:usedEncoding:error:] will only set
the error object if there was a problem with decoding.
So, we cook our own variant that tries to figure out why opening the
file failed.
User-visible effect: in the GTK+ port, if you try to open a file from
the "open recent" menu that no longer exists, you will get a more
helpful error message.
|
|
Previously, copying-and-pasting a graph would lose source and target
anchor information.
|
|
Be explicit about what versions we require.
|
|
|
|
Defining YY_EXTRA_TYPE is not the "proper" way to set that type (a
%option should be used instead), and defining YYLEX_PARAM will no longer
work with bison 3 (%lex-param is the correct thing to use).
|
|
|
|
|
|
|
|
Includes functions for testing if an anchor is valid.
|
|
Memory usage on Linux no longer shoots up after running the tikz parser
a handful of times.
|
|
|
|
|
|
These are just convenience wrappers for TikzGraphAssembler. As a
result, non of the GTK code uses TikzGraphAssembler directly.
|
|
|
|
This means that tabs don't get treated specially. No-one can seem to
agree how many spaces a tab should be, and the first thing we actually
ended up doing was to undo the extra tab counting.
|
|
|
|
|
|
It appears I broke this when rewriting the parser.
|
|
Even better than before!
|
|
No more locking! Also, the interface for TikzGraphAssembler is much
simpler.
Changes to OSX code are completely untested.
|
|
Better error messages and cleaner code in the body of the parser.
|
|
We build things up in stacks in the parser, rather than relying on
TikzGraphAssembler so much. This makes tikzparser.ym easier to follow
(IMHO).
|
|
It turns out Flex can do modal lexing. This means that we can switch
mode for optional properties, and also for co-ordinates. As a result,
the parser is much simpler and doesn't keel over all the time on valid
input.
|
|
Parse anchors with spaces, like (3.north west).
|
|
Selecting edges and/or nodes and pressing shift-d will print info about
them to the console.
|
|
Fixes a crash when manually editing anchors on Linux.
|
|
Previously, we could find the "maximum exit point" of an edge to be very
slightly inside the actual bounds; this would cause the actual exit
point not to be found. So we expand the bounding rect very slightly.
|
|
|
|
Repeatedly pasting crazy-long single-line code into the buffer would
crash tikzit before.
|
|
|
|
|
|
|
|
|
|
Fixes rendering of newly-drawn edges in GTK+ version.
|
|
Keywords like "rectangle" and "at" were not allowed unquoted by the
parser, but would not be quoted by the generator.
Fixes: #10
|
|
|
|
This is a string that is supposed to be used in tikz, so make that
explicit.
|
|
QUOTEDSTRING (double quotes) is just not a thing in tikz. Also, allow
keys to be {-quoted as well as values.
|
|
Within a {-quoted string (one surrounded by { and }), ignore any
characters prefixed by backslash.
|
|
If the user clicks Cancel, nothing changes.
|
|
|
|
yy* vars are owned by the lexer file (and should be externed from
elsewhere).
|
|
|