Commit graph

1200 commits

Author SHA1 Message Date
MusikAnimal 7856e62dea CodeMirror: +rectangularSelection and crosshairCursor as def extensions
These were default in CM5

To be added to the preferences panel once that's a thing (T359498)

Change-Id: I5a8b330444dd2dff0acfbd8e2d429a5b5273cd61
2024-05-21 22:52:08 -04:00
MusikAnimal 0e5fe342d9 CodeMirror: make bracket matching match CJK full-width brackets
This is only done for wikitext because CJK brackets can cause unexpected
errors in other languages.

Bug: T362992
Change-Id: Icf98e8fd7e0392845df2e3b7d3201e7f94f95a3f
2024-05-21 23:17:43 +00:00
Translation updater bot a21aa79e2d Localisation updates from https://translatewiki.net.
Change-Id: Ibcc25f7b10ec183fd83c14f459a9f0e62006bcd7
2024-05-20 09:24:50 +02:00
libraryupgrader 31815d8036 build: Updating grunt-banana-checker to 0.13.0
Change-Id: Ieeb3108280f96193a45dd8e5c5472ee97a985388
2024-05-18 03:53:50 +00:00
jenkins-bot 549539c3b5 Merge "rollup: speed up dev build by bypassing babel and terser plugins" 2024-05-14 02:12:23 +00:00
MusikAnimal 198a1f7d72 rollup: speed up dev build by bypassing babel and terser plugins
Brings it down from ~3 secs on my machine to ~600 ms.

This also allows for debuggers, and essentially eliminates the need
for source maps on your local (though we should probably still look
into them for prod).

Change-Id: I4c164b409b2c327e439e1524d4a898693bd8d907
2024-05-14 01:51:13 +00:00
jenkins-bot b23a901106 Merge "CM6: Add 'ext.CodeMirror.input' hook; improve code examples" 2024-05-14 01:48:35 +00:00
jenkins-bot d594143c04 Merge "CM6: Rework ResourceLoader modules" 2024-05-14 01:23:01 +00:00
jenkins-bot f4e9eb38e2 Merge "ext.CodeMirror.visualEditor: don't load on RTL pages" 2024-05-13 23:46:31 +00:00
Translation updater bot 2e3aac9a1e Localisation updates from https://translatewiki.net.
Change-Id: I91c6d789d652e152d42ba5567e54b71107b4453c
2024-05-13 09:26:46 +02:00
libraryupgrader 477da344c0 build: Updating grunt-banana-checker to 0.12.0
Change-Id: I2fda64fe3eeb5f681911ddd5454d0409405dceb6
2024-05-10 02:24:46 +00:00
libraryupgrader 8ea2953375 build: Updating dependencies
composer:
* mediawiki/minus-x: 1.1.1 → 1.1.3

npm:
* jsdoc-wmf-theme: 1.0.0 → 1.0.1

Change-Id: Id3d2d7b46648c8ea139ef8a72c12fb0861915922
2024-05-08 07:35:28 +00:00
Translation updater bot 4fa142e4dd Localisation updates from https://translatewiki.net.
Change-Id: I35c6955ba5ce0117e383b2d1b136922e49e34f86
2024-05-06 09:25:18 +02:00
jenkins-bot 45c2cf6d9e Merge "CodeMirrorModeMediaWiki: one-line definition list" 2024-05-03 07:22:42 +00:00
Translation updater bot 566e17ac8a Localisation updates from https://translatewiki.net.
Change-Id: Ib24099130aa32f4017ca59dd79c7ab484b882130
2024-05-02 09:19:15 +02:00
libraryupgrader 888593d412 build: Updating ejs to 3.1.10
* https://github.com/advisories/GHSA-ghr5-ch3p-vcr6

