Commit graph

536 commits

Author SHA1 Message Date
Thiemo Kreuz a43984fc67 Simplify onSelect handler implementation
Optimizations for the code introduced in Ic403e0a:
* Skip this entirely when something is selected (as discussed
  in Ic403e0a).
* Use a combination of existing methods. I benchmarked these
  again. This approach is "significantly" slower compared to
  the custom code from before. However, "significantly" here
  means something like 1 nanosecond vs. 4 nanoseconds. Both
  is effectively nothing.
* Use the same approach in another place. This one is triggered
  every time a change is made, e.g. a character typed. I
  benchmarked this as well. The new code is about 500x faster
  (yes, seriously).

Bug: T269094
Change-Id: I00fe595a89be7a257e27ed28d38568c81483338b
2021-01-05 22:50:04 +00:00
jenkins-bot 773b308fab Merge "Integrated bracket matching for CodeMirror with VisualEditor" 2021-01-05 11:37:57 +00:00
jenkins-bot 1ea61ad2aa Merge "Use wikiEditor.toolbarReady hook instead of ready event" 2020-12-31 03:29:51 +00:00
WMDE-Fisch 17fb4ceb7e Integrated bracket matching for CodeMirror with VisualEditor
Bug: T269094
Change-Id: Ic403e0a037127ed006e8d1168d710e6160a922d5
2020-12-29 21:34:16 +00:00
Ed Sanders 0c681f5300 ve-cm: Fix selection opacity when using fallback technique
The fallback technique makes the whole edit surface semi-transparent,
so reset native selections to full opacity.

Change-Id: If6cd585b1a09c549781fe82a3bdf18d64ac597b5
2020-12-28 23:38:16 +00:00
Ed Sanders 5bba5436a8 Use wikiEditor.toolbarReady hook instead of ready event
The hook avoids race conditions as it will run even if
CodeMirror loads after the toolbar.

Change-Id: Ida035fad473210add4a604b3c8d65d2d4edb49dc
2020-12-28 23:26:39 +00: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
Thiemo Kreuz 4a3c2dcad5 Update CodeMirror to 5.58.3
I had to make some CSS selectors more specific, because the
library changed

 .CodeMirror pre

to

 .CodeMirror pre.CodeMirror-line,
 .CodeMirror pre.CodeMirror-line-like

This is only relevant for entire lines (implemented as <pre>
elements). Most of the custom CSS is for characters, not lines.

In my tests in the Wikitext editor as well as VisualEditor I
could not spot any difference between the old and new version.

Bug: T258999
Change-Id: I6f0f030f972838727f3ef220feb105264f122798
2020-12-07 20:20:49 +00:00
Andrew Kostka 7d01567c4f Record usage statistics for syntax highlighting
Bug: T260138
Change-Id: Ic9b95d6331bf85704822a69483880faaaa578a0e
2020-11-25 15:18:01 +01:00
Thiemo Kreuz 3e9bb4fb08 Replace all .png images with rgba() background colors
The rgba() syntax is supported for a very, very long time now:
https://caniuse.com/#feat=mdn-css_types_color_alpha

Notes:

I realized the numbers in these file names are actually their
transparency in percent (more precisely their opaqueness).
4 is 4% which translates to 0.04 in the rgba() syntax.

I used Gimp to pick the opaque color values from the images.
Gimp makes this easy. No guesswork or calculations needed.

For multiple, stacked images I calculated the colors by
averaging their RGB values (considering how opaque each color
is). Note this is actually *more* precise than the stacked
images before. Stacking alpha colors is flawed. For example:
Let's say we have an rgba(255, 255, 255, 1) background.
Layering a half transparent rgba(255, 0, 0, 0.5) on top means
half the background shines through. This averages to
rgba( 255, 127, 127, 1). Now we stack rgba(0, 0, 0, 0.5) on
top. Again, half the background shines through, resulting in
rgba(127, 63, 63, 1).

When we apply the two colors the other way around, the result
is rgba(191, 63, 63, 1), a much brighter red.

This flaw doesn't happen when precalculating the averages, as
done in this patch.

Change-Id: I29026864714c5f90c2613af57f08693e7e2b996c
2020-08-11 14:24:20 +02:00
jenkins-bot f40872ec83 Merge "Fix 'setSelection' in textSelection API" 2020-07-15 19:21:51 +00:00
Ed Sanders 9f566d6046 Fix 'setSelection' in textSelection API
focus needs to come after setSelection

Change-Id: Ib073ddad445e05c4bc042b9c382a7d74369e29e1
2020-07-12 15:10:58 +00:00
Pavel Astakhov a9da1fa59e Load pluginModules in CodeMirrorAction class
Change-Id: Ia698be63171868cf568b136df89ce3e48eab1340
2020-07-10 17:12:23 +06:00
Ed Sanders 89f52f6fbb VE: Add explicit dependency on targetLoader
Change-Id: I3d67837b462e0b79e124eff158bd7f88b5aaf63e
2020-06-30 22:47:41 +01:00
Ed Sanders 2518861bc1 build: Update devDependencies
Change-Id: I2f2967a1525c6a66eba2f5fc225e74b89380c5dd
2020-06-12 22:51:38 +01:00
Bartosz Dziewoński d23ffa17cb Update VisualEditor styles for Vector changes
Bug: T252471
Change-Id: I6ba64f2deaa27172842ee5f71363708758324aff
2020-05-12 00:42:03 +02:00
Ed Sanders 4d53bcbe09 VE: Don't load CodeMirror code until tool is activated
This saves about 300k uncompressed / 80k compressed whenever VE loads!

Change-Id: I7cf1c35292c2ea48cc15ceb4c22d4473a25484e9
2020-03-19 20:23:24 +00:00
Fomafix 6075e4cb83 Enable spellchecking on Firefox
The spellchecking was disabled for Firefox on non-Mac systems because
Firefox had a bug and inserts characters (like B) into the content when
enter an access key combination (like Shift+Alt+B).

Firefox 65 fixed the problem by changing the default for
dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content
from false to true.

The old behavior can activated in about:config by setting
dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content = false

This change reverts 29f6b48eeb.

Bug: T177509
Change-Id: I23773b2ea2a154269a5b3064cd8d9e9132051c38
2020-02-29 22:54:43 +01:00
AronDemian d0418ae8bb Don't let CodeMirror set the font to monospace if it's set on an ancestor.
Bug: T245568
Change-Id: I135bf0f7bf73e0d9faaa43c565cef43c5c934a34
2020-02-29 18:01:27 +00:00
AronDemian d70bd9d1ae Unify monospace font stack. Avoid potential sizing bug caused by weird browser behavior with font-family: monospace;
Problem: browsers implicitly and unexpectedly set the font-size to something around 13px with `font-family: monospace;`, but not with `font-family: monospace,monospace;`.
See:  http://code.iamkate.com/html-and-css/fixing-browsers-broken-monospace-font-handling/

Bug: T176636
Change-Id: Ied24a0cde7db4a6092d2cd7a6207d0a361424c3f
Related: T245568
Related: T245476
2020-02-28 04:44:07 +00:00
Derk-Jan Hartman 006d4ba9d8 Add comment to make usage of jquery.ui module discoverable
Change-Id: I79a54686024b22e2851bd396bb51101ca84626fa
2020-02-25 22:44:34 +00:00
Fomafix b17c8b7557 Move check for 'usebetatoolbar' from JS to PHP
This change avoids useless loading of the module 'ext.CodeMirror'.

Change-Id: I2637487b72c028d272748f2891239401412f77b5
2020-02-23 20:50:17 +00:00
AronDemian f0e689d203 Remove the unnecessary 1.5em padding in MinervaNeue skin that misaligns highlights.
Bug: T245532
Bug: T245568
Change-Id: Ib29678eb38ebb5a5d2975a087e55b2ddd2a4b35d
Related: I135bf0f7bf73e0d9faaa43c565cef43c5c934a34 - T245476
2020-02-19 15:00:43 +01:00
Bartosz Dziewoński 5a1501d46f VE: Update padding to match VisualEditor changes
See Ib7ffbf09d5aa23fddb894aa3b081ec993ddcee2d.

Bug: T238678
Change-Id: Ia9d38599e76b63147318c6604dbd9b9fabf35b16
2019-12-13 14:54:03 +00:00
Ed Sanders a134e66777 Don't replace whitespace characters in VE
Bug: T153434
Depends-On: Ic4a5ab803c89b3671f452579bca0da08b779bdfe
Change-Id: Ic3d848ff86cceceeeea9385bfc49ad2241e3801b
2019-11-14 22:30:32 +00:00
Ed Sanders cf9885b586 Match tabSize to surface view CSS property
For browsers that don't support the property, assume
the default value of 8 is used.

Change-Id: Icb9a97fa79e08458bf717903f1d7b68e433e7904
2019-11-14 22:30:32 +00:00
Isarra 90ac9d3475 Remove Timeless VE styles, too many variables to do them properly here
Move this stuff to Timeless itself since we can just reuse the width cutoff
and padding variables directly there and don't need to worry about them
randomly changing.

