Commit graph

3863 commits

Author SHA1 Message Date
Adam Wight 170484e933 Annotate TODOs with task number
Each of these TODOs is something that needs to be fixed or implemented,
so it's helpful to map them to tasks.

Change-Id: I807208392d8a609d7f3b371dc3560a48f3578092
2020-01-09 13:13:48 +01:00
jenkins-bot 953030386a Merge "Replace all # single line comments with //" 2020-01-09 11:40:24 +00:00
jenkins-bot 9bbaeb6f24 Merge "Consistent empty lines between @param and @return PHPDoc tags" 2020-01-09 11:40:23 +00:00
jenkins-bot 89df0f1c62 Merge "Simplify a for-loop in ReferenceStack" 2020-01-09 11:40:02 +00:00
jenkins-bot 0be582dc12 Merge "Report conflicting extends="…" with an error message" 2020-01-09 11:37:27 +00:00
Thiemo Kreuz 013e1bfa90 Final clean-ups for a more consistent parameter order
* Always have an empty line between @param and @return to improve
readability as well as consistency within this codebase (before, both
styles have been used).

* Flip parameter order in validateRefInReferences() for consistency with
the rest of the code.

* In Cite::guardedRef() the Parser was now the 1st parameter. I changed
all related functions the same way to make the code less surprising.

* Same in CiteUnitTest. This is really just the @dataProvider. But I feel
it's still helpful to have the arguments in the same order everywhere, if
possible.

* Add a few strict type hints.

* It seems the preferred style for PHP7 return types is `… ) : string {`
with a space before the `:`. There is currently no PHPCS sniff for this.
However, I think this codebase should be consistent, one way or the other.

Change-Id: I91d232be727afd26ff20526ab4ef63aa5ba6bacf
2020-01-09 12:13:54 +01:00
Thiemo Kreuz 04c5773953 Replace all # single line comments with //
There is currently no strict CodeSniffer rule for this. I think we
need to have one sooner or later. Anyway, what I find important is to
have a consistent code style in one codebase.

I refused to do this change previously because I don't like to mess
with Git blame if it's not really necessary. However, at this point all
code was moved around anyway.

I ended removing a comment that appears misplaced now, and doesn't help
maiing the code more readable. I like not having a dot at the end if
it's not really a sentence.

Change-Id: Id1d4f43277c69080c512c1a5ceff4c948bfa05be
2020-01-09 12:13:34 +01:00
Thiemo Kreuz 446524f8a9 Consistent empty lines between @param and @return PHPDoc tags
In the end I don't care much if we agree on having this newline, or
not. What I care about more is that this codebase is consistent.

Personally I prefer having the newline. It creates a visible separation
between what "goes in" and what "goes out" (@throws and @return).

Change-Id: Ibc60af621132e415a5579397c01688fa21eb0be5
2020-01-09 12:00:35 +01:00
jenkins-bot b9b6905171 Merge "Fix incomplete undo/redo stack implementation" 2020-01-09 10:58:35 +00:00
jenkins-bot d3c585ceb1 Merge "Remove old comments talking about removed code" 2020-01-09 10:58:34 +00:00
Translation updater bot 5aff516ccb Localisation updates from https://translatewiki.net.
Change-Id: I0b59e4d7f12ce70b88fbbf46d76f2ec7c6baf4f8
2020-01-09 08:28:37 +01:00
libraryupgrader 88ecc77735 build: Updating npm dependencies
* grunt-stylelint: 0.12.0 → 0.13.0
* stylelint-config-wikimedia: 0.7.0 → 0.8.0

Additional changes:
* Added .eslintcache to .gitignore.

Change-Id: Iabe4cd32a742fbf64bfc24adb326f88c0f13dc3a
2020-01-09 04:19:24 +00:00
jenkins-bot 1f8c99aa72 Merge "Don't process references defined inside template-generated reflists" 2020-01-08 23:32:33 +00:00
jenkins-bot a6c33abc57 Merge "Remove invalid test case" 2020-01-08 17:04:21 +00:00
Thiemo Kreuz 04fbbbd3ca Report conflicting extends="…" with an error message
Bug: T242110
Change-Id: I04342b2c219981dfb9575ea58cfccf6c2ba1066c
2020-01-08 16:47:07 +00:00
Thiemo Kreuz d07110b790 Fix incomplete undo/redo stack implementation
The rollback feature was not able to properly restore a __placeholder__.
That's why a specific use case was behaving different. This already
worked just fine:

<ref extends="a">…</ref>
<references>
<ref name="a">…</ref>
</references>

But this didn't, even if it is the exact same from the users
perspective:

<ref extends="a">…</ref>
{{#tag:references|
<ref name="a">…</ref>
}}