Change-Id: I6ca8243e3b40258207a01f0e8a91a7ddc0db47fb
2024-05-02 03:03:36 +00:00
MusikAnimal c873f9d9fa ext.CodeMirror.visualEditor: don't load on RTL pages
CodeMirror 5 does not work on RTL pages. This commit does a crude check
of the `dir` attribute of `.mw-body-content .mw-parser-output` because
the VisualEditor surface and even the native textarea isn't available
when the module is first loaded.

Bug: T363752
Change-Id: If3825d6e5467d2bcff2d83e838081bf041243920
2024-04-29 15:31:23 -04:00
Translation updater bot ee5b0ee87e Localisation updates from https://translatewiki.net.
Change-Id: I3d4b3a559c8ba593036a34cad86a958d54b8fb3f
2024-04-29 09:22:59 +02:00
bhsd 52471d4b8f CodeMirrorModeMediaWiki: one-line definition list
Add highlighting for a special one-line definition list syntax `;a:b`. Also highlight `;a` in bold.

Bug: T170042
Change-Id: Ia3bdf481469368fcb5a7651729dde4b5f3682ed8
2024-04-29 09:44:27 +08:00
Translation updater bot eee5093270 Localisation updates from https://translatewiki.net.
Change-Id: Ibc5f11ccd67a5bcd5afdcaa45978055cf47d7665
2024-04-26 09:47:51 +02:00
libraryupgrader f34db5db7f build: Updating dependencies
composer:
* php-parallel-lint/php-parallel-lint: 1.3.2 → 1.4.0

npm:
* jsdoc-wmf-theme: 0.0.13 → 1.0.0

Change-Id: Id6718e5acc928c5d0aae6d143d49b73afcf33bd9
2024-04-25 03:43:10 +00:00
Taavi Väänänen 5c71833728 build: Update eslint-config-wikimedia to 0.27.0
Change-Id: I71646291ecf6ba22dd5a0e45f44ea54eacfa6bfc
2024-04-24 11:46:59 +00:00
Translation updater bot ca6eb17ffe Localisation updates from https://translatewiki.net.
Change-Id: Ibf686ea7289ef5882b17cb5c63e982117364b2ed
2024-04-24 09:18:31 +02:00
Translation updater bot f466cbebd4 Localisation updates from https://translatewiki.net.
Change-Id: Ib2d60417bfa879138eb97f149d8436fbd1e6266a
2024-04-22 09:27:54 +02:00
MusikAnimal 2aa6d5c564 CM6: Add 'ext.CodeMirror.input' hook; improve code examples
A 'ext.CodeMirror.input' hook is added to give integrations direct
access to the ViewUpdate object when changes are made in CodeMirror.

Bug: T174811
Change-Id: Idb6166996abb7d64ac8a956f362aea5eda0392bc
2024-04-18 16:33:32 -04:00
Translation updater bot 0173293326 Localisation updates from https://translatewiki.net.
Change-Id: I4bf5892bd44a3217c75565e775e46b75c27c58f5
2024-04-18 09:20:11 +02:00
MusikAnimal c853e9587d CM6: Rework ResourceLoader modules
Documentation is at https://w.wiki/9kxt

The idea is that modules ending in `.init` imply they initialize
CodeMirror and maniuplate the DOM. The others only export classes for
use in integreations.

In doing so, 'ext.CodeMirror.v6.WikiEditor' now only exports the
CodeMirrorWikiEditor class, while 'ext.CodeMirror.v6.WikiEditor.init'
is added for use on #wpTextbox1 through action=edit.