Corresponding change: Ic64b9786cb7186dba3eb2042a3238149c3bb44c6

Bug: T230756
Change-Id: Ia7168341bcadbc60e307b58b67afc1975a2424f9
2019-08-20 20:26:45 +00:00
Derk-Jan Hartman d1a3e49265 Highlight match end tag with different capitalization
This recoginizes <ref></Ref>

Bug: T179321
Change-Id: Ib1e501f97654a019281eddd6cc69ea3b979daec7
2019-04-14 01:25:40 +02:00
jenkins-bot fc4d4b0c36 Merge "Do not load module 'ext.CodeMirror' when CodeEditor is active" 2019-03-20 21:31:03 +00:00
Fomafix f0757cb0dc Do not load module 'ext.CodeMirror' when CodeEditor is active
Change-Id: I8fd0de727f2ebb1bf9f23981438d6cafa962ad17
2019-03-20 21:01:35 +00:00
jenkins-bot d48a8caa0d Merge "Conditionally load CodeMirror lib" 2019-03-15 08:50:49 +00:00
Derk-Jan Hartman 758523b65f Conditionally load CodeMirror lib
Also remove two unneeded dependencies

Bug: T209824
Change-Id: I5b528bde346780ca5ae5d615c4ca0d617a6cd615
2019-03-14 23:31:18 +00:00
jenkins-bot 71a96af684 Merge "Make Special:JavaScriptTest pass on Webkit and on Firefox" 2019-03-12 10:32:28 +00:00
jenkins-bot f6c86b9867 Merge "build: Update eslint-config-wikimedia to 0.11.0" 2019-03-06 14:39:37 +00:00
jenkins-bot f048f45b50 Merge "Use 'wikiEditor-toolbar-doneInitialSections' as trigger" 2019-03-06 14:39:27 +00:00
Ed Sanders 37b49bfdc4 build: Update eslint-config-wikimedia to 0.11.0
Change-Id: I7ca5276791d9add0709387422016d7193e8d9945
2019-03-06 12:10:29 +00:00
Fomafix 9c04302f23 Use 'wikiEditor-toolbar-doneInitialSections' as trigger
Also refactor out single use functions and call enableCodeMirror
from within addCodeMirrorToWikiEditor.

Change-Id: I77d37ae401483e187fe0bc355d7173b57fbe454b
2019-03-06 12:09:28 +00:00
jenkins-bot 8a1e8552f3 Merge "Wait for DOM ready before querying DOM" 2019-03-06 11:59:14 +00:00
Fomafix 4181729151 Wait for DOM ready before querying DOM
This avoids a race condition on loading.

Change-Id: I31c01f9c2b2025b4a46d5afc6ada5044f750eff7
2019-02-25 21:55:31 +01:00
Fomafix ebd382f004 Make Special:JavaScriptTest pass on Webkit and on Firefox
CodeMirror inserts

 style="padding-right: 0.1px;"

only on Webkit.

The test case now strips this pattern from the rendered HTML before
comparing with the expected test case output.

Change-Id: I34b201f790d3d85a5f51d8200bf8219f11d14506
2019-02-25 08:14:58 +01:00
Fomafix 5161c6abe9 Make Special:JavaScriptTest pass with and without extension Cite
Change-Id: Ib3bae7968c7d1eb0d5f862f0410f016f47abcd15
2019-02-25 08:10:32 +01:00
Ed Sanders 7604581cc1 Remove obsolete aliases from closures
Bug: T208951
Change-Id: I64c2966b7c41d6b2b1911e2fb52e4c7364bf7964
2018-11-12 13:19:41 +00:00
James D. Forrester 8ac2d11b1b Drop support for MediaWiki core's removed "2006 wikitext editor"
Change-Id: Ib8d104ddf104cfeeee1fc7a055293a03fe8e2d3d
2018-10-25 14:06:59 -07:00
Bartosz Dziewoński 079d240a2c ve.ui.CodeMirror: Fix padding to match VisualEditor's padding
VisualEditor's default padding for the source editing surface was
changed in Icdc6f1e2a7544ebbd828f85ff370113a0e06983a (June 2018).

Since then the alignment of editing surface and CodeMirror syntax
highlighting surface was broken in skins that don't override the
default padding (basically every skin except Vector and MonoBook).
Unfortunately Vector and MonoBook happen to be the only skins we
officially support and actually test, so the issue went unnoticed.

Bug: T205154
Bug: T205658
Change-Id: Ic85a6c20b266f6b93ab8ec9c2d35acff679f31bc
2018-09-27 22:06:00 +02:00
Ed Sanders ef8c62c74b Use renamed ve.visibleWhitespaceCharacters
Change-Id: I246079505d4c37406b3f99ca17b7e8e926adaec5
2018-09-24 16:34:54 +01:00
jenkins-bot 7dd9688663 Merge "build: Update linters" 2018-09-13 12:27:47 +00:00
Ed Sanders 1be09a9a1d build: Update linters
Change-Id: I8d3aaf0b7d453033b72e5d6622b8f54df2c86bca
2018-09-12 00:03:19 +01:00
Derk-Jan Hartman d5124e2920 Make use of new WikiEditor 2010 toggle tool
Bug: T198781
Depends-On: I8b7fd41571a48fa4f6560790d94bb966972e740f
Change-Id: Id275142c0d50ca6a133129eebeee8cfc5c1ca99a
2018-07-25 01:12:28 +02:00
Derk-Jan Hartman 4ebe54a588 Focus before setting the cursor/selection
Bug: T197263
Change-Id: If5efed656746e3e40fcda118e487cdcb00e0114a
2018-06-26 21:55:09 +00:00
jenkins-bot 7fa197b2dc Merge "Accessibility: mark syntaxhighlight button as a switch" 2018-06-18 16:04:35 +00:00
Derk-Jan Hartman 42e3dc7cdb Accessibility: mark syntaxhighlight button as a switch
* Protect from setActive not being defined on the old toolbar button
* Use role is switch on the button, since WE only supports simple
buttons
* Add the checked attribute to reflect state of the toggle button

Bug: T196512
Bug: T197534
Change-Id: I48dfef1740f124105f65859ce4f51098f1157fd0
2018-06-18 15:53:37 +00:00
jenkins-bot 579611ff5e Merge "Accessibility: Disable both directions of tabbing in CodeMirror" 2018-06-18 03:41:25 +00:00
Derk-Jan Hartman 736c63fd0b Accessibility: Disable both directions of tabbing in CodeMirror
Bug: T197534
Change-Id: Ia05c3ccbdb4baa8e701bf46478c42d2473777535
2018-06-17 19:24:14 +02:00
Max Semenik 63647bb5dc Remove all BetaFeatures support
Bug: T185030
Change-Id: I1ad451acfd163c783e7b8ec604d8695c14342667
2018-06-13 16:42:40 -07:00
Max Semenik f973652942 Disable ULS when CodeMirror is on
Bug: T194102
Change-Id: I25894d98a28e2c6096796ab912cc0ee04dd0a6e3
2018-05-30 13:07:07 -07:00
Ed Sanders 341a67496a Simplify target lookup
Change-Id: I00449f043c391c7648e2c17651d15c2807044402
2018-05-12 13:10:05 +01:00
Ed Sanders fca1d62a6c Apply line height selector to CodeMirror line wrapper
Bug: T193219
Change-Id: I7973b5e1a4f602c0fc371d78a1ebead093c48e74
2018-04-27 21:42:45 +01:00
jenkins-bot d3c7f3cdd4 Merge "Use CM API for setting document direction" 2018-04-25 18:36:32 +00:00
jenkins-bot 466fca0ec0 Merge "Load CodeMirror with VE always" 2018-04-25 16:04:39 +00:00
Niharika Kohli 7c848abd8d Load CodeMirror with VE always
This patch makes Codemirror on VE independent of the beta feature,
making it always load.

This is a first step to graduating CodeMirror out of beta.

Bug: T191923
Change-Id: Ide794e8f986d3f0455ff282819c71d9144dd75db
2018-04-23 20:54:43 +00:00
jenkins-bot 6e2bdac5d2 Merge "Remove 'Try syntax highlighting' popup for all users" 2018-04-18 21:02:25 +00:00
Ed Sanders dcf28f37a1 Use CM API for setting document direction
Bug: T191923
Change-Id: I68ee7de8ff2d26044fc8a71a04ade65b5d4420c8
2018-04-16 16:53:29 +01:00
Ed Sanders d428893b80 Merge selectors for VE & CM surfaces, and add 'hyphens' rule
Keep all our font rule settings in one place to make it
easier to keep them in sync. Also add a rule for 'hyphens' in
case the browser default has changed.

