diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-06-19 04:54:21 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-06-19 04:54:21 +0200 |
commit | d6761c3cdf9d15c0f64253dcd8049ff9f25aa987 (patch) | |
tree | 261dde66c9b86ffb9e20786528b36c565a7ce628 /src/syntax.c | |
parent | 978287b8f811d384f32fc9b85063f41e2e08f5e2 (diff) | |
download | vim-git-d6761c3cdf9d15c0f64253dcd8049ff9f25aa987.tar.gz |
updated for version 7.3.226v7.3.226
Problem: On a 64 bit system "syn sync fromstart" is very slow. (Bjorn
Steinbrink)
Solution: Store the state when starting to parse from the first line.
Diffstat (limited to 'src/syntax.c')
-rw-r--r-- | src/syntax.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/syntax.c b/src/syntax.c index a9a2e862f..f3cb71ed6 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -559,7 +559,13 @@ syntax_start(wp, lnum) if (INVALID_STATE(¤t_state)) { syn_sync(wp, lnum, last_valid); - first_stored = current_lnum + syn_block->b_syn_sync_minlines; + if (current_lnum == 1) + /* First line is always valid, no matter "minlines". */ + first_stored = 1; + else + /* Need to parse "minlines" lines before state can be considered + * valid to store. */ + first_stored = current_lnum + syn_block->b_syn_sync_minlines; } else first_stored = current_lnum; |