Bug: T174811
Change-Id: Iec62ac9dc77918904bed886d2d46ccc03e0927f7
2024-04-15 12:40:16 -04:00
jenkins-bot 918b1bc295 Merge "Add $wgCodeMirrorRTL to control rollout to RTL wikis" 2024-04-15 13:57:44 +00:00
Translation updater bot 7f57f704b3 Localisation updates from https://translatewiki.net.
Change-Id: I29043a70e4a58c8412f4dbc8cd61ff4505ef8a86
2024-04-15 09:27:42 +02:00
jenkins-bot 5d3ca9785f Merge "CodeMirrorModeMediaWiki: put bidi isolation behind URL feature flag" 2024-04-15 04:01:27 +00:00
MusikAnimal 8aa74b71b8 CodeMirror: fix typo in comments
Follow-Up: I1d40ae4f7dc093f585051d388c70cde151faa5e6
Change-Id: Id281ee6e13ea0eea0942c60594f3fa0ad1e88b3a
2024-04-14 20:06:01 -04:00
MusikAnimal 3dcbb6590d Add $wgCodeMirrorRTL to control rollout to RTL wikis
We want to get moving on rolling out CodeMirror 6 to LTR wikis, but want
to slow rollout to RTL wikis since we are still ironing out some issues
there, specifically T358804.

Bug: T170001
Bug: T358804
Change-Id: Iac30ffe2746139326159fd406fab3b097b3187f5
2024-04-15 00:03:03 +00:00
MusikAnimal 3339cbb3a5 CodeMirrorModeMediaWiki: put bidi isolation behind URL feature flag
Bidi isolation is still not exactly 'stable'. Instead of removing it, we
look for the URL query param `cm6bidi=1`. This allows users to test out
bidi isolation and give feedback as we iterate on it. Once stable, this
should be removed and bidi isolation should be on by default -- and
eventually, can be opted out of via CodeMirror preferences (T359498).

Bug: T358804
Change-Id: If7e024f0da71ddf1b0a38c0fc49f033ddbe745fd
2024-04-14 17:05:39 -04:00
Translation updater bot b9463a0271 Localisation updates from https://translatewiki.net.
Change-Id: I8dd26764e698ff6d39f29b26e106cabc2b8fbb72
2024-04-12 09:41:43 +02:00
MusikAnimal fcb7633eb1 CodeMirrorModeMediaWikiConfig: add missing TagStyle for cm-mw-link
The number sign in `[[Link#Section]]` is supposed to have the class
.cm-mw-link, but didn't because it was missing a TagStyle which actually
gives it the CSS class. Now it does.

Add test case for all known CSS classes.

Bug: T348019
Follow-Up: I8f8a81f362bed60dea14ecde9487a2b0c89225e8
Change-Id: I613f8bead76523fbe1a9f05ed75d81893b8737d3
2024-04-11 14:02:24 -04:00
jenkins-bot b97d51ff51 Merge "CM6: Add syntax highlighting preference for users without WikiEditor" 2024-04-11 14:00:05 +00:00
jenkins-bot f609267612 Merge "Remove wait for DOM ready before attach to hook 'wikiEditor.toolbarReady'" 2024-04-10 13:05:49 +00:00
MusikAnimal f3f46d8e05 CM6: Add syntax highlighting preference for users without WikiEditor
This adds the `ext.CodeMirror.v6.init` ResourceLoader module which
allows use of CodeMirror on `#wpTextbox1` without the use of WikiEditor
(the 'usebetatoolbar' preference). In order for users to opt-in to using
CodeMirror, we make the existing 'usecodemirror' option into a visible
preference. In addition, with two preferences related to CodeMirror, we
group them under a new heading 'Syntax highlighting'. More preferences
may be added later to this section following T359498.

When WikiEditor is not enabled, the layout of the action=edit page has
the textarea as a sibling to other visible content, like `.editOptions`.
Because of this, we can't simply append the CodeMirror DOM to the parent
like we were before, as that would put the visible editor beneath the
edit summary, Publish button, etc. Instead we rework the CodeMirror to
first add a wrapper around the textarea and use that as the parent. This
way, `.cm-editor` is always in the same place in the DOM as the native
textarea.

Line wrapping and focus/blur events are also moved to CodeMirror, as
these are needed when not using WikiEditor.