Bug: T192019
Change-Id: I2c27e5075a9bc6aaed9fe048d163f57976708357
2018-04-16 16:43:35 +01:00
MusikAnimal 7d99bbefde Remove 'Try syntax highlighting' popup for all users
A Node script was used to remove the now unused i18n messages.
This same script sorts the messages alphabetically, so it looks
like some unrelated messages were changed, but they weren't.

Bug: T191297
Change-Id: I69cce06133c1d055d31d12ebc8408123c187b574
2018-04-12 18:22:31 -04:00
jenkins-bot 6d9bc58727 Merge "Fix some small edge cases with font matching" 2018-04-12 16:12:00 +00:00
jenkins-bot fb20072a4a Merge "Unbreak VE integration in IE11" 2018-04-02 15:58:24 +00:00
jenkins-bot 6772e087e5 Merge "Tests for MediaWiki CodeMirror syntax highlighting" 2018-03-29 23:17:39 +00:00
Ed Sanders c09151d659 Fix some small edge cases with font matching
Change-Id: I6e2df8e13f19a29a3a80fbbfc0ed5332c33eb584
2018-03-27 22:35:00 +01:00
Ed Sanders 4f2ace3ad9 Unbreak VE integration in IE11
Element.remove is not supported in IE11 so use
parentNode.removeChild.

Change-Id: Iacfdc2fb563d5ed168dc691ecf439e60e94d4e2a
2018-03-27 21:46:00 +01:00
Ed Sanders 6d92dd818d Use upstream OOUI icons for WikiEditor toolbar
Also uses upstream tool-active styling, which was
based on cm-on.svg.

Depends-On: I3e6f65f6f290778d3fbfa22f5d212c26fee12a86
Change-Id: Ib42be9f8b87efe1387eb5c77698fd2f0af0a673d
2018-03-23 13:43:30 +00:00
MusikAnimal 4d2783eb3e Tests for MediaWiki CodeMirror syntax highlighting
Bug: T169592
Change-Id: I0750d3a320af5451f847e6062f82523fb18f12bc
2018-03-20 16:27:55 -04:00
jenkins-bot 0e4bb8feb6 Merge "Don't match // as protocol unless used in a link" 2018-03-15 23:51:21 +00:00
MusikAnimal 5c8eb20c33 Don't match // as protocol unless used in a link
Bug: https://phabricator.wikimedia.org/T185069
Change-Id: I2111e7c7ae599c5aed2f5ae779bc3d7b2d8ce82a
2018-03-13 22:51:35 -04:00
MusikAnimal ccbce0e69d Highlight void tags and invalid self-closing tags correctly
Bug: T170238
Change-Id: Ice1bdae3d16cf365da14c6df0e8d91d2b914e074
2018-03-13 22:18:59 -04:00
jenkins-bot b7a201e2f0 Merge "Fix highlighting of table headers on single text row" 2018-03-13 22:39:01 +00:00
MusikAnimal 62a53c5905 Fix highlighting of table headers on single text row
Bug: https://phabricator.wikimedia.org/T179534
Change-Id: I6e353d52af849678da63624e456ec2a82c680df4
2018-03-13 18:23:16 -04:00
jenkins-bot 25302e1be3 Merge "Add <translate> as a permitted tag" 2018-03-09 21:59:26 +00:00
Ed Sanders 1dc74c66fe Avoid using bold with VE+CodeMirror
We can't guarantee the preserve glyph width, e.g.
on Firefox with Chinese characters.

Bug: T184467
Change-Id: I6fc92fcd034bda3d9a94749935aae03c8373f7c5
2018-03-07 19:56:51 +00:00
jenkins-bot c2e1f91c7d Merge "VE: Use different approach for transparent text issue" 2018-03-06 16:35:15 +00:00
MusikAnimal 980f3d2848 Add <translate> as a permitted tag
Bug: T172456
Change-Id: I2315053b79bfd2dd009a98c0fe824ccdbcaf431c
2018-03-05 15:01:45 -05:00
Ed Sanders 06af670325 VE: Use different approach for transparent text issue
Deferring the insertions can lead to sync issues, so use
a different technique to selective refresh the CodeMirror
view when the height changes.

This reverts commit 8e3d96f75f.

Bug: T188473
Bug: T185184
Change-Id: I502501cc0325db64f29a67716306733859d102a9
2018-02-28 12:38:44 +00:00
Ed Sanders 9c59f7ede5 Remove unused mode files
We currently only provide modules for
* wikitext
* css
* javascript
* xml
* htmlmixed
* clike
* php

Change-Id: If47827f61043bd2c474ec160af56f651b3cf3af0
2018-02-28 12:24:30 +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
Ed Sanders cc611f4254 TextSelection: Make chainable methods chainable
Bug: T188119
Change-Id: I40030e1cbd3bc77a0db424d38cd61815deac2e12
2018-02-26 11:47:43 +00:00
jenkins-bot b0ee15034a Merge "VE: Match whitespace rendering of ve.ce.TextNode" 2018-02-25 22:40:46 +00:00
jenkins-bot 348949d15b Merge "Defer update of CM surface to avoid invisible text" 2018-02-25 20:58:45 +00:00
Ed Sanders 8e3d96f75f Defer update of CM surface to avoid invisible text
Bug: T185184
Change-Id: I0b115d892ab322911c895dda030b77f35cc9195a
2018-02-25 18:05:19 +00:00
Ed Sanders 8b27277b20 VE: Refresh rendering after surfaceReady
Bug: T188215
Change-Id: I4c53f554d8091aa71ce59fe04857b588209639d3
2018-02-25 17:58:32 +00:00
Ed Sanders 452d6d0a80 VE: Match whitespace rendering of ve.ce.TextNode
Bug: T187694
Change-Id: Ie27e9862e0f55fcc10af91a2bdd9c5d21d49ddc4
2018-02-19 10:43:53 +00:00
Ed Sanders 3e0d9773d4 textSelection: Replace encapsulateSelection with replaceSelection
encapsulateSelection is now defined in terms of other methods,
so we don't need to duplicate it here.

Follows on from T185917.

Change-Id: I1f99b3140ed363658ed2724a58c8b34ef20769fa
2018-02-09 10:31:47 +00:00
Ed Sanders b05b537744 Simplify textSelection overrides using 'register' and 'unregister'
Also add support for .textSelection() on the .CodeMirror element.

Change-Id: I46ac070ca141c3c2f993bee6ab898c96cb1edd4f
2018-01-30 06:38:50 +00:00
Ed Sanders e795883f0d NWE: Fix padding in Vector
Bug: T185299
Change-Id: Iea8e61654608259ddc90286aef59014a37e4f44d
2018-01-19 10:13:53 +00:00
jenkins-bot 6a2d427a9b Merge "Make NWE integration background transparent" 2018-01-04 16:30:52 +00:00
jenkins-bot f3f82ae47a Merge "Fix WikiEditor dependencies" 2018-01-04 16:30:22 +00:00
Ed Sanders 8d998f97ed Make NWE integration background transparent
Allows for VE's placeholder text feature to work.

Change-Id: Ieee01baf3dc049f248a97408af70499dcea8f4c9
2018-01-04 12:37:42 +00:00
Ed Sanders 12d420b7e9 Fix WikiEditor dependencies
Change-Id: Ibaa17e581ada5fcb202217797e70f9fed2510ec4
2018-01-04 12:36:55 +00:00
Ed Sanders 9df6ec9df8 Expect that deprecated mediawiki.toolbar may not be available
Bug: T177098
Change-Id: Icaf51c234981b4572362a0d76bf0b4b6653f3854
2018-01-04 12:35:36 +00:00
Ed Sanders 9960ed601f Remove font-size now it is set by editfont
Bug: T180678
Change-Id: Ic9e8bdb3b34dbb2f2c5748d6bb57e9da90112118
2017-12-21 12:21:57 +00:00
jenkins-bot 4df91bb67a Merge "Fix target detection for jquery.textSelection overrides" 2017-12-21 01:07:21 +00:00
Max Semenik dee8f42080 Fix target detection for jquery.textSelection overrides
CM intercepted textSelection() globally but assumed
nobody will ever need to call it for anything but wpTexbox1.
Thus, attempts to get edit summary returned article text.
Lots of things can probably be fixed in this area, but here's
the beginning.

Bug: T177175
Bug: T179287

Depends-On: I113394a473e8fe534f17815676ec7014203db7d6
Change-Id: I72d7d72b2a891a0ad242a565dddc076fa6dd1bd1
2017-12-19 21:00:14 +00:00
jenkins-bot d25705d804 Merge "Disable WebkitTextFillColor in Firefox+OSX" 2017-12-12 19:44:09 +00:00
Niharika Kohli a6c9441490 Don't break codemirror if wikEdDiff is enabled, only if wikEd is enabled
Bug: T178348
Change-Id: If579d4da99f364e73dec5a7e6bed87019431386b
2017-12-05 19:15:12 +05:30
David Sn 62894aafff Update comment text color CSS
This patch changes the comment text color
to #84A0A0, as suggested by Kaldari in T170067.

