Dean Herbert
7c25ce81e1
Further reduce chat poll rate when idle or not visible
2021-12-26 16:26:47 +09:00
tbrose
8e79fac389
Fixes code quality check failed
2021-12-14 16:23:51 +01:00
tbrose
882223b27f
Using static call and verbatim symbol and optimizes regex pattern for username check
2021-12-07 02:38:10 +01:00
tbrose
b6d47a41f4
Adjusted RegEx pattern to also take special characters into account
2021-12-07 02:14:40 +01:00
tbrose
7a0d4fca17
Fixes using Matches+Count instead of IsMatch negatively affecting performance
2021-12-07 01:41:21 +01:00
tbrose
f02e44d552
Fixes not matching coding style
2021-12-07 01:38:48 +01:00
tbrose
39594b7362
Fixes detection of mentioning of user falsely detects messages where the username is coincidentally contained in words of a message.
2021-12-06 23:32:21 +01:00
tbrose
0a6c221de4
Adds tests for checkContainsUsername function of MessageNotifier component
2021-12-06 22:07:47 +01:00
Dean Herbert
7c2e79f911
Update all simple cases of switching to IWorkingBeatmap
2021-11-17 20:56:57 +09:00
Dean Herbert
f74afb48fd
Fix StandAloneChatDisplay
's TextBox
having different corner radius
2021-11-16 17:50:57 +09:00
Dean Herbert
6a098a8634
Rename BeatmapInfo.OnlineBeatmapID
to OnlineID
to match interface
2021-11-12 17:46:24 +09:00
Dean Herbert
6b6dd93e9e
Fix LinkFlowContainer
not creating user links supporting full IUser
specification
2021-11-08 14:17:47 +09:00
Dean Herbert
b9983add15
Rename User
to APIUser
and move to correct namespace
2021-11-04 18:21:31 +09:00
Bartłomiej Dach
6f863ca204
Adjust game-side text flow containers to part-based model
2021-10-29 06:34:08 +02:00
Dean Herbert
95837990f3
Apply some second-pass inspections that appeared after previous changes
2021-10-27 13:09:30 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Gagah Pangeran Rosfatiputra
47c7701e47
handle changelog link in message formatter
2021-10-12 09:57:47 +07:00
Gagah Pangeran Rosfatiputra
e0c54e3207
add OpenChangelog
link action
2021-10-12 09:37:11 +07:00
Dean Herbert
ec61c3c5ee
Rename all remaining cases
2021-10-03 00:55:29 +09:00
Bartłomiej Dach
c4627bed6d
Print username in case of generic network failure too
2021-09-12 12:56:36 +02:00
rednir
e511c2ef2b
add comment
2021-09-12 08:50:53 +01:00
Davran Dilshat
c166f1a06a
change error message based on exception message
2021-09-11 14:18:09 +01:00
Davran Dilshat
acb181ff2b
rename alreadyJoinedChannel
-> privateChannel
2021-09-10 08:15:43 +01:00
rednir
5ec615c783
display user in error message
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-09-10 08:02:15 +01:00
rednir
84c152e7b6
break when already found user
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-09-10 08:01:38 +01:00
Davran Dilshat
255f8a9769
add alias "/msg" (also a command in stable)
2021-09-07 17:25:47 +01:00
Davran Dilshat
b1c89f7618
ignore case when search for already joined channel
2021-09-07 17:22:59 +01:00
Davran Dilshat
f54d5675db
check if user joined requested channel already
2021-09-07 17:06:12 +01:00
Davran Dilshat
5c385e84ea
wrong command name in query message
2021-09-05 21:20:19 +01:00
Davran Dilshat
cb6cee9aea
add /query as alias of /chat
2021-09-05 21:10:08 +01:00
Davran Dilshat
59ca69e41f
add /chat command
2021-09-05 18:16:57 +01:00
smoogipoo
956c1cc216
Merge branch 'master' into activity-on-multiplayer-screens
2021-08-24 12:33:34 +09:00
Endrik Tombak
058d2d2a49
Use nekodex's regex from osu-web
2021-08-20 23:01:06 +03:00
Endrik Tombak
8745fe9e34
Change editor timestamp regex to not match non-editor ones
2021-08-20 22:32:04 +03:00
Dean Herbert
1faf789f0e
Allow expanding chat using key binding even when it is hidden
2021-08-18 18:25:21 +09:00
Dean Herbert
b82f92d7b8
Adjust background colours of textbox in chat display
2021-08-17 16:16:49 +09:00
Dean Herbert
35b9f84c00
Expose StandAloneChatDisplay.Textbox
2021-08-17 16:16:49 +09:00
Nathan Alo
cc3468b4ab
apply suggestions
...
- make `UserActivity.InGame` and derive that to `InSoloGame` and `InMultiplayerGame`
- rename `SoloGame` to `InSoloGame`
- rename `MultiplayerGame` to `InMultiplayerGame`
2021-08-16 06:32:33 +08:00
Opelkuh
7d6f7ac75e
Fix mark channel as read error
2021-08-15 02:57:11 +02:00
Jamie Taylor
c1d8a7e2ad
Add and use 'Submit' select sample variant for particular components
2021-07-30 21:35:28 +09:00
Jamie Taylor
2eb12a59b7
Rename function to be more accurate
2021-07-09 11:16:47 +09:00
Jamie Taylor
546f55d341
Change profile section expansion to use dropdown sounds
2021-07-08 20:23:11 +09:00
Dean Herbert
31dbc7798b
Merge branch 'master' into linkify-metadata
2021-07-01 19:41:33 +09:00
smoogipoo
7a86686f40
Make nullable
2021-06-29 16:30:40 +09:00
smoogipoo
9132c42f87
Fix actions posted to the wrong channel
2021-06-29 15:58:07 +09:00
Joseph Madamba
6fda5e569a
Fix beatmap discussion links wrongly leading to beatmap page
2021-06-20 21:37:00 -07:00
Dean Herbert
8eab7df955
Move BindCollectionChanged
out of async load
2021-06-11 17:51:58 +09:00
Dean Herbert
20759657de
Rename configuration variables and refactor lots more
2021-06-11 16:37:31 +09:00
Dean Herbert
3d645608eb
Remove nullability of DI dependencies and fix incorrect load order
2021-06-11 16:28:53 +09:00
Dean Herbert
139401a04a
Inline and refactor overly verbose MessageNotifier
code
2021-06-11 16:27:31 +09:00
Craftplacer
4925a7d59e
Minor code quality changes
2021-06-05 15:57:14 +02:00
Craftplacer
ce4bcda803
Use separate method for fetching channel objects
...
Resolves a pull request review
2021-06-05 14:02:48 +02:00
Craftplacer
39c3b08fc7
Merge remote-tracking branch 'upstream/master' into chat-mention
2021-06-05 11:18:06 +02:00
Craftplacer
b746fe7c03
Fix binding order
2021-06-05 11:03:49 +02:00
Bartłomiej Dach
5f5f3a8c5c
General comment cleanups
2021-06-03 14:20:52 +02:00
Bartłomiej Dach
b2cc2a51ec
Rename method to be less misleading
...
Would rather avoid variations of Equals/Equal/IsEqual. There's not
really much equality involved as the types are different.
2021-06-03 14:13:01 +02:00
Bartłomiej Dach
e8c2483f19
Use standard list instead of bindable list
...
No reason to use a bindable list there, as `CollectionChanged` was never
subscribed to.
2021-06-03 14:09:52 +02:00
Bartłomiej Dach
8193691cbc
Invert condition to reduce nesting
2021-06-03 14:09:52 +02:00
Dean Herbert
a6cc37eb3b
Mark fields readonly
2021-06-03 14:56:21 +09:00
Dean Herbert
4a5d8215f3
Merge branch 'master' into keyboard_shortcuts
2021-06-03 14:47:40 +09:00
Dean Herbert
1f8abcdf6c
Merge branch 'master' into fix-relative-link-resolution
2021-06-01 16:49:02 +09:00
Dean Herbert
a9f4bc6285
Never return a null argument
...
Enable nullable
2021-06-01 14:11:17 +09:00
Dean Herbert
111bfd4d88
Fix relative URLs having a null argument after resolution to LinkDetails
2021-06-01 13:50:20 +09:00
Craftplacer
b3ac67675e
Merge branch 'chat-mention' of github.com:Craftplacer/osu into chat-mention
2021-05-27 21:59:51 +02:00
Craftplacer
13b2b7c148
Fix formatting
2021-05-27 21:58:54 +02:00
Craftplacer
0b17af81f1
Use Contains instead of IndexOf
...
Co-authored-by: Berkan Diler <b.diler@gmx.de>
2021-05-27 09:48:30 +00:00
Dean Herbert
aa23c4a4b9
Merge branch 'master' into keyboard_shortcuts
2021-05-27 16:30:34 +09:00
Craftplacer
a679efac1c
Reduce duplicate notification code by making a base class
2021-05-27 01:00:26 +02:00
Craftplacer
cf39e58ce7
Subscribe to CollectionChanged before binding to JoinedChannels
2021-05-27 01:00:08 +02:00
Craftplacer
d47370bac9
Locally bind to LocalUser
2021-05-27 00:59:29 +02:00
Gagah Pangeran Rosfatiputra
905364b5fe
add url as argument for link action external
2021-05-26 19:34:34 +07:00
Dean Herbert
52ca2f4797
Merge branch 'master' into chat-mention
2021-05-26 16:00:26 +09:00
smoogipoo
e3b8d8ee18
Add support for overlay-coloured links
2021-05-17 16:58:54 +09:00
Gagah Pangeran Rosfatiputra
f2de28814a
add and handle OpenWiki link action
2021-05-17 00:43:59 +07:00
Dean Herbert
3befb49ea9
Fix system messages always being displayed above standard messages
...
Closes https://github.com/ppy/osu/issues/12509 .
2021-04-22 14:52:01 +09:00
Dean Herbert
254f9bb58b
Show API human readable error message when chat posting fails
...
Closes #11902 .
2021-02-26 13:38:00 +09:00
Dan Balasescu
dad6e7e825
Merge pull request #11755 from peppy/fix-message-formatter-domain
...
Fix MessageFormatter not working for custom endpoints
2021-02-12 16:01:55 +09:00
Dean Herbert
3799493536
Add test coverage of int match failures
2021-02-12 15:25:00 +09:00
Dean Herbert
bb9123eecd
Better handle fallback scenarios for beatmap links
2021-02-12 15:17:54 +09:00
Dean Herbert
1c5aaf3832
Add back default value
2021-02-12 15:03:53 +09:00
Dean Herbert
6a42d312f6
Match using EndsWith to ignore protocol (and allow http)
2021-02-12 14:59:56 +09:00
Dean Herbert
33c9ecac8a
Fix MessageFormatter not working for custom endpoints
2021-02-12 14:54:19 +09:00
Dean Herbert
e6980688f6
Leave the multiplayer channel when leaving multiplayer
2021-01-21 15:42:23 +09:00
Dean Herbert
323da82477
Add website root URL and update most links to use it
...
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Angela Zhang
74bd2f41e6
Style fixes
2020-12-20 13:51:39 -06:00
Angela Zhang
7d326c7f24
Review changes + added tests
2020-12-20 13:18:00 -06:00
smoogipoo
45107280a0
Make TimeBetweenPolls into a bindable
2020-12-20 18:34:54 +09:00
Angela Zhang
45482e8709
Whitespace fixes
2020-12-17 18:43:39 -06:00
Angela Zhang
454c7538c0
CI Style Fixes
2020-12-17 17:59:36 -06:00
Angela Zhang
71a082110a
Making style changes + supports reopening PM chats
2020-12-17 16:56:34 -06:00
Joseph-Ramos-CMU
b37a983fbf
Formatting fixes
...
Fixed some formatting issues to comply with InspectCode.
2020-12-16 12:56:36 -05:00
Joseph-Ramos-CMU
2f8a085adf
Reworked reopening last tab to no longer use recursion
...
A reviewer of the pull request was concerned about recursion. I changed
the code to be iterative.
2020-12-16 12:04:07 -05:00
Joseph-Ramos-CMU
7b169c4f62
Changed internal closedChannel list to store channels names instead of channel objects
...
This is for efficiency purposes; it's more efficient to just store
the names than store the whole object.
2020-12-16 10:13:50 -05:00
Joseph-Ramos-CMU
bd2765ecc4
Fixed style concerns
2020-12-14 13:23:43 -05:00
Joseph-Ramos-CMU
3301f532ee
Additional formatting
...
Ran the dotnet format as well as the .\InspectCode.ps1 tools, and
fixed the style issues they found.
2020-12-13 23:27:48 -05:00
Joseph-Ramos-CMU
08a2cdaf8d
Minor formatting changes
2020-12-13 21:02:35 -05:00
Joseph-Ramos-CMU
2863187b16
Changing behvaior for channels that have already been reopened
...
Ctrl+Shift+t will now skip trying to reopen any channels that are
already open, and will instead attempt to open the next still-closed channel.
2020-12-13 20:46:02 -05:00
Joseph-Ramos-CMU
5481ba43c7
Fixed a bug where Ctrl+Shift+t shortcut was using the wrong list
...
The JoinLastClosedChannel code was using the joinedChannels list instead
of the closedChannels list. Fixing this bug made the Ctrl+Shift+t
shortuct work as expected.
2020-12-13 14:14:57 -05:00
Joseph-Ramos-CMU
2d98da0d61
Untested Ctrl+Shift+T shortcut prototype
...
Added a list to the ChannelManager class that tracks
which tabs I closed. Works like a stack, where it adds to the end
every time I close a tab. Then added a function that uses
this list to open the last closed channel, and added a shortcut inside of ChatOverlay,
similar to how jmeng implemented shortcuts.
Code is currently untested.
2020-12-13 13:21:50 -05:00
Dean Herbert
1e1569eb53
Use int instead of long for user_id fields for now
2020-11-06 12:59:46 +09:00
Berkan Diler
fe3a23750c
Use char overloads for string methods
2020-10-16 11:52:29 +02:00
Dean Herbert
61e62929ee
Apply changes in line with framework event logic update
2020-10-01 13:06:01 +09:00
Poliwrath
97637bc747
remove new.ppy.sh from MessageFormatter
2020-08-26 02:50:02 -04:00
Dean Herbert
7fe69bb199
Fix some web requests retrieving the user too early
2020-07-14 13:07:17 +09:00
smoogipoo
88aed1d504
Merge branch 'master' into update-inspectcode-version
2020-06-09 20:12:39 +09:00
Dean Herbert
712fd6a944
Fetch existing private message channels on re-joining
2020-06-08 17:54:26 +09:00
Dean Herbert
f6d9f0597b
Add implicit join logic for multiplayer rooms
2020-06-03 21:28:29 +09:00
Dean Herbert
1ba3f0ac14
Fix chat history not being loaded for multiplayer matches
2020-06-03 17:31:55 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
alex
0e2ccac33b
Add spaces to comments
2020-05-04 18:36:24 -07:00
Dean Herbert
c73d45bc01
Reduce initial channel load overhead by only loading history on active channel
2020-04-29 15:23:28 +09:00
Dean Herbert
07b8ef83c9
Add /np to help line
2020-04-19 22:15:07 +09:00
Dean Herbert
1dd471dfcc
Add /np (now playing) command support in chat
2020-04-19 15:13:25 +09:00
Dean Herbert
1b6342438f
Hide scrollbars in tournament chat display
2020-03-23 12:05:16 +09:00
unknown
2340142dc1
Merge branch 'master' of https://github.com/ppy/osu into linkify-metadata
2020-03-18 14:18:53 +08:00
TheWildTree
acd280c855
Add System channel type and use it for the ChannelSelectorTab
2020-03-15 22:13:26 +01:00
Dean Herbert
0102aaf32a
Move chat expand/contract logic local to tournament
2020-03-08 18:11:57 +09:00
Dean Herbert
aed52179f0
Fix weird reverse logic
2020-03-08 15:32:22 +09:00
recapitalverb
7de7748607
Remove unnecessary nullability
2020-02-14 22:02:10 +07:00
recapitalverb
c46d828716
Preserve permitNulls
2020-02-14 20:59:51 +07:00
recapitalverb
c753cb46c5
Use [Resolved] wherever possible
2020-02-14 20:14:00 +07:00
Craftplacer
1c1b5aa939
Merge branch 'chat-mention' of https://github.com/Craftplacer/osu into chat-mention
2020-02-08 10:45:41 +01:00
Craftplacer
41915df1f3
Change comment
2020-02-07 16:52:53 +01:00
Craftplacer
dd86443264
Make isMentioning static
2020-02-07 16:51:37 +01:00
Craftplacer
7cd228db07
Change notifyOnChat to notifyOnPM
2020-02-07 16:50:22 +01:00
Bartłomiej Dach
5875f2158c
Properly rename event handler
2020-02-05 19:20:16 +01:00
Craftplacer
9378b216e6
Lowercase the N inside channel_NewMessagesArrived
2020-02-05 19:01:51 +01:00
Craftplacer
f16b90a152
Remove username data from PrivateMessageNotification
2020-02-03 23:56:23 +01:00
Craftplacer
4eedd82032
Don't unnecessarily expose properties
2020-02-03 23:03:27 +01:00
unknown
2274d70dac
apply suggestions
2020-01-31 06:41:50 +08:00
unknown
c5995acfff
linkify metadata
2020-01-30 12:30:25 +08:00
Craftplacer
48231317d2
Make IsMentioning private
2020-01-29 02:07:08 +01:00
Craftplacer
5e91a3f0f8
Use IndexOf
2020-01-29 01:59:52 +01:00
Craftplacer
65644731e0
Make field readonly
2020-01-25 17:03:39 +01:00
Craftplacer
f9def83552
Make IsMentioning public to allow it to be used for testing
2020-01-25 16:44:45 +01:00
Craftplacer
e0ef672549
Use binded list
2020-01-25 16:43:51 +01:00
Craftplacer
00da45ead4
Matching strings instead of splitting
2020-01-25 14:40:53 +01:00
Craftplacer
158b969052
Remove XML doc from HandleMessages
2020-01-25 14:40:16 +01:00
Craftplacer
c6f450f932
Resolve code analysis errors
2020-01-22 11:23:27 +01:00
Craftplacer
3d2625836a
Remove static from getWords method
2020-01-22 10:50:27 +01:00
Craftplacer
771155e882
No notification "debouncing"
2020-01-22 10:48:55 +01:00
Craftplacer
e4accb3344
Remove IsActive property
...
as it never really made sense to have it in the first place
2020-01-22 10:47:51 +01:00
Craftplacer
73d4b6a6be
Remove redundant lambda signature parentheses
...
:/
2020-01-22 00:53:49 +01:00
Craftplacer
d29694d788
Add additional comment to explain the code order
2020-01-22 00:41:46 +01:00
Craftplacer
88ea1138b6
Compile regex
2020-01-22 00:31:44 +01:00
Craftplacer
795051e256
Prevent channel duplicates
2020-01-22 00:29:12 +01:00
Craftplacer
5978e2c0e2
Redo how instances of PM notifications are removed
2020-01-22 00:28:59 +01:00
Craftplacer
699547e1a2
Also exclude last read message
2020-01-22 00:28:08 +01:00
Craftplacer
9fd494b057
Fix order where messages are checked in
2020-01-22 00:27:46 +01:00
Craftplacer
47a92a13b0
Change code comments
2020-01-22 00:13:07 +01:00
Craftplacer
4d6ff31134
Wrap getWords() with anyCaseInsensitive()
2020-01-21 23:43:21 +01:00
Craftplacer
63c8ae8211
Use IDs for checking against message author
2020-01-21 23:42:15 +01:00
Craftplacer
be2a88c8a5
Remove left over config entry
2020-01-19 18:40:17 +01:00
Craftplacer
7d1fc388ce
Resolve code quality errors
2020-01-19 18:34:48 +01:00
Craftplacer
4b871f61e3
Use Humanizer for counting PMs in text
2020-01-19 18:23:12 +01:00
Craftplacer
4feae82434
Split HandleMessages method
2020-01-19 17:55:17 +01:00
Craftplacer
86ecaf223d
Improve getWords()
2020-01-19 17:36:38 +01:00
Craftplacer
dd5478fe1f
Remove highlighted/mentioned words
2020-01-19 17:26:43 +01:00
Craftplacer
8a9c90c5e6
Resolve CA errors #2
2020-01-18 16:18:17 +01:00
Craftplacer
64fe9692ed
Resolve CA errors
2020-01-18 15:57:51 +01:00
Craftplacer
8ddd36596e
Revert useless changes varying from properties, naming changes etc.
2020-01-18 15:40:55 +01:00
Craftplacer
f55cf03bd0
Remove unnecessary changes after rework
2020-01-18 14:17:26 +01:00
Craftplacer
5d244f48f7
Use instance list instead of exposing NotifcationOverlay's notifications
2020-01-17 00:00:10 +01:00
Craftplacer
2b5d541857
Merge remote-tracking branch 'upstream/master' into chat-mention
2020-01-16 23:15:39 +01:00
Craftplacer
1b53c0ff74
Remove populated property, and other changes
2020-01-16 23:15:30 +01:00
Dean Herbert
c190c68659
Add safety for channel with no messages
2020-01-13 12:22:44 +09:00
Craftplacer
8cc2d70df0
Reduce API calls by checking what message was last marked as read
2020-01-12 16:24:14 +01:00
Craftplacer
ccaf4e48a1
Remove using directive
2020-01-11 20:04:58 +01:00
Craftplacer
2ea1367a88
Remove message parameter and make it mark the entire channel as read
2020-01-11 19:47:35 +01:00
Craftplacer
f8a11e50b6
Remove redundant ToString() calls
...
as string interpolation does this automatically..
2020-01-11 18:00:34 +01:00
Craftplacer
d9c57baa89
Add test case for mismatch of channels
2020-01-11 17:48:03 +01:00
Craftplacer
50e357a799
Change method parameters, add detailed error message and method docs
2020-01-11 17:42:02 +01:00
Craftplacer
cd679707ed
Prevent channel duplicates
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-01-11 17:16:11 +01:00
Craftplacer
cd91cc860d
Resolve "Redundant lambda signature parentheses"
2020-01-04 01:06:38 +01:00
Craftplacer
4f36bc0fd3
Add error log message for debugging
2020-01-04 00:49:35 +01:00
Craftplacer
7b71e56817
Initial commit
2020-01-02 17:07:28 +01:00
Craftplacer
0d812bce9f
WIP changes for code review
2019-12-26 03:32:40 +01:00
Craftplacer
7bdfd2e23c
All copyright goes to peppy
2019-12-17 07:04:55 +01:00
Craftplacer
b6c31e7764
Remove ignore list, move code to MessageNotifier and add it to DI
...
This also adds countable private message notifications.
2019-12-17 06:59:27 +01:00
Craftplacer
15c25c571d
Merge remote-tracking branch 'upstream/master' into chat-mention
2019-12-16 00:59:06 +01:00
Craftplacer
e8180ab153
Add ToString() method to message for better debugging
2019-12-16 00:45:55 +01:00
Huo Yaoyuan
e9b8cbb516
Apply other styles.
2019-11-11 20:27:04 +08:00
Dean Herbert
898520935e
Move link handling code to OsuGame
...
This allows for future calls from arguments / associations
2019-11-01 11:40:51 +09:00
Dean Herbert
d1c6e3f620
Add test for scroll to end when max history is exceeded
2019-10-29 14:32:52 +09:00
Bartłomiej Dach
661dfbefaf
Change containment check to overlap
...
Due to scenarios wherein a formatted link ended up as part of a larger
raw link after parsing, change the containment check to an overlap check
and add appropriate tests for these edge cases.
2019-10-25 00:42:58 +02:00
Bartłomiej Dach
cbd99cc767
Resolve link-in-link edge case
...
Testing with #6542 surfaced a crash scenario, caused by formatted links
that had URLs in the display text, for example
[mean example - https://osu.ppy.sh ](https://osu.ppy.sh )
In that case the outer Markdown link would get picked up once, and then
reduced to the link text when looking for other links, leading to it
being picked up again the second time when the raw link is found.
Add a check in the raw link parsing path that ensures that the found
URL is not a part of a bigger, pre-existing link.
2019-10-24 15:52:55 +02:00
Bartłomiej Dach
24b7160522
Add support for parsing Markdown inline links
...
Extend the Markdown parsing regex to allow parsing so-called inline
links. Within the parenthesis () part of the Markdown URL syntax,
introduce a new capturing group:
(
\s+ // whitespace between actual URL and inline title
(?<title> // start of "title" named group
"" // opening double quote (doubled inside @ string)
(
[^""] // any character but a double quote
| // or
(?<=\\) // the next character should be preceded by a \
"" // a double quote
)* // zero or more times
"" // closing double quote
)
)? // the whole group is optional
This allows for parsing the inline links as-provided by web. Correctness
is displayed by the passing tests.
2019-10-24 15:52:55 +02:00
Dean Herbert
c3375071ad
Fix formatting issue
2019-10-23 00:26:47 +09:00
Dean Herbert
e9aa7f3218
Subclass and use yellow for stand-alone chat display
2019-10-23 00:24:19 +09:00
Andrei Zavatski
bb7af1e39c
Fix some margin/padding issues
2019-10-22 01:45:04 +03:00
Andrei Zavatski
d19041fa53
Implement DaySeparator class
2019-10-22 01:30:37 +03:00
Dan Balasescu
b161aa22c3
Merge branch 'master' into simplify-exit-logic-of-screens
2019-10-02 18:13:57 +09:00
Ganendra Afrasya
b6dd610af8
Apply reviews
2019-10-01 23:18:03 +07:00
Joehu
5f700f2ae9
Simplify exit logic of screens with textboxes using back button receptor
2019-10-01 08:26:34 -07:00
Ganendra Afrasya
208b9a4eba
Add new virtual float for username to timestamp padding
2019-10-01 20:47:53 +07:00
Bartłomiej Dach
08350a1aca
Add parenthesis handling to old link format
...
Allow users to put both balanced round parentheses, as well as
unbalanced escaped ones, in old style link text. The implementation
is the same as for Markdown and new style links, except for swapping
all instances of
\[\]
to
\(\)
for obvious reasons (different type of parenthesis requiring escaping).
Tests also included.
2019-09-04 00:21:27 +02:00
Bartłomiej Dach
f04add6d9e
Add bracket handling to Markdown link format
...
Allow users to put both balanced brackets, as well as unbalanced
escaped ones, in Markdown link text. The implementation is the exact
same as in the case of new format links.
For completion's sake, tests also included.
2019-09-04 00:07:00 +02:00
Bartłomiej Dach
24d4f0372c
Refactor link parsing regexes to use named groups
...
For the sake of readability, consistency and to make further changes
easier, introduce named groups (?<text>) and (?<url>) to all link
parsing regexes which have parts containing the desired link text
and (optionally) URL.
The introduction of the named groups additionally simplifies
handleMatches() and makes all calls to it consistent.
2019-09-04 00:06:52 +02:00
Bartłomiej Dach
a8f16503e2
Add backslash escaping to new link format
...
For users to be able to add square brackets inside of links using
the new format, the regular expression used for parsing those links
contained a balancing group, which can be used for matching pairs
of tokens (in this case, opening and closing brackets, in that order).
However, this means that users could not post links with unmatched
brackets inside of them (ie. ones that contain single brackets, or
a closing bracket and then an opening one). Allow for escaping opening
and closing brackets using the backslash character.
The change substitutes this old fragment of the regex in the display
text group:
[^\[\]]* // any character other than closing/opening bracket
for this one:
(((?<=\\)[\[\]])|[^\[\]])*
The second pattern in the alternative remains the same; the first one
performs the escaping, as follows:
(
(?<=\\) // positive lookbehind expression:
// this match will succeed, if the next expression
// is preceded by a single backslash
[\[\]] // either an opening or closing brace
)
Since the entire display group is matched, unfortunately the lookbehind
expression does not actually strip the backslashes, so they are
manually stripped in handleMatches.
As demonstrated in the unit tests attached, this also allows balanced
brackets to be mixed with escaped ones.
2019-09-03 23:18:39 +02:00
Andrei Zavatski
015406f4d2
Fix link parser
2019-08-18 22:02:59 +03:00