Bug: T239810
Change-Id: I163a1bffb9450a9e7f776e32e66fb08d0452cdb9
2020-01-08 17:43:02 +01:00
jenkins-bot 70e53556a4 Merge "Make native selection over reference nodes visible" 2020-01-08 16:31:18 +00:00
Adam Wight b7c9dbb0d5 Remove invalid test case
Unnamed references are never merged.

Bug: T239788
Bug: T240459
Change-Id: I8dd3706c688108bf2e3c0e9b55f123084b325d16
2020-01-08 16:59:28 +01:00
Thiemo Kreuz 87642f4fb8 Simplify a for-loop in ReferenceStack
The main motivation is to remove the not needed variable $i. As well
as getting rid of the break.

Change-Id: Idd9f83c2166b1c0da7054a616cd8c3d5540ebc12
2020-01-08 16:55:49 +01:00
Thiemo Kreuz e5640b4415 Remove old comments talking about removed code
Change-Id: I75d9180ce8d94e9397249f9557ac1e6cfafdca8b
2020-01-08 16:54:02 +01:00
jenkins-bot 861c4edba7 Merge "Test cases for extends pointing to the <references> section" 2020-01-08 10:42:14 +00:00
Translation updater bot 612be4396b Localisation updates from https://translatewiki.net.
Change-Id: Iabc33a6d75ed662ed928cb83ad54c47b97e39807
2020-01-08 08:41:55 +01:00
Thiemo Kreuz 6ddfd9983b Fix bad numbering when reusing sub-references
Note this leaves *another* bug behind. When a <ref> is properly reused
by name="…", and the content is fine (either missing or identical),
possibly conflicting extends="…" attributes are currently entirely
ignored. However, this is already much better than what happened before.

Bug: T242110
Change-Id: Id808ce31c8036cc290f68bb3e8c5a7b12f4f44cf
2020-01-07 16:34:05 +01:00
WMDE-Fisch b74a88a3f9 Reduce indentation margin for book references
This should now roughly resemble 2nd level indentation for nested
list elements. CSS Janus should take care of RTL compatibily.

Bug: T239329
Change-Id: I2eb5b63033f558555b1d79faba82b5a774ddd934
2020-01-07 13:04:52 +01:00
Thiemo Kreuz 5db90fb5a9 Test cases for extends pointing to the <references> section
This is an extremely relevant use case, but we never had a test for
this:

Some text.<ref extends="book">Page 2</ref>

<references>
  <ref name="book">Title of the book</ref>
</references>

What this means: There is no reference in the text that points to the
book as a whole, only references that point to individual pages. The
base <ref> is not used in the text.