Bug: T170067
Change-Id: I016b8ce360a06f14b02cee13b629fa578c889347
2017-12-05 09:32:34 +00:00
jenkins-bot daef8e333c Merge "Unify BetaFeatures SVG screenshot markup" 2017-12-01 19:23:28 +00:00
Prateek Saxena d0653940df Unify BetaFeatures SVG screenshot markup
- sort attributes
- indentation
- remove unnecessary ids

Bug: T180427
Change-Id: I04d37d4c58aa3499af241dc434985a98a13f51ea
2017-12-01 18:52:17 +00:00
Ed Sanders 80241fb717 Disable WebkitTextFillColor in Firefox+OSX
Avoids opaque selection covering text.

Bug: T175223
Change-Id: Iede96501d4a03ccd80488b4661c18647eb9118e1
2017-11-30 18:05:52 +00:00
Ed Sanders 0296e2dcad Fix typo in name of non-webkit hide class
Also increase opacity to 40% so selection & cursor
are more visible.

Change-Id: Ia957f816de9003eb8b709de3d7993bbfef99e3bc
2017-11-30 16:35:57 +00:00
jenkins-bot 530c2e3684 Merge "Remove eslint-disable-next-line no-use-before-define" 2017-11-29 19:04:25 +00:00
Fomafix 394a8b7183 Remove eslint-disable-next-line no-use-before-define
Since 7ac2322 this is not needed anymore.

Change-Id: I4cc5ea402286e418b30fd9ddba72c7ef434fbcb2
2017-11-25 23:07:57 +01:00
Prateek Saxena e7154d0852 Update betafeatures icons' colors
Base80, Yellow90, Yellow50, Accent50

Old: https://phabricator.wikimedia.org/F10949243
New: https://phabricator.wikimedia.org/F10949242

Bug: T180427
Change-Id: Iebd9026b37bf63d66a3d0976302e09c4df59e81d
2017-11-23 10:36:04 +05:30
jenkins-bot 99b919f626 Merge "Execute codeMirror.save() on beforeunload" 2017-11-08 00:21:15 +00:00
jenkins-bot 5cd02ddca7 Merge "Moving code for adding the toolbar button to its own function" 2017-11-07 03:24:29 +00:00
jenkins-bot d2855c76f4 Merge "Make textbox height flexible with CodeMirror" 2017-11-07 01:26:17 +00:00
Niharika Kohli a0062e3100 Make textbox height flexible with CodeMirror
Bug: T170906
Bug: T176449 (hopefully)
Change-Id: Ic0ac663c413db5c29ae786d3c17f7396ad620226
2017-11-06 17:20:51 -08:00
Kaldari a6e4f5c6d6 Prevent loading CodeMirror if wikEd gadget is enabled
Not a great solution, but will prevent most of the damage in the
meantime, for example, people losing their edits.

Bug: T178348
Change-Id: I434878a2325df01ad27f590f296738ff1f93320f
2017-11-06 14:48:50 -08:00
Kaldari 763e8cbf0b Moving code for adding the toolbar button to its own function
This is to make the code more readable and easier to follow.

Change-Id: I6972038ca8a45bf3d0c119e93cf1af70dd424a82
2017-11-06 14:33:38 -08:00
Fomafix 7ac2322b23 Reorder functions to avoid forward references
The eslint-disable-next-line no-use-before-define are removed.

Change-Id: Ifad97ac467b7bf4b1051015129eca3e2f5a32807
2017-10-16 06:20:19 +02:00
jenkins-bot 36c096c86f Merge "Remove call codeMirror.save()" 2017-10-13 01:55:20 +00:00
jenkins-bot 61bd4d7c92 Merge "Disable spellchecking for Firefox users on non-Mac systems" 2017-10-04 23:55:03 +00:00
jenkins-bot 02062173b6 Merge "Turn on native CodeMirror spellcheck feature" 2017-10-04 23:54:32 +00:00
Niharika Kohli 29f6b48eeb Disable spellchecking for Firefox users on non-Mac systems
Bug: T95104
Change-Id: I86dbee82def94a38156f090d519f969f221c72e1
2017-10-04 15:37:02 -07:00
jenkins-bot ca3ff81fc1 Merge "Remove reference to editfont-default" 2017-10-03 18:48:23 +00:00
jenkins-bot 76671dc662 Merge "Respect beta feature in new wikitext editor" 2017-09-29 05:37:46 +00:00
jenkins-bot ea352c0f95 Merge "Set 'clear: both' on .CodeMirror for compatibility with gadgets" 2017-09-28 16:01:31 +00:00
Pavel Astakhov 249d757470 Update CodeMirror library to 5.30.0
Bug: T176685
Change-Id: I551b3b335be9b9ec05625482a14c32cc994f8df1
2017-09-26 09:28:20 +06:00
jenkins-bot 3f226d7223 Merge "Fix cursor position after extension loads" 2017-09-26 00:55:25 +00:00
Ebrahim Byagowi 975fddb114 Set 'clear: both' on .CodeMirror for compatibility with gadgets
.CodeMirror is supposed to magically replace it. Some gadgets'
interface displays incorrectly without it.

Change-Id: I27e2b5b462aa445a13f50dc99af57b4bb0ad3067
2017-09-19 21:37:05 +04:30
Fomafix 058037bba2 Remove call codeMirror.save()
codeMirror.toTextArea() already calls codeMirror.save().

Change-Id: Ifeb8c482149540832d6389a9337baffbf9ec03fb
2017-09-19 14:10:34 +02:00
jenkins-bot 1b6637bd43 Merge "Fix for function mw.toolbar.insertTags in chrome and IE" 2017-09-15 23:00:20 +00:00
Niharika Kohli 150cf016b2 Turn on native CodeMirror spellcheck feature
It's not fullproof. There's bugs where it forgets a string is misspelled
after re-rendering. But it's better than nothing.

Bug: T95104
Change-Id: I33718a71ff5734912ac59be2cd9575dd662ec2f7
2017-09-14 12:59:44 -07:00
jenkins-bot 5128648e0b Merge "i18n: use correct language and direction" 2017-09-13 18:45:12 +00:00
Ebrahim Byagowi a3e4ea6789 i18n: use correct language and direction
Change-Id: I6fd368f923b52a299633acb361748317ec18bdd1
2017-09-13 22:32:46 +04:30
Pavel Astakhov cd4bdebe8b Add highlighting of double underscore Magic Words as __TOC__
For testing:
__NOTOC__
___NOTOC___
____NOTOC____
_____NOTOC_____
______NO!TOC__NOTOC____
______NO{{TOC}}_____
______NO[[TOC]]_____
______NO'''TOC'''_____
__nOtOc__
FFFFF___NOtoc______
'''____________NOTOC______'''
__TOC___TOC__
__TOC____TOC__
___TOC_____TOC___
__TOC___TOC__
___NOTOC___
____NOTOC____
_____NOTOC_____
______NO!TOC__NOTOC____
______NO{{TOC}}_____
______NO[[TOC]]_____
______NO'''TOC'''_____
__nOtOc__
FFFFF___NOtoc______
{{__TOC__|__TOC__}}

Wrong, but not a big problem:
[[__TOC__|__TOC__]]

Bug: T170041
Change-Id: I0b2cfd02550c2685d241bdf3596507c5972878d5
2017-09-13 10:43:41 +06:00
Pavel Astakhov 3ce3e5554b Change the sas.js file mode to 0644
Change-Id: I759d135386f98e9eb32ce6fef932f73b4c05fb20
2017-09-12 11:14:10 +06:00
Sam Wilson 0ca61108d1 Change popup label colour to green
This is to stop it looking so much like a link that can be clicked on.

Bug: T174219
Change-Id: Icdae8ddf32aa0c08fe0d708eb289bafe53f9b589
2017-09-12 08:29:49 +08:00
jenkins-bot a8c4d4716e Merge "Fix word jumping (option+arrow key) for Mac" 2017-09-11 21:38:31 +00:00
jenkins-bot 53588392f9 Merge "Take out gray background behind indenting bullet in syntax highlighting" 2017-09-11 21:03:28 +00:00
Pavel Astakhov e727726d2a Fix word jumping (option+arrow key) for Mac
Bug: T175378
Bug: T174055
Change-Id: I7f648691ec3b36f9abe1c5c7fbe5c97e142f500e
2017-09-11 13:56:00 -07:00
jenkins-bot 9ba136850c Merge "Join the popup label into one message" 2017-09-11 20:19:03 +00:00
jenkins-bot fdb006a17c Merge "Fix home/end behavior" 2017-09-11 20:17:38 +00:00
jenkins-bot ef1d9c2be9 Merge "Update CodeMirror library version to 5.29.0" 2017-09-11 20:17:22 +00:00
jenkins-bot dba972cf9c Merge "Simplify setTimeout" 2017-09-11 18:57:43 +00:00
Fomafix f740a5cb2f Execute codeMirror.save() on beforeunload
This allows the browser to store the textarea on history changes.