Bug: T190108
Change-Id: I4bc069e0d398aa7088e4f50bbd0ddda458b289c3
2024-04-09 22:05:20 -04:00
MusikAnimal e1f397f048 CodeMirrorBidiIsolation: fix for when the tag is the first element
This fixes a careless error introduced in I1338afeefa where we don't do
a strict equality test and thus if the tag is the first element (at
position 0), the following bracket is also treated as the start
position. Here we simply do a strict equality test against null (the
reset value), and viola, several issues are fixed.

Bug: T358804
Change-Id: I86021d363ecc33a7551bc887439dc1902914026f
2024-04-09 22:04:45 -04:00
jenkins-bot ffef86bb36 Merge "CodeMirror 6 template folding: foldAll" 2024-04-10 01:39:53 +00:00
MusikAnimal efd6682398 CM6: ensure search panel is in the same direction as the interface lang
We don't have access to the HTML attributes for .cm-panels, so we just
use CSS to set the direction.

Bug: T359611
Change-Id: I1d40ae4f7dc093f585051d388c70cde151faa5e6
2024-04-09 19:20:18 -04:00
Translation updater bot 10c9a9ee6f Localisation updates from https://translatewiki.net.
Change-Id: Iacc861a52585392f96dc9aaa56a5b92b06d37df3
2024-04-05 09:37:45 +02:00
jenkins-bot 9744fb10b2 Merge "CodeMirrorWikiEditor: add Realtime Preview handler" 2024-03-28 05:01:03 +00:00
jenkins-bot 91d1d19398 Merge "CodeMirror: copy tabindex attribute from textarea" 2024-03-28 04:55:42 +00:00
jenkins-bot f455d36c15 Merge "CM6: add destroy method, fix removal of textSelection, add more hooks" 2024-03-28 04:49:54 +00:00
MusikAnimal 60013b1f1f Hooks: restore respect of $wgCodeMirrorLineNumberingNamespaces in CM5
Restore the ResourceLoaderGetConfigVars hook which CodeMirror 5 still
relies on when it checks $wgCodeMirrorLineNumberingNamespaces.
In CM6, this is set in the config provided by DataScript.php.

Partially reverts I67518c0968

Bug: T347211
Follow-Up: I67518c0968f64c79e290f57b4884d30a161212d3
Change-Id: Id34858da68f7e08d16f8d1312bbbd355ccf8d140
2024-03-27 22:36:27 -04:00
jenkins-bot f91f08947c Merge "CM6: Add jsdoc build step, fix JSDoc annotations, and add @stable tags" 2024-03-27 05:42:51 +00:00
MusikAnimal 512403afa7 CodeMirrorWikiEditor: add Realtime Preview handler
Realtime Preview is unique to WikiEditor, so we only add support in
CodeMirrorWikiEditor.

Bug: T360708
Change-Id: I2122a114359c74d311777b5f2872149e64d95254
2024-03-26 13:36:30 -04:00
MusikAnimal 432e868f2e CodeMirror: copy tabindex attribute from textarea
The Tab key should navigate to the edit summary from the editor, or to
the Realtime Preview pane if it is open.

Change-Id: I7810bfd098f6b9dd5afab9aa534685d3e4166af6
2024-03-26 13:36:18 -04:00
MusikAnimal 6be3bf62f0 CM6: add destroy method, fix removal of textSelection, add more hooks
CodeMirror is meant to be used without WikiEditor, so we add a destroy()
method that does much the same things as CodeMirrorWikiEditor.

The hooks added with this patch aren't used by anything yet, but offer
feature parity with CodeMirrorWikiEditor, which fires the
'ext.CodeMirror.switch' hook. That hook can't be moved for
backwards-compatibility reasons.

The actual fix for T360075 here was to nullify the `textSelection` class
property.

Bug: T360075
Change-Id: Ife6a3f1ef90df66cd1bf8bab33c9ef3b39ed17a0
2024-03-26 13:35:58 -04:00