Commit graph

16 commits

Author SHA1 Message Date
Thiemo Kreuz 473a711aaa Rename our customized matchbrackets addon
Bug: T269096
Change-Id: I5b58099166f71ccc1b3b19334f28e8bbaafaceb3
2021-01-20 11:17:59 +01:00
WMDE-Fisch 7ec8ebc84d Concretised comment around WMDE disabled line
Change-Id: Ibc4e1568bae78e92371e21314edc16857be7afed
2021-01-19 13:21:48 +01:00
Thiemo Kreuz 18a64328bb Disable non-matching highlighting via config flag
My upstream patch was accepted within 9 minutes:
https://github.com/codemirror/CodeMirror/pull/6565

Note: This backport includes another upstream commit that fixed
some typos.

Bug: T269096
Change-Id: Ib5b64214d7536bc952886f45290d537eab2f9bbb
2021-01-18 09:51:05 +00:00
jenkins-bot ea8cffe3f2 Merge "Fix performance bottleneck in mediawiki syntax highlighter" 2021-01-14 11:22:33 +00:00
Thiemo Kreuz 88984d2965 Fix minor code style issues in matchbrackets addon
Less ambiguous variable names. Less duplication. The minor
issues have been introduced in T270317.

Bug: T270317
Change-Id: I366396a61b76e19293ce8d14c2f346b97498fe40
2021-01-14 11:13:24 +01:00
Thiemo Kreuz f1cf1a534c Fix performance bottleneck in mediawiki syntax highlighter
I continued profiling the matchbrackets addon for T270237 and run into
performance issues that turned out to be unrelated to the addon. The
flame graph highlighted a "match" function. Note this is not the
String.match() from JavaScript, but something in the CodeMirror lib:

StringStream.prototype.match = function (pattern) {
  var match = this.string.match(pattern);
  if (match && match.index > 0) {
    return null;
  }
  return match;
}

(Note: I simplified this code so we can focus on the bug.)

When the pattern is a regular expression, it's executed via
JavaScript's String.match(). The function then checks if there was a
match and if it's at the start of the string. If not, it's not a
match and doesn't return one.

In other words: Even if there is a match somewhere in the string, the
function acts as if there was no match.

When we change all patterns to be anchored via ^, they don't scan the
entire string any more but return much ealier when there is no match
at the start of the string. We are effectively replacing nested loops
(hidden in the patterns) with single calls.

This bug exists since 2014.

The disabled line in the matchbrackets addon is just dead code. I
don't remove it to document the fact that we disabled it.

Bug: T270237
Bug: T270317
Change-Id: Icbb1122e6a3b26c0606726ff405e108931d185be
2021-01-13 16:58:57 +01:00
Thiemo Kreuz 0bb63f22d5 Make bracket matching respect all limits
This patch also removes all remaining FIXMEs. This code is not
a bottleneck. There is nothing to do.

Bug: T270317
Change-Id: Ie034440c98d8064a22811a1b569237dddb7b7436
2021-01-08 13:29:39 +01:00
Thiemo Kreuz 111243bc19 Update matchbrackets addon to most recent version
We "forgot" to update this addon when we did the update in
I6f0f030 (T258999).

Bug: T258999
Bug: T270317
Change-Id: Iab29e9e36f34b76551ddac497e40dc76669ba7c7
2021-01-08 11:39:28 +01:00
Thiemo Kreuz e6ca95499a Add documentation for matchbrackets costomizations
Bug: T270317
Change-Id: Ifb09c9122e4002215dc47b6e4546adddb7608dbf
2021-01-08 11:33:22 +01:00
Adam Wight d8f4982e79 Added bracket matching
* using CodeMirror addon matchBrackets
* highlights the matching bracket of a pair
* highlights brackets when cursor is inside a pair
* feature usable in source code editor

Bug: T261857
Change-Id: Ib01d9919a47bb29684b54501644b01936b57972a
2020-12-15 13:09:06 +00:00
Ed Sanders 48e37ce2fc Remove themes, keymaps and addons
We don't support these

Change-Id: Ib237e5b885b8a7ac9fdba36efb1c666c8cbb2619
2018-02-28 12:24:13 +00:00
Ed Sanders 2614d071ad Update CodeMirror to 5.35.0
Change-Id: I4da7497600189b6c87c9fcb829f7876c98bf4929
2018-02-28 12:14:29 +00:00
Pavel Astakhov 0ea00f2b0e Update CodeMirror library version to 5.29.0
Bug: T174731
Change-Id: I048270eea67945d959559f68468a39976d777410
2017-09-05 09:39:06 +06:00
Ed Sanders 75ca882e38 Update CodeMirror to 5.25.0
Change-Id: I47680ba98e1ab39360608aa7a923e7fee7db615e
2017-03-21 15:05:52 +00:00
Pavel Astakhov 533dc431b6 update CodeMirror library to version 5.0.0 (v 3.1.1)
Change-Id: Ifcd1bdcd45c7b6fbb10927d1c6821f8804527ef6
2015-03-16 17:35:50 +00:00
Pavel Astakhov ae450a5c3c refactor and extend usability (v 3.0.0)
* add on/off button to toolbar
* add highlighting table, hr ----, sign ~~~
* update codemirror lib to 4.7
* fix font size

Change-Id: Idd5775d6c80a18406aee7b8ab51691f26038764c
2014-10-23 12:09:10 +06:00