Bug: T175509
Change-Id: I8cb2c492582e77bde0e666cd363d31e28bf960e4
2017-09-11 20:26:13 +02:00
Pavel Astakhov 701cdca90b Fix home/end behavior
Bug: T174514
Change-Id: I0f07ac1f4f3bc3a42c620ce88be026fdf42450c6
2017-09-11 21:01:43 +06:00
Fomafix eca881d11f Simplify setTimeout
* Use setTimeout instead of window.setTimeout.
* Directly call function and avoid anonymous function.

Change-Id: Ic396ef744d58fb722761a66f38390d2bb4848c2d
2017-09-11 16:19:55 +02:00
Sam Wilson b4b9da7e51 Join the popup label into one message
The popup label was being styled as two words from two different
i18n messages, each a different colour. This combines them into
one, moves the identifing class name up to the outer span, and
colours both words blue (the outer braces are left black).

Bug: T174219
Change-Id: Id1166f48ae4b3b8daff29be56dd92ef330dd9cef
2017-09-11 10:23:22 +08:00
Niharika Kohli 279103fea9 Render everything as long as user doesn't start typing/moving cursor
Bug: T174480
Change-Id: I106b1d0d2a68e8ba2b346fd6aaf06b530d18f8d4
2017-09-08 14:11:01 -07: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
Pavel Astakhov 41e83d2984 Take out gray background behind indenting bullet in syntax highlighting
Bug: T165001
Change-Id: I51576f46a8d204784755ef645bb5daf1930fe74e
2017-09-04 16:03:10 +06:00
jenkins-bot 94a08e27d6 Merge "Do not redefine the browser history navigation keys Alt-Left and Alt-Right" 2017-09-04 09:06:57 +00:00
Pavel Astakhov f71d17d8d1 Fix for function mw.toolbar.insertTags in chrome and IE
Bug: T164905
Change-Id: I15b60944a95f94b4a2e3b929fe4d00fe757961bd
2017-09-04 14:54:26 +06:00
Pavel Astakhov e1eaac762d Fix cursor position after extension loads
Bug: T174547
Change-Id: I8ce2c61884410c4ca47bd8cbc11d0902df7f1d4a
2017-09-04 13:49:06 +06:00
Ed Sanders f5210867ba Respect beta feature in new wikitext editor
Bug: T173480
Change-Id: I2ca5a33f09aefe0c3d31082270869a13cee14fc4
2017-08-30 22:53:55 +01:00
jenkins-bot ba091f4ee8 Merge "Add RTL support in VE source editor mode" 2017-08-29 15:59:28 +00:00
jenkins-bot 1e1a55600e Merge "Don't assume action=edit/submit is the old wikitext editor" 2017-08-28 10:44:41 +00:00
Max Semenik 54c032d732 Fix exception on some combination of quotes
Bug: T174060
Change-Id: Ie53b7260a98519f45d38d2a705b900142c77c801
2017-08-25 16:05:55 -07:00
Ed Sanders 439628712b Remove reference to editfont-default
Bug: T170223
Depends-On: I1ace59c980740fc785ccbd500e19cc8b71d46a5b
Change-Id: I1e0dcab462aaa8c924b49d42f8679359a449a62e
2017-08-25 18:46:01 +01:00
Ed Sanders 41f57b2184 Don't assume action=edit/submit is the old wikitext editor
VE will hijack action=edit, and not render the textarea.
Instead check for the textarea directly.

Change-Id: I024d130cd64dd755321f044c372bdcc8b7cdb5f2
2017-08-25 15:14:37 +01:00
Fomafix ae8696fea6 Do not redefine the browser history navigation keys Alt-Left and Alt-Right
Bug: T174055
Change-Id: I1e2acb927dfcc0799b78b2dc045c0208246ba111
2017-08-24 20:00:01 +02:00
Brad Jorsch a676e88ced Remove execute mode from non-executable
Change-Id: I9b75cd46e6179bd9166c5f3f8ccb09b61313e663
2017-08-24 11:56:59 -04:00
niharika29 c6ab876fe7 Update the CodeMirror icon in NWE to the highlight icon, like in the other editors
Change-Id: I92c61c0bb21fc80ee6ab3ffd521d59764e757f7c
2017-08-23 17:22:23 +00:00
jenkins-bot 60f6efeb47 Merge "Don't use tab indenting between array items" 2017-08-21 21:14:14 +00:00
Reedy 5cd288b203 Don't use tab indenting between array items
Change-Id: Ifbc293c5075c6518edbefd5d7c4b6ce2cd71ace3
2017-08-21 19:53:52 +01:00
Ed Sanders 29680aceb7 Add padding support for other skins
Change-Id: Ia7494545f2dda36bc2798c23ff8a2855212b77aa
2017-08-13 12:38:40 -04:00
Ed Sanders 11f592ba54 Add RTL support in VE source editor mode
Bug: T170001
Change-Id: I7223a57969a2299a86d73cfd57336e8d56086520
2017-08-13 11:10:54 -04:00
jenkins-bot d4d8d53661 Merge "Remove a workaround to clear broken 'background-image'" 2017-08-04 19:39:25 +00:00
jenkins-bot 796c3571bb Merge "Increase z-index of WikiEditor toolbar to above CodeMirror scrollbar" 2017-08-04 13:15:53 +00:00
Bartosz Dziewoński 3a1589d527 Remove a workaround to clear broken 'background-image'
No longer needed after Ib658651e04090ec4f5bc1f5bacbbfb0d7e7f893e
in WikiEditor.

Bug: T172500
Change-Id: I22e5a854ed6ee657d5f6c416cb4412184d10f1ac
2017-08-04 14:38:09 +02:00
Max Semenik a749945897 ext.CodeMirror.loader is unused, remove
Change-Id: I2b51fb2e4e20fef088503567ba0cf818a1d2c857
2017-08-03 17:54:28 -07:00
Kaldari 28a9dd7fac Only show popup if CodeMirror button exists
Bug: T170609
Change-Id: Ibe9aa1b7ffce2e7813aa9aa2ab45f349d8ad2082
2017-08-03 15:57:49 -07:00
Kaldari 34a8d7fbcb Updating beta feature graphics for new icon
Also slightly lightening default toolbar icons to match other
monochrome icons in that editor.

Change-Id: Idada1c3b99246a2374ec2b689cb91ed584d9293e
2017-08-02 11:38:56 -07:00
Sam Wilson 79bc712255 Switch icons to 'highlighter' symbol
This adds the new 'highlighter' symbol to the five CodeMirror SVG
icons, and regenerates their PNG counterparts (using Inkscape).

The only changes to the SVG files apart from the paths (and their
positions) are whitespace formatting. I'm not sure all those
gradients need to be there, but I guess someone did that for a
reason. :-)

Bug: T164441
Change-Id: Ibdb8ecf53eb03fb1d1805e788a3e497e4941263a
2017-08-02 11:20:44 +08:00
jenkins-bot bff703563d Merge "Preserve scroll position when switching" 2017-07-24 16:35:28 +00:00
Ed Sanders 7fe9e2e762 Popup: Use built-in features of PopupWidget instead of custom CSS
* Use OOUI buttons for the actions.
* Make the widget wider to accommodate longer titles in
  different languages.
* Don't show if CM already enabled

Change-Id: Ibde461a99929565c15b5e7c5ef3ad88e163fba05
2017-07-20 21:30:45 +00:00
Ed Sanders 60ab939b26 Popup: Build as DOM instead of HTML strings
Change-Id: Ib33b6b2a1f3e0f9c50398287822ae88305855a58
2017-07-20 21:30:37 +00:00
Ed Sanders cec399b4e3 VE: Disable mw-editfont when using CodeMirror
Due to using bold as a highlight style, the VE overlay technique
will only work with monospaced fonts.

Change-Id: I33e3e07cf0f3d8e25dd35623286eedf28ba20ae1
2017-07-20 21:30:22 +00:00
Ed Sanders 643faba0db Preserve scroll position when switching
This will be slightly off when you have scrolled past
headers which have a different font size, but it's better
than jumping back to the top of the document.

Change-Id: I62a73c30932c3dc1e538484edead9c5d2ed6c72f
2017-07-20 19:12:38 +01:00
Ed Sanders 410e442fd1 build: Update eslint, stylelint
Whitespace and regex escaping fixes

Change-Id: Ic706dfd3ed7efb16db104b054091bec0ba0cb5ed
2017-07-20 15:58:31 +00:00
Ed Sanders 16225450c8 VE CodeMirror: Don't handle any specialChars
Bug: T170382
Change-Id: Icf39a5efdc5a553cf5885e4de7189a37a9a7424d
2017-07-12 15:23:49 +01:00
Kaldari 71fadf6a95 Changing color of .cm-mw-mnemonic to match color of other HTML code
This changes the green for HTML entities to a slightly lighter
shade of green to match the green of HTML tags.