This is already properly rendered. There is no "jump back to the text"
link. However, this fails when <references> is wrapped in {{#tag:…}}.

Bug: T239810
Change-Id: Id22db0238266a4fd6131d1a10eb6bf6227552c19
2020-01-07 12:43:18 +01:00
Translation updater bot c8ed9fe18e Localisation updates from https://translatewiki.net.
Change-Id: I0aabcffb2a955650c0e34c5dc51dab0cb546f773
2020-01-07 08:47:49 +01:00
jenkins-bot 44f3f5bf44 Merge "build: Updating mediawiki/mediawiki-phan-config to 0.9.0" 2020-01-07 03:47:57 +00:00
jenkins-bot b98875bf7c Merge "Consolidate refCallStack-gnosticism" 2020-01-06 12:55:37 +00:00
jenkins-bot ce5dc41597 Merge "Correction to error message" 2020-01-06 12:48:29 +00:00
Adam Wight 2aed80be24 Consolidate refCallStack-gnosticism
The rollbackRefs function no longer needs to "know" details about
how to turn a refCallStack item into a redo item.  This is better a
responsibility of the subroutine, where the items are unpacked.

Change-Id: I1e2ff77cb5e66d70e451ee09e641ff752c770ab4
2020-01-06 12:43:16 +00:00
Translation updater bot 40d3cb1e8c Localisation updates from https://translatewiki.net.
Change-Id: I62aafceebc2aa593c9d163fc9966e675dec9de79
2020-01-06 08:48:26 +01:00
Bartosz Dziewoński b475eca1b9 Don't process references defined inside template-generated reflists
As a result, the references are now treated like any other
template-generated reference, e.g. they can't be edited.

Previously they could be edited as if they weren't template-generated,
causing trouble. Editing them had no effect (changes would not be
saved), and copy-pasting them into another page resulted in
"substituted" content (template metadata was lost).

Bug: T209493
Change-Id: I4e75ccd57cd752a726653c725d8c29a09306e83b
2020-01-04 15:53:21 +01:00
Bartosz Dziewoński 52646d1a7c Make native selection over reference nodes visible
Bug: T241880
Change-Id: Ie712d4edc2ef49dd3b1f4ca186b2e2d539ab8659
2020-01-04 14:00:40 +01:00
Translation updater bot 15fc463994 Localisation updates from https://translatewiki.net.
Change-Id: I0486c53563c6bf1aacd51e48b51f0395d30794c3
2020-01-03 08:44:57 +01:00
Translation updater bot 94e47e5908 Localisation updates from https://translatewiki.net.
Change-Id: I689527e190c21c11c5efa605a4c8680f6ebb9a8c
2020-01-02 08:57:51 +01:00
jenkins-bot 166f8ef565 Merge "Add missing parser tests for relevant responsive edge cases" 2019-12-30 18:48:23 +00:00
jenkins-bot 5c09f8de16 Merge "Clean up i18n messages" 2019-12-29 21:30:05 +00:00
Translation updater bot 78f7e4e276 Localisation updates from https://translatewiki.net.
Change-Id: Ib464e48e4d818a76e8c5ca66b54fdaa600f66e22
2019-12-29 20:40:09 +01:00
Thiemo Kreuz 38d5bd5f39 Add missing parser tests for relevant responsive edge cases
I tried to run these tests with a very old version of this code base
(from 2018) to confirm this is the correct behavior.

Bug: T241303
Change-Id: Id97d016b199458aa178ca732282e9c0e91e291a4
2019-12-28 20:59:23 +00:00
Bartosz Dziewoński 6f3fa70913 Fix handling of <references responsive="" />
The logic was changed in 51ff3cc819.
Only `responsive="0"` is supposed to disable responsive references,
any other value should enable it.

Bug: T241303
Change-Id: I8c99bf93c739d6dba348785b1b6452cfce2c57c9
2019-12-28 18:40:48 +00:00
libraryupgrader 2e0792a0dd build: Updating mediawiki/mediawiki-phan-config to 0.9.0
One of the most significant changes is when I noticed that the $group
can never be null. We set it to DEFAULT_GROUP before. That's an empty
string.

I'm not very happy with the two @phan-suppress-next-line. Is there a
better way to fix these lines?

Change-Id: I33c1681e2f3857cb6701da71f4ed8893caff4d1e
2019-12-27 19:45:17 +00:00
Translation updater bot f888533855 Localisation updates from https://translatewiki.net.
Change-Id: I9f15597897901de8c682f335fc33bcdd04ac168b
2019-12-26 16:18:56 +01:00
jenkins-bot c3823ce172 Merge "Harden logic assertions" 2019-12-24 13:47:22 +00:00
Thiemo Kreuz ed5d72456d Rewrite ReferenceStackTest::provideRollbackRefs for readability
I hope this is more readable. This patch does two things: It uses
array keys to name all elements in the data provider. (Note these
array keys don't actually do anything, PHPUnit ignores them.) And this
patch merges two parameters into a single $expectedResult.

Change-Id: Ib7adc32bf8bfd523735591d35d0bcabd3b853cfc
2019-12-24 14:31:27 +01:00
Translation updater bot d5dccb0e1b Localisation updates from https://translatewiki.net.
Change-Id: Ib064b4e168f8c15abbaaa3f3e48a75f243ef2d8b
2019-12-24 10:01:27 +01:00
Translation updater bot 001c3563e4 Localisation updates from https://translatewiki.net.
Change-Id: Ifc0189e07a7ecce26de1d50904dfeedf6d01c2d0
2019-12-22 17:40:12 +01:00
Thiemo Kreuz 0dc6f37785 Replace now unused native cloning feature
Since I3db5175 the ParserCloned hook handler does not rely on cloning
the Cite object any more. There is no cloning any more. This is dead
code and we could remove it. Just to be sure I propose to keep the
method, but let it throw an exception.

Bug: T240248
Change-Id: I2057ea652ca25f4c7031c28a6e713671738f5e22
2019-12-20 20:07:59 +01:00
Adam Wight 2a3879eafa Harden logic assertions
These should be impossible conditions, we don't want to continue with
processing.

I hate this patch, it's a temporary workaround until someone rewrites
or replaces the rollback logic, for example with a two-pass parse.

Change-Id: I6a1327e397d4272fa412c3f290c2107d867d2854
2019-12-20 14:53:29 +01:00
Adam Wight 7bde21d49a Correction to error message
In historical versions of the Cite extension, unclosed <ref> tags were
sometimes caught and rendered as another, unrelated validation error.
This is no longer the case thanks to a more accurate check for
unclosed <ref> tags.

Remove user-facing text explaining the edge condition.

Change-Id: Ic27e120213e39e3774ad7c8ee76eabd2faa74234
2019-12-20 13:33:21 +01:00
Adam Wight 377cdb3b9f Less checkered error message style
We print error messages in red, bold, large text so that they stand
out from content.  "<code>" spans, which are prevalent in our messages,
were styled with black text by accident, this patch turns them red.

This should cause less annoyance on readers.

Change-Id: Ic911552909ecc5ace4be927cad5b835e1006355e
2019-12-20 10:58:56 +01:00