Nathan Shively-Sanders
ec77bff332
Editor support for link tag ( #41877 )
...
* Initial scribbles
* Compiles but provides spans instead of location pairs
Probably need to fork the services/server types and provide a conversion
with Session.toFileSpan. Not sure where to put the conversion.
* Switch to DocumentSpan
In theory this is already better supported, but not sure practise bears
that out.
* Builds w/protocol types + conversions
* cleanup:better names and scrub TODOs
* fix test harness too
* Misc
1. Simplify protocol after talking to @mjbvz.
2. Add more tests.
3. Initial notes about where to add parsing.
* Parse and store links in the compiler
The text of the link is still stored in the comment text, but that's now
kept in an object instead of just a string. Each link has the parse for
the entity reference, if there is one.
Needs lots more tests -- this just makes all the existing jsdoc tests
pass.
* more tests and some fixes
* Fix other failing tests
* fix bad merge
* polish parser
* improve names and array types
* slight tweaks
* remove some done TODOs
* more tests + resulting fixes
* add+fix cross-module tests
* Support `@see {@link`
Plus find-all-refs support equivalent to @see's.
* add server test
* Make comments actually part of the AST
* Add span for link.name in language service/protocol
* Make checker optional in getJSDocTags
Also change to JSDocCommentText from JSDocCommentComment
* Use getTokenValue instead of getTokenText
Measure twice, slice once
* Add missing support for top-level links
The language service and protocol were missing support for top-level
links. This commit adds that plumbing.
* add string back to comment type in node constructors
* Full parse of link tags and jsdoc comment text
- Doesn't pass fourslash yet, I'm going to switch to baselines for
failures there.
- Still needs some work on the protocol to convert file+offset to
file+line+offset.
* fix lint
* Fix missing newlines in inferFromUsage codefix
* Parse jsdoc comments as text node/link array
And switch to line+character offsets in the protocol
* Fix fourslash tests
Mostly ones that can't be baselined, but I switched a couple more over
to baselines
* Improve types and documentation
* Test+fix @link emit, scrub other TODOs
* update API baselines
* test that goto-def works with @link
* Split link displaypart into 3
One for link prefix and suffix, one for link name, and one for link
text.
* update baselines
* Provide JSDocTagInfo.text: string to full clients by default
Instead of upgrading them to displayparts.
* Real server tests
* Disambiguate {@link} and @param x {type}
They are ambiguous; previously the parser preferred the type
interpretation, but will now look ahead and parse links instead when the
prefix is `{@link`.
* Add explanatory comment in test
* fix location in richResponse in protocol
* update API baseline
* Address PR comments
1. Add a cross-file goto-def test.
2. Switch from per-message args to UserPreference.
* use arraysEqual from core
2021-03-16 16:26:01 -07:00
..
2021-03-10 07:26:50 -08:00
2020-04-11 15:52:17 -07:00
2020-08-18 11:06:44 -07:00
2021-03-16 16:26:01 -07:00
2020-06-13 07:05:21 -04:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-11-02 14:35:07 -08:00
2020-06-17 13:02:30 -07:00
2020-06-15 11:46:10 -07:00
2020-06-15 11:46:10 -07:00
2020-06-15 11:46:10 -07:00
2020-03-18 21:16:55 -07:00
2020-08-22 13:26:13 -07:00
2020-08-22 13:26:13 -07:00
2020-03-30 14:15:51 -07:00
2020-06-17 03:28:55 -04:00
2020-06-22 14:55:04 -07:00
2020-06-22 14:55:04 -07:00
2020-05-04 13:14:48 -04:00
2020-05-04 13:14:48 -04:00
2020-09-11 08:12:07 -04:00
2020-06-17 03:29:10 -04:00
2020-05-06 13:09:29 -07:00
2020-05-16 19:58:17 -07:00
2020-07-20 20:35:47 -07:00
2020-05-19 13:42:30 -07:00
2020-10-05 13:21:38 -07:00
2020-04-10 12:53:53 -04:00
2020-11-18 12:50:32 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-11-02 14:24:55 -08:00
2020-12-18 11:42:33 -08:00
2020-11-30 15:02:07 -08:00
2020-10-26 12:19:31 -07:00
2021-01-27 13:32:46 -08:00
2021-01-28 23:36:43 -08:00
2021-01-27 15:30:59 -08:00
2021-03-11 11:56:55 -08:00
2020-04-02 23:54:24 -07:00
2021-02-23 16:17:57 -08:00
2021-03-11 11:56:55 -08:00
2021-01-13 15:51:08 -08:00
2021-01-13 15:51:08 -08:00
2021-02-22 13:34:47 -08:00
2021-02-22 13:34:47 -08:00
2020-04-22 15:45:15 -07:00
2020-09-17 10:42:47 -07:00
2020-08-26 16:28:50 -04:00
2020-07-10 10:18:15 -07:00
2020-10-28 13:48:29 -07:00
2020-10-21 12:31:29 -07:00
2020-11-25 14:51:38 -10:00
2020-09-05 02:48:45 -07:00
2020-08-21 09:47:37 -07:00
2020-08-21 09:47:37 -07:00
2021-01-08 10:55:34 +00:00
2021-01-25 11:16:59 -08:00
2020-04-24 13:10:34 -07:00
2020-07-17 13:30:57 -07:00
2020-07-17 13:30:57 -07:00
2020-10-01 15:20:01 -07:00
2020-04-13 12:31:14 -07:00
2020-06-10 14:42:49 -07:00
2021-02-05 12:07:14 -08:00
2021-01-08 10:55:34 +00:00
2021-01-04 15:49:52 -08:00
2020-09-22 21:21:13 -07:00
2020-10-01 13:06:17 -07:00
2020-12-18 11:41:55 -08:00
2020-10-01 14:56:32 -07:00
2020-09-14 19:56:24 -07:00
2020-06-09 13:40:17 -07:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2020-12-15 17:08:36 -10:00
2020-04-03 14:14:13 -07:00
2020-03-18 17:03:07 -07:00
2020-04-27 13:23:45 -07:00
2020-06-24 13:45:17 -07:00
2020-10-05 14:12:47 -04:00
2020-05-05 20:06:07 -07:00
2020-03-30 12:49:53 -07:00
2020-07-07 11:34:10 -04:00
2021-03-05 11:15:05 -08:00
2020-10-02 16:47:37 -07:00
2021-03-10 13:31:25 -08:00
2020-06-17 03:28:55 -04:00
2020-05-20 14:32:41 +03:00
2020-04-15 21:11:05 -07:00
2020-04-14 15:20:19 -04:00
2020-07-30 13:45:29 -04:00
2020-03-19 11:40:43 -07:00
2020-10-14 15:58:13 -04:00
2020-06-13 07:05:21 -04:00
2021-02-18 16:43:36 -08:00
2020-05-07 14:05:57 -07:00
2021-02-02 14:02:35 -08:00
2020-03-17 14:58:52 -07:00
2020-06-13 07:10:04 -04:00
2020-04-30 12:21:02 -07:00
2020-12-10 10:17:28 -08:00
2020-07-29 16:07:00 -04:00
2020-07-30 13:09:21 -04:00
2020-08-17 15:30:19 -07:00
2020-04-07 16:12:18 -04:00
2021-02-25 17:36:09 -08:00
2021-02-11 16:49:21 -05:00
2020-04-06 11:55:39 -07:00
2020-03-30 14:16:07 -07:00
2020-04-15 13:37:51 -07:00
2020-04-15 13:37:51 -07:00
2020-04-15 13:37:51 -07:00
2020-09-14 12:20:57 -07:00
2020-12-16 18:56:18 -08:00
2020-08-06 13:27:19 -07:00
2020-07-07 17:36:59 -07:00
2020-07-09 13:13:48 -07:00
2020-07-09 13:13:48 -07:00
2020-07-09 13:13:48 -07:00
2020-07-09 13:13:48 -07:00
2020-07-07 17:36:59 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2020-03-28 12:16:50 -07:00
2021-02-25 16:26:16 -08:00
2020-10-07 12:08:20 -07:00
2020-10-06 14:18:44 -07:00
2020-11-02 14:35:56 -08:00
2020-04-01 15:38:10 -07:00
2021-02-22 14:43:28 -08:00
2021-01-11 16:46:08 -08:00
2020-12-19 07:18:44 -10:00
2021-03-06 06:51:02 -08:00
2020-09-23 00:51:14 -07:00
2020-09-23 00:48:40 -07:00
2021-03-05 07:26:27 -08:00
2020-04-28 12:52:14 -07:00
2021-03-11 07:32:49 -08:00
2020-09-16 13:31:13 -07:00
2020-04-06 13:36:20 -07:00
2020-05-07 15:03:51 -07:00
2021-03-02 20:38:37 -08:00
2020-04-02 18:00:59 -07:00
2021-01-13 15:51:08 -08:00
2021-01-13 15:51:08 -08:00
2021-01-13 15:51:08 -08:00
2020-03-19 19:02:39 -04:00
2020-10-12 09:33:39 -07:00
2020-03-23 17:20:35 -07:00
2020-04-09 14:00:21 -07:00
2020-04-24 13:49:48 -07:00
2020-06-04 19:28:33 -04:00
2020-04-24 13:49:48 -07:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2020-11-19 11:41:35 -08:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2020-03-25 15:16:54 -07:00
2020-12-01 12:19:12 -08:00
2020-03-30 13:04:33 -07:00
2020-10-19 13:34:16 -07:00
2020-07-14 17:25:45 -07:00
2020-06-18 00:22:32 -07:00
2020-06-18 00:22:32 -07:00
2020-06-18 00:22:32 -07:00
2020-07-14 17:25:45 -07:00
2020-09-08 10:29:15 -07:00
2021-01-15 17:23:01 -08:00
2021-02-24 22:36:04 -08:00
2020-10-28 14:31:40 -07:00
2020-10-28 14:31:40 -07:00
2020-10-29 14:17:24 -07:00
2021-03-11 09:07:33 -08:00
2020-11-17 17:52:32 -08:00
2020-11-02 15:34:36 -08:00
2020-11-02 15:34:36 -08:00
2020-11-02 15:34:36 -08:00
2020-05-14 14:36:38 -07:00
2021-02-22 14:43:28 -08:00
2020-09-04 09:01:59 -07:00
2020-05-25 09:55:41 -07:00
2020-10-02 15:37:59 -07:00
2020-04-01 16:36:28 -07:00
2020-04-01 16:36:28 -07:00
2020-04-01 16:36:28 -07:00
2020-04-01 16:36:28 -07:00
2020-11-03 12:22:30 -08:00
2021-02-03 18:26:33 -08:00
2021-01-05 11:10:04 -08:00
2021-01-05 11:10:04 -08:00
2021-01-08 12:03:29 -08:00
2020-07-15 14:31:55 -07:00
2020-07-15 14:31:55 -07:00
2020-08-29 01:01:06 -07:00
2020-11-03 12:22:30 -08:00
2020-04-07 10:55:56 -07:00
2020-10-09 10:53:59 -07:00
2020-12-01 14:47:14 -08:00
2021-02-09 15:03:11 -08:00
2020-05-06 15:15:24 -07:00
2020-03-20 17:09:24 -07:00
2020-10-13 13:00:09 +09:00
2020-04-01 15:05:49 -07:00
2021-03-01 16:12:03 -08:00
2020-07-09 11:08:44 -07:00
2020-04-15 10:34:07 -07:00
2021-01-19 18:02:35 -08:00
2021-01-28 09:24:54 -08:00
2020-10-06 16:30:09 -07:00
2020-11-23 17:01:42 -08:00
2020-10-19 07:26:48 -07:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2021-01-08 10:55:34 +00:00
2020-10-08 14:55:14 -07:00
2020-04-09 02:55:39 -07:00
2020-09-11 12:58:40 -07:00
2020-09-11 12:58:40 -07:00
2020-09-11 12:58:40 -07:00
2020-09-11 12:58:40 -07:00
2020-09-11 12:58:40 -07:00
2020-09-11 12:58:40 -07:00
2021-02-23 16:13:59 -08:00
2021-02-04 13:25:53 -08:00
2020-05-04 15:28:00 -07:00
2020-03-20 16:09:01 -07:00
2020-04-20 11:04:24 -07:00
2021-03-11 11:56:55 -08:00
2021-01-10 15:42:39 -08:00
2020-12-16 13:11:48 -08:00
2021-02-22 14:43:28 -08:00
2020-04-13 15:54:37 -07:00
2021-01-12 12:59:52 -08:00
2020-12-07 16:38:00 -10:00
2020-07-15 11:19:43 -07:00
2020-04-28 16:56:35 -07:00
2020-03-19 14:05:33 -07:00
2020-06-23 17:56:44 -07:00
2021-01-08 12:03:29 -08:00
2020-04-20 12:58:38 -07:00
2021-03-02 06:54:31 -08:00
2020-05-20 13:52:52 -07:00
2020-10-22 11:27:41 -07:00
2020-04-21 13:29:45 -07:00
2020-06-24 14:24:34 -07:00
2020-03-19 12:03:50 -07:00
2020-10-20 13:11:52 -07:00
2021-01-08 10:55:34 +00:00
2021-01-20 15:23:34 -08:00
2021-01-20 15:23:34 -08:00
2021-01-20 15:23:34 -08:00
2021-01-20 15:23:34 -08:00
2020-06-19 10:50:35 +08:00
2021-01-07 12:05:40 -08:00
2020-06-30 13:37:59 -07:00
2020-11-02 14:45:26 -08:00
2020-08-26 16:28:50 -04:00
2020-06-26 11:08:35 -07:00
2021-01-21 13:06:56 -08:00
2021-02-25 17:36:09 -08:00
2021-02-25 17:36:09 -08:00
2021-02-22 14:43:28 -08:00
2020-05-15 19:46:45 -04:00
2020-07-07 15:29:52 -07:00
2020-04-29 10:35:33 -04:00
2020-11-30 14:27:19 -08:00
2020-12-04 16:20:14 -08:00
2021-02-12 10:07:59 -08:00
2020-03-30 14:45:32 -07:00
2021-02-16 12:00:41 -05:00
2020-07-03 09:51:01 -07:00
2021-03-09 11:43:19 -08:00
2021-02-17 17:12:32 -08:00
2021-02-17 17:12:32 -08:00
2020-03-30 19:31:16 -07:00
2021-01-08 10:55:34 +00:00
2020-08-21 10:42:48 -07:00
2020-04-01 15:39:12 -07:00
2020-12-16 13:17:57 -08:00
2021-02-25 13:54:14 -08:00
2020-04-24 18:33:30 -07:00
2020-05-04 12:46:14 -07:00
2020-06-12 17:48:19 -07:00
2020-10-28 11:55:32 -07:00
2020-07-15 14:43:56 -07:00
2020-07-15 14:43:56 -07:00
2020-07-21 13:51:27 -04:00
2020-07-21 13:51:27 -04:00
2021-02-21 12:27:46 +02:00
2021-03-11 06:39:20 -08:00
2020-03-31 15:32:15 -07:00
2021-01-12 10:59:08 -08:00
2021-01-12 10:59:08 -08:00
2020-06-10 10:53:02 -07:00
2020-10-27 10:53:13 -07:00
2021-02-17 14:48:07 -10:00
2020-09-11 15:36:00 -04:00