Allan Odgaard
c01e181b49
Use name convention to identify non-content scopes
2013-08-31 16:09:49 +02:00
Allan Odgaard
cc56c61c78
Remove scope::types::atom_t
...
This is first step toward decreasing memory usage by scope_t.
2013-08-31 16:09:49 +02:00
Allan Odgaard
0f5bbdfad0
Remove unused scope parsing API
2013-08-31 16:09:49 +02:00
Allan Odgaard
c0e8186bc1
When constructing scope, split string on space instead of parsing
2013-08-31 16:09:48 +02:00
Allan Odgaard
05b0b480f1
Handle assigning empty scope to non-empty scope
2013-08-31 16:09:48 +02:00
Allan Odgaard
b52b13329e
Call scope_t::empty instead of using an operator bool cast
2013-08-30 12:30:34 +02:00
Allan Odgaard
240dc4baec
Simplify scope::shared_prefix and scope_t::has_prefix
...
This is mainly for upcoming implementation changes.
2013-08-30 12:30:34 +02:00
Allan Odgaard
b624d7cc98
Treat empty string as empty scope
...
Previously would be a scope with one empty “atom”.
2013-08-30 12:30:34 +02:00
Allan Odgaard
62e3db265c
Add scope_t::empty and scope_t::size
2013-08-30 12:30:33 +02:00
Allan Odgaard
79dc48acc3
Add range check to scope atom parser
2013-08-30 12:30:33 +02:00
Allan Odgaard
69316d4da1
Don’t call scope_t::push_scope with empty scope attributes
...
Previously would be called with an empty string.
2013-08-30 12:30:33 +02:00
Allan Odgaard
c1f14616a5
Use ‘char const*’ with scope_t::push_scope
...
This is to allow distinguishing between static and dynamic strings.
2013-08-30 12:30:33 +02:00
Allan Odgaard
f56e6ae36a
Fix potential out of range access
2013-08-30 12:30:33 +02:00
Allan Odgaard
b53fb59528
Fix crash when giving nil string to FFDocumentSearch
2013-08-30 12:30:33 +02:00
Allan Odgaard
ed7d457e65
Use text::tokenize instead of text::split
...
This avoids duplicating the memory used.
2013-08-30 12:30:32 +02:00
Allan Odgaard
b7bc35ed9d
Let decode::url_part convert plus to space
2013-08-29 13:26:16 +02:00
Allan Odgaard
282e018ec8
Use format string parser for symbol transformations
...
This avoids an extra layer of escapes.
2013-08-28 15:27:42 +02:00
Allan Odgaard
27c054484e
Allow “stop chars” when parsing a format string
...
This is useful when we have a format that embed format strings and we wish to use the format string parsers (to avoid an extra layer of escapes).
2013-08-28 15:27:42 +02:00
Allan Odgaard
fc7f86d8eb
Do not clear cache during normal lookup
...
We keep indirect references to cache lookups (for the duration of the function that use the cache) so we can only do cleanup at the start or end of the function which use the cache.
2013-08-28 15:27:42 +02:00
Shelby Munsch
283ecd069e
Fixed typo
2013-08-27 22:49:47 -07:00
Allan Odgaard
1442e3061f
Remove old scope_t API
2013-08-28 00:23:08 +02:00
Allan Odgaard
7247695f9b
Update buffer_t::scopes to new scope_t API
2013-08-28 00:23:08 +02:00
Allan Odgaard
d42417ee1a
Use public API for scope_t utility functions
2013-08-28 00:23:08 +02:00
Allan Odgaard
1cc0065623
Return false from ‘scope_t::operator bool’ when there is no scope
2013-08-28 00:23:08 +02:00
Allan Odgaard
33ed6b6637
Watch leaks for grammar_t
2013-08-28 00:23:08 +02:00
Allan Odgaard
d93b20d571
Use new scope_t API
2013-08-28 00:23:08 +02:00
Allan Odgaard
5da71f9556
Add new API for mutating scope_t
2013-08-28 00:23:07 +02:00
Allan Odgaard
cfa913d0f5
Fix retain cycle
2013-08-28 00:23:07 +02:00
Allan Odgaard
057096af5b
Rename API to make searching easier
...
Using generic names like ‘append’ is not good when analyzing code for potential refactoring.
2013-08-27 15:30:09 +02:00
Allan Odgaard
275273d39b
Add missing “is content scope” argument
2013-08-27 15:30:09 +02:00
Allan Odgaard
80e26b1faa
Don’t dereference end-of-range iterator
2013-08-27 15:30:09 +02:00
Allan Odgaard
7ccd7add60
Use digittoint() instead of std::stoi()
...
Both because of performance and because the latter can throw an exception (although we check the input, so it should not happen with our use of the API).
2013-08-27 15:30:09 +02:00
Allan Odgaard
e1230653f8
Support hex characters in format strings
2013-08-27 15:30:09 +02:00
Allan Odgaard
df7cbc8da0
Add debug code
2013-08-26 15:54:05 +02:00
Allan Odgaard
8f1485d158
String given to scope_t::append now returned from scope_t::back
...
Previously we would parse the string appended to an existing scope, meaning invalid scopes would not be returned as the same string.
Fixes #1099
2013-08-26 15:54:05 +02:00
Allan Odgaard
bcece9a8e5
Don’t make selection visible when nothing is found
2013-08-26 12:02:29 +02:00
Allan Odgaard
211770893e
When in Favorites folder, change Add → Remove From Favorites
...
In practice it is possible to be in a parent of the Favorites folder and expand items so that the symbolic links in favorites can be selected, this commit does not handle that case, as we would then also need to handle the case where items both inside and outside the Favorites folder were selected (at the same time).
Users who do these things are probably aware of how symbolic links work, and can use “Move to Trash”.
Closes #1089
2013-08-26 11:48:41 +02:00
Allan Odgaard
62db7aff11
Add comparison operators to what’s understood by ⌃T
2013-08-26 11:26:56 +02:00
Allan Odgaard
64663dd17f
Allow creating non-capturing regexps
2013-08-25 21:13:06 +02:00
Allan Odgaard
a4a5799835
Don’t leave buffer in partial state if failing to parse grammar
2013-08-25 21:13:06 +02:00
Allan Odgaard
de03c27a63
Update network::tbz_t API
...
The main issue with the old API was inability to capture error output from the tar process.
2013-08-25 21:13:06 +02:00
Allan Odgaard
d2305654ac
Make redirect of stderr opt-in
2013-08-25 21:13:06 +02:00
Allan Odgaard
7e6d0b8d1b
fixup! Log errors from each call in swap_and_unlink
2013-08-25 21:13:06 +02:00
Allan Odgaard
896416c3e9
Check pointer is initialized before using it
...
I see a few crash reports that indicate this code is called without a valid ‘bundleItemContent’, though unsure how to reproduce.
2013-08-25 21:13:06 +02:00
Allan Odgaard
e27f9f4071
Fix scopes when re-running parser on captures
...
If we have multiple overlapping captures and define rules for one of these, the scopes would not be stacked correctly.
Unfortunately the fix (for this rare edge case) does degrade parser speed, as we need to switch to an alternative way of keeping track of scopes, yet for injection grammars, we need to also keep the old system (to have the “current” scope available as a scope_t instance), so while the new system is almost as fast as the old, using both is not.
There should be a few ways to optimize scope_t construction, so that this part will add less overhead in the future (I think it’s roughly 5-10% of parsing time spent to scope_t related stuff).
2013-08-25 17:58:08 +02:00
Allan Odgaard
0a465955d1
Allow peeking at the last element of a scope
...
This is useful when constructing scopes during parsing.
2013-08-25 17:58:08 +02:00
Allan Odgaard
7115b80051
Skip processing empty captures
2013-08-25 17:58:07 +02:00
Allan Odgaard
36c5ff4288
Support ${var} in regexp part of format string transformations
2013-08-24 20:28:16 +02:00
Allan Odgaard
695ff4c703
Improve the “swap” functionality of ⌃T
...
See tests for details.
2013-08-24 20:28:16 +02:00
Allan Odgaard
15a15e8c15
Remove prototype for unimplemented member function
2013-08-24 01:19:29 +02:00