summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-11-04src: Don't save whitespace-led commands in the `:` registerFrank LENORMAND
2017-11-04Remote: stricter validation of the session namesMaxime Coste
Creating a session will not accept any slashes in the session path, connecting to an existing session will accept at most one slash to allow for specifying the session of a different user. Fixes #1635
2017-11-04Code style tweakMaxime Coste
2017-11-03Merge remote-tracking branch 'lenormf/fix-rc-aliases'Maxime Coste
2017-11-03Wrap: rework logic to avoid infinite loop with multiple wrap highlightersMaxime Coste
The display is still going to be wrong, as wrapping is going to take place multiple times, but Kakoune should not freeze anymore.
2017-11-03Remove uneeded forward declarationMaxime Coste
2017-11-03src rc: Rename `exec`/`eval` into `execute-keys`/`evaluate-commands`Frank LENORMAND
2017-11-02Append '/' to highlighter group completion candidatesMaxime Coste
2017-11-02Wrap: change indent atom to be a replaced empty buffer rangeMaxime Coste
Avoid confusing the column highlighters.
2017-11-02Add informations on -indent in wrap highlighter docstringMaxime Coste
2017-11-02doc.kak: Render documentation internally instead of relying on manMaxime Coste
doc.kak now behaves as a basic asciidoc renderer. Asciidoc is unfortunately still a dependency to generate the manpage of the `kak` command.
2017-11-02Ensure line-specs and range-specs options are sorted internallyMaxime Coste
2017-11-02Fix trailing spaces in highlighters.ccMaxime Coste
2017-11-02Wrap: Add -indent switch support that wraps preserving line indentMaxime Coste
2017-11-01Rename doc/manpages to doc/pagesMaxime Coste
That fact we use man for these is an implementation detail.
2017-11-01Document the regex impl switch in the startup messageMaxime Coste
2017-11-01Regex: Remove boost related codeMaxime Coste
2017-11-01Regex: fix RegexCompileFlags not being an enum classMaxime Coste
2017-11-01Regex: slight readability improvement and workaround a potential gcc bugMaxime Coste
2017-11-01Regex: remove dead codeMaxime Coste
2017-11-01Regex: Tweak struct layouts of ParsedRegex dataMaxime Coste
2017-11-01Regex: Remove "Ast" from names in the ParsedRegexMaxime Coste
It does not add much value, and makes names longer.
2017-11-01Regex: Optimize parsing and compilationMaxime Coste
AstNodes are now POD, stored in a single vector, accessed through their index. The children list is implicit, with nodes storing only the node index at which their child graph ends. That makes reverse iteration slower, but that is only used for reverse matching regex, which are uncommon. In the general case compilation is now faster.
2017-11-01Regex: minor cleanup of the regex parsing codeMaxime Coste
2017-11-01Regex: small code cleanup in the Save compilation codeMaxime Coste
2017-11-01Regex: put the other char boolean inside the general start char mapMaxime Coste
2017-11-01Fix ConstexprVector::resizeMaxime Coste
2017-11-01Regex: Fix handling of all unicode codepoint as start charsMaxime Coste
2017-11-01Regex: fix wrong fallthough in dump_regexMaxime Coste
2017-11-01Regex: refactor handling of Saves slightly, do not create them until really ↵Maxime Coste
needed
2017-11-01Regex: Go back to instruction based search of next startMaxime Coste
The previous method, which was a bit faster in the general use case, can hit some cases where we get quadratic behaviour and very slow matching. By using an instruction, we can guarantee our complexity of O(N*M) as we will never have more than N threads (N being the instruction count) and we run the threads once per codepoint in the subject string. That slows down the general case slightly, but ensure we dont have pathological cases. This new version is much faster than the previous instruction based search because it does not use a plain `.*` searcher, but a specific, smarter instruction specialized for finding the next start if we are in the correct conditions.
2017-11-01Regex: add support for \0, \cX, \xXX and \uXXXX escapesMaxime Coste
2017-11-01Regex: compute if codepoints outside of the start chars map can startMaxime Coste
2017-11-01Regex: abort compilation as soon as we hit the instruction count limitMaxime Coste
2017-11-01Regex: add a unit test for why lookaheads dont count for start chars anymoreMaxime Coste
2017-11-01Regex: comment the mutables in CompiledRegex::Instruction and fix their initMaxime Coste
2017-11-01Regex: Introduce a Regex memory domain to track usage separatelyMaxime Coste
2017-11-01Regex: use binary search to for character class ranges checkMaxime Coste
2017-11-01Regex: compute start chars from matchers, do not compute it from lookaroundsMaxime Coste
Computing potential start characters from lookarounds is more complex than expected, and not worth the complexity.
2017-11-01Regex: remove the need to a processed inst vectorMaxime Coste
Identify each step with a counter, and check if the instruction was already processed this step. This makes the matching faster, by removing the need to maintain a vector of instructions executed this step.
2017-11-01Regex: use intrusive linked list for the free saves instead of a VectorMaxime Coste
2017-11-01Regex: rename "flags" with the more common "modifiers"Maxime Coste
2017-11-01Regex: Correctly handle ignore case mode for start chars computationMaxime Coste
2017-11-01Regex: Rework parsing, treat lookarounds as assertions, and flags separatelyMaxime Coste
2017-11-01Regex: Limit programs to std::numeric_limits<uint16_t>::max() instructionsMaxime Coste
2017-11-01Regex: Fix reverse searching behaviour, againMaxime Coste
2017-11-01Regex: limit explicit quantifiers value (too 1000 for now)Maxime Coste
Fixes #1628
2017-11-01Regex: Fix handling of ^ and $ in backward matching modeMaxime Coste
2017-11-01Regex: Only reset processed and scheduled flags on relevant instructionsMaxime Coste
On big regex, reseting all those flags on all instructions for each character can become the dominant operation. Track that actual instructions index processed (the scheduled are already tracked in the next_threads vector), and only reset these.
2017-11-01Regex: Fix support for ignore case in lookaroundsMaxime Coste