Optimize line width measurements
No full measurement is needed, since most of the time the longest line will be scrolled out of view, and we're only interested in its length. Issue #1275
[vim keymap] better r, t, new +/-/_
- handling special keys better for commands requiring a character - r can operate on selection - fixed: t moves back if character not found - +/-/_ via extension of moveByLines motion
It fails on Travis, but not on my local machine's Phantom or in a real Webkit, so I'm going to assume it's a spurious failure.
Disable another test that has started mysteriously failing on Phantom
(but only remotely).
A call to replaceRange hadn't been updated to its new signature.
[rst mode] Rewrote from scratch
The old mode was not supporting many rST constructs, or not in sufficient detail. Features/changes: * no `backUp` ops to keep things fast; * kept `python` inner mode integration; * added `latex` inner mode; * eliminated `verbatim` configuration parameter; * eliminated non-standard tokens: the old mode was producing `footnote` and `citation` tokens, which were replaced with `quote`; * many more details: visually compare highlighting between old and new to get an impression; * MIT license (copied and adapted form `python` mode);
Allow modes to specify their own flattenSpans option
And use the editor-wide option when no value is found on the mode. Issue #1281
Rename Zen Coding to Emmet in real-world uses
+ add CodeMirror Movie link
[markdown] Improve highlighting of lists.
Also includes improved support of nested lists. Closes #1276.
[markdown] Improve highlighting of blockquotes.
Add support for nesting and avoid hiding code highlighting. Related to #1276 (but blockquotes, instead of lists).
[markdown] Remove emstrong entirely.
Should use `em` or `strong` instead.
[markdown] Fix list highlighting.
Previously, lists following other content weren't always highlighted.
Added delmarks command to vim key bindings.
Functionality and error messages match the latest vim 7.0 release.
Replaced builtins with updated list for 1.4. Generated by:
(->> 'clojure.core ns-publics (map first) sort (clojure.string/join " "))
Improve performance of StringStream with long lines
Fixes Issue #1301 StringStreams.prototype.column was always calculating the column offset for a position by walking from index 0 in the string to the current start position. That is factorial in performance and gets noticeably slower with long lines. StringStreams only ever advance forward. So when determining the column we can cache the value for a previous position on the line. Then the next time column is called, we only need to update the cache for the small portion that the Stream advanced. This way we only ever walk the stream once.
Improve performance of StringStream with long lines (match)
StringString.prototype.match(<string>) may do a lot of unnecessary work:
- If it is caseInsensitive it was calling toLowerCase on the entire string.
- It did an indexOf search through the string for a pattern, but only cared
if the string started with that pattern.
Because a string pattern has a fixed length, we only need to run toLowerCase
on a small substring of the stream, and we only compare this small substring
to the pattern.[javascript mode] Recognize bitwise operators '~' and '^'
This was causing "1^2" to tokenize as: (number, "1"), (variable, "^2). By tokenizing these bitwise operators as operators CodeMirror can correctly syntax highlight the 2 as a number. Likewise the number in "~0".