Change-Id: Ice51e96b0f5fac67d88375fe76630098d380afc9
2017-07-11 10:50:20 -07:00
Kaldari 4fc52b7ba3 Make sure enhanced editing toolbar is loaded before adding button
Bug: T169943
Change-Id: Id8828b0d49ecec5124430d15445739d73795d164
2017-07-10 14:16:36 -07:00
Ed Sanders 91397eb556 Ensure CM surface can't be edited in VE mode
CM surface is just for presentation, it shouldn't
be possible to focus or select anything in the surface,
so in addition to it being beneath the VE surface,
disable it through the CM API and disable pointer-events
with CSS.

Bug: T170170
Change-Id: Ief49c293f514e22bc6db5eebb3a11c1bc695432d
2017-07-10 18:02:22 +00:00
jenkins-bot f28f5adccc Merge "Rewrite VE<->CM synchronizer using transaction op walking" 2017-07-08 00:44:20 +00:00
Ed Sanders 6364cb4c04 Rewrite VE<->CM synchronizer using transaction op walking
Previous hacky method fell apart with multi-line transactions.

Depends-On: I465a3f6a8afcd6536293999eb40c01daeb9d905b
Depends-On: I800085eb3a5f7332eab356b62a34bfc603a29839
Change-Id: I66946d7e3f425d8dbbdae720756a7978fbe25582
2017-07-07 23:33:10 +00:00
Ed Sanders 40cc5449b3 Update BetaFeatures icon, use new template and cleanup slightly
Change-Id: I29b596aef4a203d0b5e5bad5616d3a52284e147b
2017-07-07 16:20:16 -07:00
jenkins-bot 21d4ae4042 Merge "Design fixes for Codemirror" 2017-07-07 18:13:07 +00:00
Niharika29 e8fa11ec94 Design fixes for Codemirror
Bug: T165178
Change-Id: If5b7c0807ff6fcdb30e1b8fe935b53ee0ca46a0d
2017-07-06 15:03:09 -07:00
jenkins-bot bc96cb80db Merge "Make sure popup appears for both classic and wikitext editors" 2017-07-06 17:38:51 +00:00
Kaldari 712b5466c8 Fixing SVG images for buttons
Older versions of MediaWiki apparently require SVGs to begin with
an XML declaration.

Change-Id: I149c3b2d0ecdc4d0cdfc4f793483c5c89f35b8fb
2017-07-06 08:10:10 +00:00
Niharika29 5dd4386821 CodeMirror fixes for beta feature deployment
Change-Id: Ib7c7ebaed4f8b1643bc4de506de8f2b443d33fa3
2017-07-06 00:12:06 +00:00
Niharika29 55092521c3 Make sure popup appears for both classic and wikitext editors
Bug: T165003
Change-Id: I4b1c9498df7931643ea3c39d6d2afd9384e47de0
2017-07-04 00:15:56 +00:00
Niharika29 a1b41c6099 Fixes for Codemirror popup patch
Bug: T165003
Change-Id: I52e3cdb3afde242451e9cab68baecc1ab77868dc
2017-06-30 18:43:50 +00:00
Niharika29 99e31d152f Show a popup for first time Codemirror users
Bug: T165003
Change-Id: I545a57bdb273ab6906711e2d65dc029293ecc02a
2017-06-29 00:20:14 +00:00
niharika29 48358c1f57 Add syntax highlight as a beta feature
Bug: T165543
Change-Id: If7eb2dc3f7c00a91e5ca39ae564f63efa07bbead
2017-06-20 05:07:53 +00:00
jenkins-bot a9cd58f25e Merge "Replace CodeMirror icons with new icons (#36C)" 2017-05-20 16:13:08 +00:00
Pavel Astakhov 8ff5f6afee Replace CodeMirror icons with new icons (#36C)
Bug: T164441
Change-Id: I2e185dfa468ede51bd1a0e41b3b4dcf43a74313c
2017-05-14 23:44:17 +06:00
Pavel Astakhov 0676a5263e Increase z-index of WikiEditor toolbar to above CodeMirror scrollbar
Otherwise the popup menu at WikiEditor toolbar displayed under
   the CodeMirror layer.

Bug: T165012
Change-Id: Ie4e32cccad00f05e09f99af1c7c9d503f4bcaa0f
2017-05-12 15:10:29 +06:00
Pavel Astakhov 0cdf013c73 Take out gray background behind list bullets in syntax highlighting
Bug: T165001
Change-Id: Iec64336881ee38938739cab76a3090542b1ff973
2017-05-11 12:10:15 +06:00
Ed Sanders 59aed7d2e2 build: Update eslint to 0.4.0 and make a pass
Change-Id: I580e7a2ed7276dc3b9546b497ecf2f8f4efe1aa6
2017-05-08 16:54:10 +01:00
Ed Sanders de6b08919b Use consistent label for button across editors
Change-Id: I1a299522e95cdb4a6e5bdbdda1c65d4fcec22133
2017-05-08 16:54:10 +01:00
Ed Sanders 7b01a98ad0 VisualEditor source mode support
Long-term todo:
* Performance will be poor on large pages due
  to using a auto-height textarea which CodeMirror
  doesn't optimise.

Change-Id: I16598fcdbeee51e6fae88376ec81f1c8552b383d
2017-05-08 16:54:10 +01:00
Pavel Astakhov c9b4aa65fd Refactor the Integration with other extensions (v 4.0.0)
This patch makes initialization easier and cheaper.

Since only the PhpTags extension uses the CodeMirrorGetAdditionalResources
  hook it was removed. Instead, the CodeMirrorPluginModules and
  CodeMirrorTagModes properties are used in extension.json file.

This patch adds ext.CodeMirror.lib.mode.php module for the PhpTags
  extension (with dependences). In CodeMirror there are a lot of modes
  they will be registered on request (if they will be requered for
  extensions).

Examples of integration:
* Cite: I1bf156fa813af4d5f891619f692047bbdb8a1a86
* PhpTags: Ie339f0475e63885e603defaee2cdcccd6a95fafc

Bug: T163238
Change-Id: Idb7a1a5769a1047ef2f7cd25a7152f73a6613225
2017-05-04 21:20:21 +01:00
jenkins-bot 8f8a68f056 Merge "wikiEditorToolbarEnabled: Rewrite if block as statement" 2017-04-27 01:45:49 +00:00
jenkins-bot 0f22c06b9c Merge "Swap the enable/disable labels" 2017-04-26 17:19:25 +00:00
Pavel Astakhov 3954552b43 Swap the enable/disable labels
Bug: T163916
Change-Id: Ie868556fe31ea4aae976e94526cc96bb79803626
2017-04-26 22:48:13 +06:00
Pavel Astakhov 6ce71b3667 Add additional classes cm-mw-ext-{tag name} to extensions tags
They can be used to create specific color themes (T163533)
See also bug T161694

Change-Id: I499e1e4b2e1e4fa972e28fc05a65047ecadc204c
2017-04-23 13:51:24 +06:00
jenkins-bot 1c7bac5c17 Merge "Syntax highlighting: Switch extension tags to green" 2017-04-21 18:34:38 +00:00
Ed Sanders 9205f900bd wikiEditorToolbarEnabled: Rewrite if block as statement
Change-Id: I516a8e8f1bf53dc784a2ab3ff49bd20b172dc6e8
2017-04-20 23:31:58 +01:00
Kaldari 14eea32e44 CSS hack for ext.wikiEditor module no longer needed
Change I7c7c3ba49 fixed the underlying bug.

Change-Id: Ida8a5dbd4e3602484f723d43bfa562389565e9d4
2017-04-20 13:59:42 -07:00
Pavel Astakhov e3ca35adf5 Syntax highlighting: Switch extension tags to green
Bug: T161694
Change-Id: I1817cd151ac253998f0381126a60960106db3848
2017-04-20 23:45:11 +06:00
Pavel Astakhov b7bc84d783 Remove some outdated code
Since WikiEditor uses wikiEditor-toolbar-doneInitialSections event
  we don't need to add it to ResourceLoader dependencies.

Bug: T161475
Change-Id: I7c7c3ba495c0292d2df052145e7930c86fcb48f5
2017-04-18 14:07:51 +06:00
niharika29 2fb08d548f Swap parser function and assessment template colors
Bug: T162206
Change-Id: I2d8705a8ec44c668aebc4728cd84e0953cd497a1
2017-04-17 20:01:33 +00:00
jenkins-bot 36d0cf9fea Merge "Add some extra spacing around H1s and H2s" 2017-04-06 00:14:16 +00:00
Pavel Astakhov 6be1fbc134 Add some extra spacing around H1s and H2s
Bug: T161559
Change-Id: I0d10d39313c11fddefadff7ab13c262bd6606ed0
2017-04-05 11:18:12 +06:00
Pavel Astakhov cf07be26b3 Take out the blue highlight for cursor location
Bug: T162204
Change-Id: I6aca0103a2603bf37ff856a7dd6f2aa4137ee53c
2017-04-05 10:50:42 +06:00
Reedy c4e0cf86d4 Fix some indenting
Change-Id: I6bb9a8875d053ddac564d6d74ad34c8c9b0332ae
2017-04-04 01:15:09 +01:00
Ed Sanders 02c22f53ff Styling fixes
* Move CSS out of mediawiki.css which is for wikitext
  highlighting rules.
* Account for wikieditor-ui adding wrappers even when
  disabled.

Change-Id: I0fca693a6771ee1d790800c9afd5c7091fda20c1
2017-03-27 14:02:25 +01:00
Pavel Astakhov 29fa173331 Fix CodeMirror state when initializing
Before CodeMirror was enabled every time (ignoring user settings)
since switchCodeMirror was called in initialisation and some others bugs...

Change-Id: I418c64000e05dbfac62f5bb2327cfe7ed74efb17
2017-03-27 14:23:21 +06:00
Ed Sanders 3980fa0af0 Cleanup and use SVG icons
Change-Id: Idcad8e2554c5e44155c88bd925186095e3aad930
2017-03-27 02:59:13 +00:00
jenkins-bot 47b8f19d8e Merge "Switching fixes" 2017-03-27 02:54:23 +00:00
jenkins-bot 1512e38c4e Merge "Only give code mirror focus for specific commands" 2017-03-27 02:54:23 +00:00
jenkins-bot eaac96c5e1 Merge "Update CodeMirror to 5.25.0" 2017-03-22 21:57:42 +00:00
Ed Sanders 806527d8a1 Switching fixes
* Fix state toggle in WikiEditor
* Update options API code
* Fix font-size and line-height so text doesn't move
* Append to WikiEditor after loading so it appends in
  correct part of DOM.
* Only add border in classic editor

Change-Id: I5e80298030633d4859d01a92b6c61ef1fa969e96
2017-03-22 11:48:41 +00:00
Ed Sanders 53c64371dd Only give code mirror focus for specific commands
Previously focus was being called even for getContents, causing the
editor to instantly steal focus from the edit summary input (!!).

Change-Id: I5a14850d90a7c5605026e1fac192585ee62b4615
2017-03-22 11:48:41 +00:00
Ed Sanders 66ba217ba2 build: Replace jshint/jscs with eslint, introduce stylelint
Change-Id: I9b5afb39f5a0d32e722b2a1f56c219b8c85b451c
2017-03-21 16:45:56 +00:00
Ed Sanders 75ca882e38 Update CodeMirror to 5.25.0
Change-Id: I47680ba98e1ab39360608aa7a923e7fee7db615e
2017-03-21 15:05:52 +00:00
Pavel Astakhov faf7246cd4 Update CodeMirror library to version 5.16.0
Change-Id: Iae9df045d0e897e03b3edcb935188731e019811f
2016-07-19 17:05:52 +06:00
Pavel Astakhov 339e677bee Remove usage of mod function
Change-Id: Id84d85318ef498b4aa8fcbe073b8bc8a8c8c7ed7
2016-07-19 16:31:35 +06:00
Paladox 45ebd2d55d Update Jenkins tests
Test jshint and jscs through npm using latest version of jscs and jshint.

Add support for composer.json running phplint and in the future php code
sniffer.

Change-Id: Id8f11f9414fae8313dc18a857a07e11694354dcb
2016-03-03 13:29:48 +00:00
Legoktm bf5da5eec5 Revert "Compress PNGs with zopflipng"
This reverts commit a64a74ce7d.

Change-Id: Ifc03d61aabc711bde030f3e013669edc8f07a6b2
2016-02-27 23:32:49 +00:00
Ori Livneh a64a74ce7d Compress PNGs with zopflipng
Zopfli is the most efficient DEFLATE compression algorithm, trading run-time
performance for file sizes that are typically 3-8% smaller than those produced
by zlib with the maximum compression setting. Its output is Deflate-compatible,
so no specialized decoder is needed.

This change was created by running zopflipng against all the PNG files in this
repository. The exact invocation was:

  git ls-files --exclude-per-directory=.gitignore -- '*.png' \|
    parallel zopflipng -m -y {} {} \;

Files which zopflipng was not able to compress more efficiently were left unmodified.

Bug: T127608
Change-Id: I765f876aa2cf863479f93912efe387160b4ef348
2016-02-21 00:59:49 +00:00
Ori Livneh a97494e94e Compress PNGs with zopflipng
Zopfli is the most efficient DEFLATE compression algorithm, trading run-time
performance for file sizes that are typically 3-8% smaller than those produced
by zlib with the maximum compression setting. Its output is Deflate-compatible,
so no specialized decoder is needed.

This change was created by running zopflipng against all the PNG files in this
repository. The exact invocation was:

  git ls-files --exclude-per-directory=.gitignore -- '*.png' \|
    parallel zopflipng -m -y --iterations=500 --filters=01234mepb {} {} \;

Files which zopflipng was not able to compress more efficiently were left unmodified.

Bug: T127608
Change-Id: Iec319a37c5884798afa58145a30d496bb1c9d57b
2016-02-20 22:57:24 +00:00
Pavel Astakhov 7854e7c06b Update the CodeMirror library to 5.9 (v 3.4.0)
Change-Id: Ia36b0573809d632c0521477cea72268b5524efae
2015-12-14 11:28:57 +06:00
Paladox d51ef3cc2a Update the CodeMirror library to 5.8
Url:

- https://github.com/codemirror/CodeMirror/tree/5.8.0

Change-Id: I1634b34f47386dbb55951b7679bac3a197b17484
2015-11-22 19:15:54 +00:00
Pavel Astakhov 740cc73d1a Go to next field when TAB key is pressed (v 3.3.0)
Bug: T118180
Change-Id: Ic86736f0c2b657bd3b56c16f9243a4f123af6d5e
2015-11-18 14:34:08 +06:00
Pavel Astakhov 82f8acd450 Fix conflict with the CodeEditor extension (v 3.2.3)
CodeMirror will be not initialized if CodeEditor is used

Change-Id: I78ab2814beb0e40a878f6a02b7d3967c216afce6
2015-11-18 11:34:36 +06:00
Pavel Astakhov 3db709ef0c Skip setCodeEditorPreference for anon users (v 3.2.2)
Change-Id: If4f208b3edd73a100404f09f170fb3a060ce1c3c
2015-10-29 09:15:29 +06:00
Pavel Astakhov 991be29500 fix highlighting parameters inside a template transclusion (v 3.2.1)
Bug: T108450
Change-Id: Ic686fe6aa211988d8458037c275779f512d03563
2015-08-20 10:32:11 +06:00
Pavel Astakhov 9acce89672 fix bold and italic apostrophes (v 3.2)
Bug: T108455
Change-Id: Ie9e0d734004d062e4c347f7940eb34bdc231d026
2015-08-19 21:10:31 +06:00
Pavel Astakhov 66b518d8dd fix highlighting of external links, multiple apostrophes end link (3.1.14)
Change-Id: Ibbb4850edc04ed6b184fa59c51e1978d60cd1269
2015-08-14 13:22:47 +06:00
Pavel Astakhov 491f186e14 fix matching hr ---- (v 3.1.13)
Change-Id: I7ea6fa891d2c53da4ac9bd62319dad702a11b8d7
2015-08-14 12:03:41 +06:00
Pavel Astakhov e681dc6ce2 Add setContents to textSelection and JS hook for #wpTextbox1 (v 3.1.12)
Bug: T108711
Change-Id: I65f25108863339fdcfc55c030a1158c2cd789b91
2015-08-14 11:49:12 +06:00
jenkins-bot 745b2f05e1 Merge "Add translateable tooltip message for CodeMirror button" 2015-08-11 03:46:06 +00:00
Pavel Astakhov 443ccff873 fix function eatFreeExternalLink (v 3.1.10)
allow one '{' in free external link

Change-Id: Ieaa157b79cff9d05d8bed3ae536cfe45e7e4ae42
2015-08-10 23:30:05 +06:00
Pavel Astakhov 00f668e32c add highlighting of free external links (v 3.1.9)
Bug: T108448
Change-Id: I1311be98e346b9d85350eeb9a6dffaf08f344d56
2015-08-10 23:14:18 +06:00
Florian f2c5c5613b Add translateable tooltip message for CodeMirror button
Use a message, that explains a bit more, what CodeMirror is and indicate
what the button do exactly.

Change-Id: If8a0a8261cd811407cff4868dcf6475335b3f752
2015-08-10 17:57:09 +02:00
Pavel Astakhov 545d21ce61 add highlighting of indented tables (v 3.1.8)
Bug: T108454
Change-Id: Ib5344fa870954da166314c8ace916861bd71acf9
2015-08-10 13:48:48 +06:00
Pavel Astakhov 27a7499906 skip leading spaces in table syntax (v 3.1.7)
Bug: T108453
Change-Id: I348855b9ae8a4f571bb765df2b0819ebe3fda75d
2015-08-10 11:07:55 +06:00
Pavel Astakhov 19bced27dc add highlighting of table caption (v 3.1.6)
Bug: T108452
Change-Id: I543db4c26c1a0ed7314ae826ddd2876de7539bf2
2015-08-10 10:34:11 +06:00
Pavel Astakhov a3aee2406a Update the CodeMirror library to 5.4 (v 3.1.5)
Change-Id: Ic15062a6d07087771a1773657fff01f176c2de12
2015-07-07 11:50:59 +06:00
Pavel Astakhov ba5a12a679 fix readonly state and TextSelection (v 3.1.2)
Bug: T95149
Bug: T95150
Change-Id: Ia8660d5c2a6dca6a2a37bc60e36620f48aad3260
2015-04-06 17:33:39 +06: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
Florian Schmidt 3253edba8b Rework extensions setup (v 3.1.0)
* Cleanup the init process of this extension (PHP & JS setup)
* Make it useable for other extensions like MobileFrontend.
* Call new hook CodeMirrorGetAdditionalResources instead of CodeMirrorGetExtensionMode

Bug: T91796
Change-Id: I9763c40835c2edddafb0dcbacdf53a86f663b8cd
2015-03-16 16:45:18 +01: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
Pavel Astakhov 73963bb7a5 fix template page name regex perfomance (v 2.1.4)
Change-Id: If66d3a7cdb38c4d650f003083a6dea67f4220997
2014-09-11 16:30:49 +06:00
Pavel Astakhov 16c83240fd add highlighting external links (v 2.1.3)
Change-Id: Ibe065e710c9acb6e65f3aa130b2483588458461b
2014-09-10 16:09:49 +06:00
Pavel Astakhov 60e283ca81 fix highlighting links, tags and templates in section headers (v 2.1.2)
Change-Id: Ib4b788f7f8dc21732e231c9e59cf31a9165d04fa
2014-09-10 12:45:05 +06:00
Pavel Astakhov 5cd447d60e add highlighting section headers (v 2.1.1)
Change-Id: I082a81ff3fd44d97b8064e0a567db33ac709a196
2014-09-10 12:06:17 +06:00
Pavel Astakhov 8f270c34a9 refactor css style, move it to own definition (v 2.1.0)
*add highlighting list and indenting
*add tags: <noinclude>, <includeonly>, <onlyinclude>
*modify highlighting template variable

Change-Id: If6ae7d127766c32bc7e3c10b226a74ec97a0848f
2014-09-09 20:45:04 +06:00
Pavel Astakhov b2bb9e2a80 fix fluent Interface for Find&Replace (v 2.0.1)
Change-Id: I07ed6b7d1f3df9de07b0495909a93680ec4c0c92
2014-09-05 16:43:05 +06:00
Pavel Astakhov e789605772 make compatible with toolbox (v 2.0.0)
replace function $.fn.textSelection from file:
MediaWiki/core/resources/src/jquery/jquery.textSelection.js

Change-Id: Ie22f480968cf5eba1c4e91fbcf7881e6f86ee5ac
2014-09-05 15:44:51 +06:00
Pavel Astakhov 30a3ae4319 add highlighting double underscore Magic words (v 1.12.0)
Change-Id: I4eceaa790ca053de49f5d0983bdd8ae288ba985f
2014-09-04 10:23:05 +06:00
Pavel Astakhov 31951e253a fix highlighting tag. Highlight only html and parser tags (v 1.11.1)
Change-Id: I1f330181cf99ba1ccf7702bcd6fadf60957ae638
2014-09-03 12:50:45 +06:00
Pavel Astakhov b9f40490f3 add highlighting extension tags (v 1.11.0)
* fix some bugs...

Change-Id: Icf7eb836c6fbe3a686d67355064f57a6199d6b22
2014-09-03 11:04:56 +06:00
Pavel Astakhov 691ed8bec2 add highlighting tag <pre> (v 1.10.0)
* remove state.allowWikimarkup

Change-Id: Ic34d8be7e10b2e829cf76d5e5c0f40da3c943961
2014-09-02 19:23:13 +06:00
Pavel Astakhov 5cbe8bd28f fix highlighting template variable (v 1.9.2)
Change-Id: Iea975300c0ce1a3f80f75bff1be7b013bad4c420
2014-09-02 10:53:00 +06:00
Pavel Astakhov 89e584b947 fix word boundary for not english parser functions (v 1.9.1)
Change-Id: I7399b7787cec57745a1cf7401d519f145e65845c
2014-08-29 12:20:54 +06:00
Pavel Astakhov 65ffeacf9e add highlighting the magic word that does not begin with '#' (v 1.9.0)
* fix brackets color

Change-Id: I1cd057287d5ae142ed240e4ea9012790716f888c
2014-08-29 10:05:50 +06:00
Pavel Astakhov 77c8f73fec add highlighting template variables (v 1.8.0)
Change-Id: I0808c518c553bedf0b8cca8a1502c346292c7b5a
2014-08-28 15:46:50 +06:00
Pavel Astakhov fa6049075e fix highlighting text that starts with space (v 1.7.4)
Change-Id: I1da85271f81a2e01fa617434c82faa8148d56e0d
2014-08-28 12:38:31 +06:00
Pavel Astakhov 675e892f8d fix highlighting mnemonic (v 1.7.3)
Change-Id: I10a650b26caf8ce6d2d5d60706d8bd1f5adfd4c4
2014-08-28 10:20:03 +06:00
Pavel Astakhov fd51de0222 add addon active line and set size as textarea (v 1.7.1)
Change-Id: Iecbce4695e2a31447741d1d64dd8b575fd8c3865
2014-08-27 15:33:10 +06:00
Pavel Astakhov 9b4faf39b1 add highlighting internal link (v 1.7.0)
Change-Id: I9609c62e67ff61650d7e4efed802246a99f0703c
2014-08-26 13:00:52 +06:00
Pavel Astakhov 3627671730 fix highlighting arguments of templates and parser functions (v 1.6.1)
Change-Id: I3f65a6fa84289fa8e8e371232c58055978d9e9c3
2014-08-26 09:10:02 +06:00
Pavel Astakhov 82d1247978 add highlighting text that starts with space (1.6.0)
* fix highlighting template argument name

Change-Id: I249f89e34774c1c52ab62d4349d2f16fa0d69115
2014-08-25 22:59:36 +06:00
Pavel Astakhov ac5080f18d add highlighting tag names (v 1.5.0)
* rename CODEMIRROR_VERSION to EXT_CODEMIRROR_VERSION

Change-Id: I20b1cb872595a1491bb2c0485cb49c68fa908dd0
2014-08-25 16:56:52 +06:00
Pavel Astakhov 0697497834 fix templagte argements with '=' is more that one (v 1.4.1)
Change-Id: I6191fff3d2d9084189de2c10107ef43a236a2561
2014-08-25 11:08:40 +06:00
Pavel Astakhov 025027e26d fix highlighting templates and parser functions recussive (v 1.4.0)
* increase font

Change-Id: Ife58eb1d27c7549517c954fb152f3eb37fa6decd
2014-08-25 11:03:59 +06:00
Pavel Astakhov 8ff9748f5e add highlighting comments (v 1.3.0)
Change-Id: I0243202d8a7571570f6446bb0dca3b50f2b812a3
2014-08-22 13:21:32 +06:00
Pavel Astakhov 6221e8779e add highlighting character entity references (v 1.2.0)
Change-Id: I1e2a41a5dd2d417ea62c5b78778c7c50bafcbb40
2014-08-22 12:16:05 +06:00
Pavel Astakhov bdb653d94e fix js code for passing jshint (v 1.1.1)
Bug: 69869
Change-Id: I1b058ea1dc6c5c3e10ff2de39f03ddd72207e57e
2014-08-22 10:18:51 +06:00
Pavel Astakhov 1a05b6c9d2 add highlighting bold and italic wikitext (v 1.1.0)
Change-Id: I6576d0b592dee8242c05dc60b45f282349af475d
2014-08-21 20:36:09 +06:00
Pavel Astakhov 47d5f45baf fix highlighting name of parser function (v 1.0.2)
Change-Id: I881f9e18799c217e30164e2787d3b9995ec4537f
2014-08-21 12:35:03 +06:00
Pavel Astakhov 67a828cf3e fix highlighting space behind page name in Templates (v 1.0.1)
* fix code mirror options
* fix code mirror font
* fix code mirror border

Change-Id: I7b8063cd8c5e6450b9cea0f76ed27a8ffb9ae990
2014-08-21 11:54:15 +06:00
Pavel Astakhov c8bd7736f9 Initial commit (v 1.0.0)
* add the highlighting of templates and parser functions

Change-Id: I6f5a0aa701b1b4e58510bf17a25eb1a0e1b5f14a
2014-08-20 23:03:46 +06:00