Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web Components support in HTML files #62976

Closed
3 tasks done
octref opened this issue Nov 12, 2018 · 19 comments
Closed
3 tasks done

Web Components support in HTML files #62976

octref opened this issue Nov 12, 2018 · 19 comments
Assignees
Labels
feature-request Request for new features or functionality html HTML support issues on-testplan

Comments

@octref
Copy link
Contributor

octref commented Nov 12, 2018

Related:

Problem

WebComponent offers a JavaScript API to define HTML tags / attributes. We want people to get completion, diagnostics and other language features that's already available to the HTML server.

Approach

We plan to:

  • Define a JSON schema for tag/attribute definition JSON file (like dts for TS projects)
  • Allow user to specify a list of such tag/attribute JSON files as a setting

However, there is currently no way to auto-generate such a JSON file from user-authored JS files. In the short term, these files are most likely to be hand-written. In the long term, we hope we can standardize such a format and find a way to auto-generate these JSON files with the WebComponents community.

Supported Features

Working Out of the box

  • DocumentHighlight
  • DocumentSymbol
  • Folding

Plan to Support

What we'll ship for November iteration:

  • Completion: HTML tags.
  • 🏃 Completion: HTML attributes. Attribute itself yes, attribute description 👉 HTML attribute completion description #66230
  • Hover: Hovering over HTML tags / attributes should show descriptions.
    - [ ] Diagnostics:
    - Required attributes not included
    - Attribute value is not one of attribute's enum value
    - [ ] TextMate Grammar: Color web component tags/attributes differently

Hard to Support

We do want these features, but there is no clear way to implement these features.

  • Jump to definition: Jumping to definition on <my-tag> should go to the JS file that defines such a class.
  • Find References / Rename: Requires project understanding, but our HTML support is single file.

No plan to Support

  • Signature Help: It does not make sense when Completion offers snippets.
  • QuickFix: No sensible quick fix that we can offer.
@octref octref added the html HTML support issues label Nov 12, 2018
@octref octref added this to the November 2018 milestone Nov 12, 2018
@octref octref self-assigned this Nov 12, 2018
@octref
Copy link
Contributor Author

octref commented Nov 12, 2018

Let's take this file for example: https://github.com/mdn/web-components-examples/blob/master/composed-composed-path/main.js

The JSON could look like this:

{
  "components": [
    {
      "name": "open-shadow",
      "description": "Open Shadow DOM Component",
      "attributes": [
        {
          "name": "text",
          "description": "The text inside the component",
          "required": true
        }
      ]
    },
    {
      "name": "closed-shadow",
      "description": "Closed Shadow DOM Component",
      "attributes": [
        {
          "name": "text",
          "description": "The text inside the component",
          "required": true
        }
      ]
    }
  ]
}

octref added a commit to microsoft/vscode-html-languageservice that referenced this issue Nov 29, 2018
octref added a commit to microsoft/vscode-html-languageservice that referenced this issue Nov 29, 2018
@octref
Copy link
Contributor Author

octref commented Nov 29, 2018

What we have now:

html

Here is how it works:

  • You specify html.experimental.custom.tags and html.experimental.custom.attributes
  • VS Code loads those tag/attribute definitions and offer completion, hover and other common HTML features

I'll open up issues in WebComponent related repos to get more feedback.

octref added a commit that referenced this issue Nov 29, 2018
html.experimental.custom.tags/attributes for #62976
Vscode-Extractor pushed a commit to vscode-langservers/vscode-html-languageserver that referenced this issue Nov 29, 2018
@octref octref modified the milestones: November 2018, December 2018 Dec 2, 2018
GongT added a commit to kendryte/kendryte-ide that referenced this issue Dec 5, 2018
d8bab72561 Cancelled inputs should cause task to end silently
729a750fd3 Make Alex R. responsible for tasks
8b0480db30 Should not silently ignore undefined input variables
94f9498cfe Improve descriptions in input schema
42bcb66503 fix #59439
51ef43a023 Make task input pick and prompt more specific
69a9abe57a fix #64339
e17f3032f7 Change task input label to id
22fef36fcf #61590 Change the title
85f805acf9 Fix restoring pending comments, fixes microsoft/vscode-pull-request-github#718
ad8d18edf3 Match signature context field name to type name
5010af1171 Hide infer type suggestions when using broken versions of ts
f52f29d65e Add typings for markdown preview messages
a2893ce678 Fix markdown fragments when opening file in workspace
89921928d0 Correctly highlight @example code as js/ts
a57b55f610 Revert #62806
d9f88f8806 Ensure expected decimal separator in ps output when listing processes, fixes #63437
cd711a51a4 Bump distro, update OSS
95b5f88657 Fix/64292 (#64365)
610665d9d5 update title
f0114b29e6 #61590 Update title
5083c2b8ca 💄
517c4458b1 Right fix #63496
cefb670307 #63496 rever escaping
9ab1540c57 debug: support input schema in launch.json
9e4b4326d8 editor - cleanup tabs title control (a bit)
9cc278d1c6 Fix #64341
939d390bc3 Fix undefined error in inputs configuration resolver
66e39a86cd Fix PCRE2 description
54c874caf5 Intelisense on tasks.json is broken
598f269cc0 fix #64309
fa87e67ebf Revert "Make menubar its own widget and add overflow (#63954)"
07202fbfb8 Small fixes to sig help context docs
00828c56c5 Merge pull request #64271 from cleidigh/selectbox-sticky-off/bug
dd6a6aba8e SelectBox: Restore _sticky = false. Fixes: #64265
f264e8f33b Make sure our temp ts directory really exists
6f9b2d7593 Fix #59922 - changes needed to support a cache in a  FileSearchProvider
682d684944 Give extra padding for simple find widget
ab3bc1e7af Revert "call resolve before inserting a completion item, #63013"
64117e8fb5 Rename TriggerReason  -> TriggerKind
7e650bffa7 Bump node2
3e399f1442 Naming (#60773)
48966a872e Copy options disable by default (#60773)
d8317e3156 tweak jsdoc
262b7fcd60 Merge pull request #64224 from skprabhanjan/fix-64041
9d4f71883a Experiments shld provide local text for commands too (#63261)
3bb5ce5d52 remove sample function proposed api
461affb92d finalize tracker API; fixes #62843
d0c925c18e Improve ext host terminal proc
130e81f154 hot exit - do not clean backups when quitting before editors have been restored
922435f717 Fix #63906
31450e4ffe fix strict-null
7150d4b3a1 fix-64041 - Changed ParameterInformation constructor - Changed @param label description
01e36a242b Fix #59497
5446cb4205 fix-64041 - Changed ParameterInformation constructor
5f53ed3811 handle ipc-queue cancellation, #63013
cbb9fa7385 Fix #59481
c2c2e48dd3 call resolve before inserting a completion item, #63013
aedd4402fb Make menubar its own widget and add overflow (#63954)
99b2fca41f Merge pull request #64093 from Microsoft/mjbvz/63013
93ef7cd03e Merge pull request #64200 from Microsoft/isidorn/zenModeRestore
2d57133894 zen mode: properly clear state on shutdown
ea14a460db Merge branch 'master' into isidorn/zenModeRestore
a8b004a30e fixes #62629
e7c77a3a81 storage - include a WillSaveStateReason when saving
08d8cc157a fix #63431
57c1e826a0 strict null for all smart select
6938d2c35d smart select bracket pairs, #64004
d3665d2f8b Fix #64199
8ffc91c042 Merge pull request #64007 from DustinCampbell/update-csharp-grammar
9a8bbb8dd8 Fix opening settings editor when ui is disabled
74263a78d0 Merge pull request #64189 from usernamehw/keybindings_command
2122d7e0bf Remove support for post install
6153c8b075 debt - remove editor history listeners when condition is met
daae50ab21 ensure a range contains its previous range, #63935
46e453dc1c zen mode: We will not restore zen mode, need to clear all zen mode state changes
2baa14fcf2 tests and api command for smart select api, #63935
07be58bbad add proposed api for smart select, #63935
bc916bb6af Added commit hash to cgmanifest.json
c98725aa03 missing compilation
71630c224a storage - parts splash becomes a window config to show early on
37100fb8f1 Merge pull request #63947 from Thomas-S-B/master
1567e662cc only show update service errors when asking explicitly
868f812b37 💄
92894195d0 Merge pull request #63759 from donaldpipowitch/patch-1
91aa9db312 rename setting, #62365
6959ac313d Merge pull request #63193 from skprabhanjan/fix-62365
77ea172135 keybindings - do not steal focus from an event
3fd9352b8d Remove Better Merge key #64190
44a246e7a8 perf - measure workspace service init time as well
6bcd5c4126 update ref-view extension
3935abd964 Automatic tasks should prompt before running (#64075)
f9703e9ad6 Input variables in tasks (#63910)
253a4f6d17 log provider failure as errors, #63831
f70c402f8f Use string type for `command` property
9e62a05bc7 [fix] #27649 pin intellisense documentation widget to top (#62115)
5303738ae1 Fix search/replace unit tests
0bde61957b Fix F4/shift+f4 for search result list causing hang, due to native promise switch
3cb280dfaf Fix #64112
d8b78f5a45 Make _actionRunner non-nullable
e42d74ce9a Fix completions for intellicode
e39a97deb7 Fix snippet function call completions for intellicode
96990ee230 Strict null check platform/configuration/node
7ef1306340 Strict null check menubarService
28951283ab Strict null check checkbox.ts
c2b17260ac Strict null check action bar
4bb81b60df Fix event typings
bd06a44d89 lifecycle - allow vscode:openFiles in Phase.READY
a6defd0a16 storage - 💄
5e22941032 storage - 💄
5c3fc9ca65 storage - dispose some listeners on close already
b782c3a62b storage - avoid storage access on shutdown
e7bfb7b0ef storage - add beforeClose() to tests
fbec0a8f01 storage - do not force a 100ms wait on shutdown/reload
8558de0c34 fix strict-null check
11c5c3c752 Merge pull request #64110 from Microsoft/ben/global-storage
69d572d894 storage - handle telemetry global keys
8df9cd2ce2 storage - reduce global storage change events for testing only
9f392a4bcc storage - add tests for mapToSerializable
1cbe0c10d7 Merge branch 'master' into ben/global-storage
82863aac3b Strict null checking snippetsService.ts (#63456)
2f3fc3f6bb Strongly type some event types in addDisposableListener
61c74e1ac0 Strict null check
7aefdac98e Strict null check
9d5987b0f7 Type objects.assign
bdf3b644e0 Strict null check extension scanner
978a6cc248 Strict null check menubar
a4cb12d0a9 Fix QB tests, #63049
6e38a3f966 Fix #58035
520106ebff Move signature help context to stable api
df471692d1 Fix #63049
6793104f8d Do not cache completions that are cancelled during resolve
b7f82026e5 Fix #63488, search layout issue
86052e38f3 Support debugging process from the process explorer, closes #63147 (#63953)
7cd7e3745d Add panel/sidebar nav commands to skip shell default
8275b2d71d Fix #62304 - allow copy/search with multiline text
804f80a3c1 Move isSmartCase off IPatternInfo
2bbf34d8f9 Bump node-debug
f3a616123e Fix #63297
4bea1ccfc0 fix tests
1701b8d3bd debt - use Set for cloneAndChange
3c8302a762 another fix for #62719
23c7e02c80 fix #62719
bf7f422b83 Merge branch 'master' into ben/global-storage
b9e55b7047 storage - put migration behind flag
e587c44b97 green build maybe?
b1f1140ac9 Merge branch 'master' into ben/global-storage
9c7ac78fc0 fixes #63416
5f6573f109 storage - better check for migration
8de073ac9f Automatic tasks should prompt before running
a5289df1c6 strict null checks
23e1fb8d6f fixes #63939
f9770b489a fix async data tree expand promise
f478f3e0fe debug trees: minor polish
4b7614ff9a add word based provider #64004, add multi-provider merge logic #63935
aa3ea85b0a Explorations
3b6578a227 Fix #64061
1f6e00a452 debug watch: Ignore double click events on twistie
5c250f3a85 debugHover: disable mouse support and fix focus
e16c62b315 Move rerun behavior api out of proposed (#63511)
ddd46e8622 list onDidChangeContentHeight
f168d88224 final tracker API; for #62843
72812c4157 Add monaco.d.ts
6738976474 More strict null checks (#60565)
2fc484337d Strict null check for simpleServices
44bf93164a Make strict null check automatic
0d2fa1323c storage - fix smoketest
b638c6bdea storage - add global storage migration
5d65066d23 Fix task shellConfiguration schema
5f593ede5e strict null...
2f4045aaeb repl: disable mouse support
91a1ac9bf3 list: improve lack of mouse support
d68ed6c82c continue builds when component detection fails
d69910e5ae repl: Align twisite to last line - for input output pair expressions
3b97ab71e0 callstack: ignore erros from tree when expanding possible unexisting seassion and thread
aaf4560e0c async: ignoreErorrs
2a8f7c53bb only blame an extension once...
5637f24b29 uri tweaks in md strings
eaee631826 Merge branch 'master' of https://github.com/Microsoft/vscode
298a36714f Global tasks don't need a workspace root
34b655147e - Remove proposed api check for collpaseAll - Add proposed api check for treeview message and globalStorage
cee0951b13 Enable Collapse All action in the npm script explorer
2e339afec3 Fix last merge conflict warnings
d215718700 remove unused code ftw
2cab52d128 fix #64052
9878edb2a7 Pick up TS 3.2.1 final
a3378e4342 Add pinning test for bracket completions
c5afb50a5b Added test for #63100
06a64b097f Extract joinLines
2c2ae49145 Merge pull request #64010 from Microsoft/rebornix/commentsgrouping
beb5998ea3 Correctly sort bracket accessor completions in js/ts completion list
e42051996b Don't trigger parameter hints when completing empty method
f2348199e0 Update js/ts grammar
211c1a8320 better handle of labels
3f33ef2593 Support whitespace after dot for bracket completions
1feed6a23c Delete unused typings file
9eb6d908e3 remove unused method
8fb320d4a4 Center add comment decoration, fixes #63810
52811a3a48 Merge remote-tracking branch 'origin/master' into rebornix/commentsgrouping
e877e5c820 comment thread can be updated by draft mode change.
b50bc73a24 Add overview ruler decoration for comments
d27d752b6b Update C# TextMate grammar with latest fixes
da4f655c5b lifecycle - put some things back to RESTORED phase
9c8a9df17b move token tree provider around, #63935
d3e7f797ad debug hover: use WorkbenchAsyncDataTree
d012106744 debug console: Reveal last element when we add new expression
e05aa178d6 Fix 63749 - Markdown, U+2028, and "Go to Symbol in File..." (#63936)
de4c52a612 Merge pull request #64000 from Microsoft/isidorn/debugTrees
d49d0e68a8 callstack view: expand is async
8e74097929 variables view: Expand the first scope if it is not expensive and if there is no expansion state (all are collapsed)
92ffa38ddc storage - implement external changes
9ed74f3788 add simple filter for LoadedScripts view
899c453e51 cleanup
2063f17b33 #60053 hide message when reload is disabled
771099d089 Merge pull request #63187 from Microsoft/ramyar/reload-subtext
c4420f2802 callStack, repl and watchExpressions provide identityProvider
6a83f3164b Merge branch 'master' into ramyar/reload-subtext
6473016cf0 Fix #62917
b5732d84d8 💄
adbf1f358e Fix #63906
8602d6d74d Merge branch 'master' into isidorn/debugTrees
b2cdc62028 async data tree: recursive refresh
bb52737c98 Fix #63928
7c352f49b8 fix #63977
5f914ae2a7 identityPorivder for variablesView
e370cd0b4e Merge branch 'master' into isidorn/debugTrees
23e4cf3aaf Fix #63992
55517b0850 Merge branch 'master' into isidorn/debugTrees
4ff9d7bf68 reveal reference after having revealed it...
e3789a3234 fix #63978
7d76da2149 list: right click should  not select/focus
cabd0e4885 async data tree: preserve collapse state given identityProvider
b7808ec3f0 tree: more type cleanup
845019590f tree: cleanup null vs undefined
0c96049d7b async data tree tests: add refresh button
33fc775216 objectTreeModel preserves collapse state on strict identity
d88dd6900f async data tree: 💄
7ca0d1f45c async data tree: 💄
c4e42740d1 storage - log close() duration for global main
afdbef0e23 fix regression from data tree adoption, #63904
5941c168fb storage - log global storage home
83fe791560 storage - use storage service also for global
722b04f340 Revert "explorer do not always reaveal in middle, jump less"
bb71de4595 remove call to post install
2f41878eee fix tests
65ec9a9f1a storage - trace close() time
a8e6a91993 fixes #54397
071d80c795 storage - also log time it takes to init global storage in renderer
807efa6e1c Fix #63710
462dc7fe83 smart select - skip duplicated ranges
ee47a5ad75 smart select - simplify model, fix some issues
45849356f2 storage - remove unused
51ec7ed3c1 storage - properly implement global storage
86380f9146 Merge branch 'master' into ben/global-storage
741af1dc4b Fix #63968
d320e7c7bd #23251 Clean up extension storage location
e6adb169d0 Fix undefined error in runAutomaticTasks
07d7409240 update vscode-ripgrep
d98cff5eb0 remove unused variable
94315b8636 lifecycle - introduce onShutdown event for disposing things after onWillShutdown
84e975ef88 Skip localhost (#60773)
d0979a9322 Merge branch 'master' into ben/global-storage
cd5b4d1bb3 Use insertText as filterText for js/ts completions by default
364824a864 use simpler typeof check
3c95fb7b9f Update js/ts grammars
2f51c4e17c Merge pull request #63958 from Microsoft/octref/web-component
d198091b68 html.experimental.custom.tags/attributes for microsoft/vscode#62976
8f4870c8e0 Fix quick input list null reference exception
9da787b90d render pending label as italic
8d78edddaa render pending comment
5df76d3535 Highlight some basic markdown elements in js/ts fenced code blocks
72ece3c7ee remove deleted file from strict null check list
247667c5bd Pick up updated markdown grammar
1b8f388387 Fix npe for draftMode
5f09207fea Fix shared process launch config
2eeb643fcd Removed unnecessary cast
9cabcf131c Bump ripgrep to fix #63070
63710859e6 Merge pull request #63792 from vim88/fix_typo_in_comments
be5823d616 Bump node2
4843a871ce object tree: todo
d81a1bcd58 add internal api for selection ranges provider, #63935
3763df80fe merge master
e3c2fbfd7c Merge branch 'master' into isidorn/debugTrees
b10fc8fc9c object tree model: preserve collapse with identity provider
067f46af2a Support for automatic tasks (#63695)
8bcb65bb7f #61312 Revert to proposed
c8d9db0a26 Fix #62370
55bbf177cc merge master
8cd83722d5 async data tree: proper options mapping
deaaa5fc75 fix strict null checks
d462d332a1 tree options: collapse by default
3571240efb repl: use scheduler and smaller timeout
0e0fbf9880 don't write profile too early, apply pii massage
701ccb5d9c adjust wording, add report issue from silent perf notification
e5094daf8c don't resort extensions after profiling
37037eac8a #23251 Expose global storage path in proposed API
c083f2113a Fix tests
451d36e060 callstack fix npe
04bd1cb255 tree: 💄 move types around
f128273f6f repl: do not return undefined for hasChildren
e5a93f37b1 AsyncDataTree
dc518b7ce0 comment out identityProvider due to build error
f21bd59b6f merge master
9b6928ca43 fix datatree.getNode()
62f14eab6f repl: getVisibleContent
75e8afe80d wip
82a5ee52be remove duplicated switch case
701c8482ef adopt DataTree in references widget, #63904
614f05ef97 list: fix scrollable element delayed changes
18570a1c9b list: proper identity provider
9a57732a6c Simplify test running
f8934261c0 Fixes #63822: Keep tokens for empty lines if the language id is not the buffer language id
050087c7dc repl: auto scroll when last element is visible
676451bea6 tree: expose renderHeight
14ba9f928c make debug content updates cancellable; for #41362
87191950d8 refetch Source content on changed events; fixes #41362
62e90329bf #23251 Post extension install hook
ef95481c94 Task schema issue: dependsOn not permitted
2c6564b2c4 Merge branch 'master' into isidorn/debugTrees
486958b16a dataTree: expose scrollTop and scrolHeight
3f022a8e18 Merge branch 'master' into isidorn/debugTrees
07e4368720 data tree: use proper loading
f8e9f80db0 expose scroll height
ad569df81b expose DataTree.getNode
a8bc6afabb data tree: expand should be async
6fb649a3af repl: minor optimization to reduce relayout calls
3eccc7a19c repl: clean up css and fix widths calc
1867a8757f tree: fix renderers type
f83412467c tree: use null to represent root
17c563e0f5 debug: adopt to the click outside of tree
1e2d8eda97 fix strict null checks
4d81a85f22 fix build
56cf7ed98c Merge branch 'master' into isidorn/debugTrees
880c1fe178 treeResourceNavigator2
ba7170d2d3 debug tree adpot WorkbenchDataTree
4967ca4580 list: emit mouse events on root
dff890a41b Merge branch 'master' into ben/global-storage
2f10e0f63d merge master
24036d74a9 Tweak lifecycle phases (#63899)
bb0242c7dc WorkbenchDataTree
b134ef4ad8 history - increase limit (fix #63853)
a162740380 fix tree tests
99ddece45e swallow cancellation error in datatree
3953262633 Merge pull request #63716 from Kedstar99/master
dbb3e0a992 Merge pull request #63750 from davidbailey00/patch-1
b1d9b0982e Persist replace input text - fix #63886
9d2251469f Do not display errors in editor for cancelled js/ts code lenses
42145f1f0c Interupt TS references and implementations requests
1a1987dee6 Revert "Delegate js/ts code lenses back to vs code"
fe62d9ce21 Fix #63685 - fix search input heights on panel resize
9e17c2c92c Pick up new TS insiders
11d48f122e first cut
9461f661f0 Interupt geterror requests for signature help requests
7eed623657 Interupt geterror requests for getting completion entry details
5f1aa0e5f0 Strict null check selectBox
5b98f94dba Move base/node to use include instead of files
53010cfde2 Strict null checks
f697e13edb Fix strict null check
7e1c536682 Fixes #63405, Issue Service: handle null for BrowserWindow.getFocusedWindow()
3912816409 Add keyboard shortcut to close Issue Reporter window, fixes #59845
922d6ef83f update json hover for word pattern.
2f9f0c35cc Added failing test for #63749
f0ebaad9ac Add skipped test for #63822
f685215dd4 Adding version info for ts non-code dependencies
336db91acb Use switch case
9531a7c380 💄
0c126b0608 Extract display part kinds to constants files
bab1ea6c27 💄
ca7f6c2cf2 Move snippetForFunctionCall to own file
77454b24bc Extract append joined placeholders
0aef227bbf Try splitting up parameter list extraction from snippet building
61ad185759 Make it clearer that insert text snippets override the rest snippet generation
d5843e550f Fix bug for generating snippet if the object type contained a method signature
1755715a13 Fix bug where return type containing function type could be merged with normal parameters
86d7fd923a Adding pinning test for inline types
af05b65331 Adding plnning test for rest paramters
e8f00e763a Adding pinning test for getting parameters
ece1bad312 Adding basic pinning tests for insert text
ec3cba2661 Add test for using insert text
ecce9249cb Extract snippetForFunctionCall so that it can be tested
3725e59112 add timeout for getmac (#63815)
2337790398 Fix search smoketest
1c62ed721e Restore #63457 without #63834 break
4dd748b443 tweak running extensions view, nuke the chart, tweak messages
d686306fe7 #12764 Show the time of update
8b5501fc8e Fix #63814 - add "Don't show again" option to PCRE2 hint
60a98cc4cc repl: getHeight for elements
c03453307a Fix #63845
2472ebe775 repl: adopt to new tree first steps
fc4ac2ccb8 storage - scaffold a basic global storage service on the main side
fd42b23392 Merge branch 'master' into ben/global-storage
7b20b40161 #14034 Support installing specific version
9092671aac #14034 Fix actions
06300cf9dd #14034 Only get compatible versions
f4dccbee1d #12764 Use quick pick object
890aab6e77 #12764 Install another version action on extension
b039653770 Use thenable
3ec25d9d28 #12764 💄
0ea1affe88 dispose dropdown actions
33f1bd6aa4 #12764 Show extensions viewlet when installing
fe475275bc #12764 Add install previous extension version action
31b1d0763b #12764 Support installing an extension version in workbench
ad6be18d33 #12764 Support installing specific extension version
2d931dc4cb #12764 - Get all versions from gallery - Ability to get a compatible version from a given version of extension
ef2314e1cb LSV: support 'changed' event; fixes #41362
2c531e2ede only set nodeCachedData-prop when having a dir, #60332
2319dc2389 adopt new loader, make sure each loader instance has a static seed so that filenames don't conflict, #63605
15e25123a4 add identity provider (for stable selection and expansion)
dc68051e07 fix security vulnerabilities
82643cac98 add tryToExpand
96413749ea lookup sources only once
2991abd9f9 less TPromise.join, #53526
489dbed524 know how effective the silent notification is, #60332
367c84c332 don't fire context key change async
56c597fed7 debug trees: clean up css
8fc4a0b0b3 lifecycle - avoid a will-quit listener
024e1c30c7 fix #63216
079ddfb9e8 Revert "fix  #63216"
94fbf68d41 Merge branch 'master' into isidorn/debugTrees
4c9d69f6af loaded scripts: remove unused imports
8152086d56 node-debug@1.30.2
05060ba186 fix keybindings conflict #63448
d85e4aa5ad cleanup ids, #63448
3a8e28e842 update ref-view extension
0e958b3384 💄
3257c5fd98 debt - remove unneccessary cast
22aeacbac9 fix bad listener wrapping in closure
5ec7f536e7 rename main storage
db19a406b0 fix compile
981d0ab0d5 lock event-stream to 3.3.4 in package.json
d3bb20c3fd Revert regression in search viewlet
e5ea0791cb Merge branch 'master' into ben/global-storage
81c552348f storage - polish logging
9568feb086 storage - implement async shutdown support
b9955185f3 Cleanup new setting description
e8db92f701 Merge pull request #63457 from IllusionMH/search-actions-align-option-61532
4201f517b1 finalize DebugAdapterDescriptorFactory API: fixes #62977
daf4deaf0c Terminal process request improvements
421cc14d15 Terminal issues to me
d0843a2471 Fix #63146
ce8cd13d7c Scroll-y menus (#62819)
908deefd7b Fixed checkForSnapUpdate in updateService.linux.ts to use environment variable to identify snap path
f80c92964f fix menubar focus trap (#62869)
510d90d11e Fixes typo and occurrences of double words in comments.
8893b88d85 storage - update global storage file name
16a0994c9f storage - pick less obvious file extension
c70b2e93b7 storage - rename storage DB to ensure proper migration
cc60804a16 Test system proxy config (#60773)
dfa22cc389 simpler API use, #60332
2bd1dbc28a DataTreeResourceNavigator
a91b9bed18 simplify debug hover tree layout
45808035ce Cache proxy only per scheme://host:port (#60773)
2eae360860 Let settings and environment variable win for compatibility (#60773)
5c27a40b17 Merge branch 'master' into isidorn/debugTrees
a20e0af8a7 fix strict null checks
813c488f8a DataTree.onDidResolveChildren
5cfe51e18d Merge branch 'master' into isidorn/debugTrees
370b221e77 tree: expose things for debug
872111715d Merge branch 'master' into isidorn/debugTrees
eaca3f67e8 debug hover do not leave 10px for horizontal scroll for now
921efad3d4 data tree: update nodes map
dadfceb698 fix strict null checks
2d74edfc96 show a silent notification for extension frezing for 5secs and more #60332
3aeaf695bf propagate userenv to shared process
767b4302dc callstack stop throwing
95543333dc Merge branch 'master' into ben/global-storage
093239c54d some lifecycle 💄
9c9003455c fixes #63693
0555e9fb3e first cut of LoadedScriptsView based on new tree
ec01ad3212 some 💄
f58495335d debug callstack: if there are no sessions there should be no children
3b55a21477 notifications - add silent option
5cf5ca6112 Merge branch 'master' into isidorn/debugTrees
3b4ce8684b publish to vscode.d.ts
2a2eaa66a9 debt - less TPromise
b6569f3726 check for unresponsive profile when reporting an extension issue, #60332
b381d643bf tweak interfaces, #60332
0bbbf266f0 fix warning message, #60332
63a88a3b44 Merge branch 'master' into ben/global-storage
456e8e64be fix last TPromise ctor use (#62716)
b3b0e64043 fix scm input box nudge
4b9e34294c fix #63765
91fb4ec351 show blocking extension in editor, #60332
55565d4fe6 TPromise => Promise (#63768)
27797381c5 fix #62833
1f80d75610 fix issue with binary status not updating properly
ee5153ffde added .hintrc and moved .babelrc to jsonc grammar
f473dc4763 Fix missing file search 'rg' log
6c0718df37 Remove StartupWMClass from URL handler desktop file
2f0315fb85 bump distro
e86a53ccfb wip
8780c7b4f8 finalize DA & Tracker Debug APIs
0f3eefc626 Break up ExtensionService into multiple files
8f688a4ccf Fix strict null check
30cabe9b69 Nicer single line search input sizing
9d42fe9859 Cache proxy resolution (#60773)
3b573a0ed1 Add a couple RipgrepParser tests
2cbcd647ec Text search perf improvement for long lines/multiline results
d208a877ec QueryBuilder should respect isMultiline passed in
6dcfe40bf7 debug: callStack use the new tree
1fee0dfa62 Fix strict null check in updateService.snap.ts
88bd079588 Fix #62334
7c1dd38375 Rename interfaces in taskConfiguration.ts to remove duplicates
18fb06690d debt: remove TPromise from update
c4bbbe7e1a Fix #62821
c2a379f554 Fix tests
5009045425 Fix broken variable resolve (#63692)
20cd4c1985 #56649 Add detailed assertions
0b4c169394 update references-view extension
779e2df6f7 Rename to not have two different RunOptions
0e86dd639b MenuItemActionItem only listens to alt-key when having an alt-command
6817493378 lower general listener leak limit to 100
c114ccc172 have high listener leak limit only for those emitters that are used by the ResourceLabel, #63655
52058d0a6f debug trees: take care of todos
b2f53b4e29 #62370 Improve hover UI
ed29882a55 storage - first cut hook main storage into app
e38b8d02d6 tree: expose visibleNodeCount
f1a8646bb6 storage - viewservice.*.enablement state is no longer used, exclude from migration
e712346361 storage - add perf marks for main side storage init
b5cd7785a8 Use an event to build resolver cache
a518531ebc debugHover: use new tree
fe92436149 DataTree: expose domFocus and onDidChangeCollapseState
42b3aa73fd variables view use the new tree
719a2e8716 Merge pull request #63594 from JeffreyCA/smooth-caret-fix
63f9e09b78 Strict null checks for Task in extHostTypes
e7600b87cf storage - add a main side storage service
91d53ea7ee some 💄 in main
f6f4f80cbf Fix #63606
04cbc78e23 Fix #63623
86f1b7c7d0 remove TPromise from editorPart (#62716)
8b86554f3a Support updating localization extensions from files on disk
1ae89aa0b3 fix warnings
9d51ef58be 💄
b7a5edfd84 increase timeout for #63434 fix
487eb2b6f7 window - convert to Disposable
8b802549b0 make sure to reset context key completely
8136239d17 add proper equals check to resource context key, #63656
3255123169 💄
79bcc85f3e Fix #63638
1081caf17a Fix #62768
d21dbf9cc1 make deprecated ctors less prominent
cf3dbf9677 more strict null issues
d36763c74d fix strict null issue
80ba4f4589 update monaco.d.ts
1fae869618 write profile to disk and log filename, #60332
3dded6318c debt - use native promise for pfs#whenDeleted
fec5e17f5a Merge pull request #63477 from desaianuj/patch-1
6850609d74 adopt IExtensionService#getExtension
52b05162d3 only report telemetry when being able to blame an extension
67b65d5d97 add IExtensionService#getExtension
c15b511301 fix #63000
b416d9724b debt - remove stacks when removing listeners
1a4c84baf6 watch expressions: fix some types
1d2299767b Merge pull request #63651 from Microsoft/ben/storagehint
4ab4252ef7 fix #63650
fcfab425fc storage - do not wait for init when storage is known to not exist
c866bf9eb6 storage - fix tests
4852f20bcc dispose listener #63467
d669936def use editor mouse listener instead of multiple listeners #63467
2448fa4d72 have just one editor config listener  #63467
a0a6e481d6 💄
288a0b1778 storage - handle strict null
d2bc3a070c remove unused and duplicated code
575a367a59 storage - move meta data into storage service too
66bcd33778 update references view extension
523fc33980 storage - move workspace folder and migration handling into storage service
a49cad619a watchExpressions: set display back to initial, not inherit
b28bc0acd7 watchExpressions: rename box should be inside expression container
154aae1f47 watch expressions: rename box
e6e855c100 debug: watchExpressionsView use the new tree
3e4044fc0c debug type polish
d84427e830 CollapseAction2 for the new tree
2986851a9f Merge branch 'master' into ben/storagehint
7c0aa47d19 storage - add a hint for speeding up Storage#init()
a6a968bbb8 Apply smooth caret setting immediately after setting change
7be22c5b1f representation instead of presentation
54f7922ad1 Use reloadAction.onDidChange to set the text
fe83544f13 Show Reload full text as sub text
717021be43 Always display count badge near file/folder
c97ef3c46b Option to specify actions alignment in search
2fa8128d52 fix-62365 : _saveState function handled
cb0af8225a fix-62365 : Added useGlobalStorageForSuggestions Setting
@ChenShihao
Copy link

The font looks awesome!! Could you please tell me the name of this? Thx!

@bahrus
Copy link

bahrus commented Dec 13, 2018

Really appreciate this feature. I upgraded to version 1.20, and I had good luck with my first two VSCode projects. However, I've tried on a number of other projects, and am not having luck. The intellisense for web-components.json isn't picking up the schema file, and defining -properties in web-coponents.json seems to have provide no help when editing .html files (contained in demo folder).

Example repo: https://github.com/bahrus/xtal-siema

Hope I'm (not) missing something simple.

Update:

Actually, the "schema support" may have been because I copy and pasted an existing document the first time, so the editor used pattern recognition to provide intellisense -- making me incorrectly jump to the conclusion that it was using schema support.

Also, it doesn't seem any tooltip is provided until attributes are defined.

@octref
Copy link
Contributor Author

octref commented Dec 14, 2018

@bahrus It's working for me though:

image

You would need to reload VS Code after changing the JSON files. They are only loaded during startup.

@bahrus
Copy link

bahrus commented Dec 15, 2018

It is, I was wrong. It seems until you add the attributes array, tooltip for the tag name might not happen. Not a big issue, and I could be wrong.

@Blackbaud-TommyVernieri

This is a great feature, thanks for working on it!

As I test it out, the elements I've defined show up only when I have a folder open in VS Code. If I go to New Window, Open File..., choose an HTML file, then I don't see completion for the elements I've defined in my settings.

I'd expect it to work on loose HTML files in addition to working in the context of an open folder.

@octref
Copy link
Contributor Author

octref commented Dec 20, 2018

@Blackbaud-TommyVernieri What's your use cases?

The settings are local to each workspace. We also plan to allow extensions to add additional tags/attributes (#64022).

@Blackbaud-TommyVernieri

Fair question. Honestly I was just testing it out and it wasn't obvious why it wasn't working. I had added the settings to my User Settings so it expected it to work for any HTML file. I ended up opening a workspace and it worked there.

For a more realistic use case: I sometimes author loose HTML files and then copy-paste that content into a web-based editor. I can certainly workaround that limitation by first opening folder or workspace; and I expect that my primary use case will be editing HTML files withing the context of a workspace when working in a cloned repo. So feel free to disregard this request if getting completion working on loose files is not a priority.

Thanks for linking to #64022, that's exactly what I'd like to be able to do next. That would let me distribute a common tags definition among coworkers. I'll keep an eye on how that one progresses. Thanks!

@2silver
Copy link

2silver commented Jan 15, 2019

How can I escape colons ":" in attributes-values (label)? As far as I know colons are Json-valid values?
I tried to include TAL-Attributes, but it only shows the text before the colon

Example:

    {
      "attributes": [{
          "label": "tal:define",
          "description": "TAL-Template Define Attribute"
        }
      ]
    }

Only shows tal in Auto-Completion

@octref
Copy link
Contributor Author

octref commented Jan 15, 2019

That's actually caused by our bad handling of attribute names. We used to store the data as:

${attribute-name}:${attribute-value-group-name}

So an attribute like spellcheck:b will prompt true | false (defined in b attribute value group) after the attribute completion.

I'll fix it in my PR microsoft/vscode-html-languageservice#45 and start writing updated docs / schemas for the JSON files.

@bkelley13
Copy link

Curious about plans for enumerations for attribute values or required? (ie, myattribute = {left|right})

@octref octref closed this as completed Jan 28, 2019
@octref octref added feature-request Request for new features or functionality on-testplan labels Jan 28, 2019
@octref
Copy link
Contributor Author

octref commented Jan 28, 2019

@2silver What you were doing was valueSet. Take a look at https://github.com/Microsoft/vscode-html-languageservice/blob/master/docs/customData.md.

@bkelley13 Take a look at https://github.com/Microsoft/vscode-html-languageservice/blob/master/docs/customData.md.

@octref
Copy link
Contributor Author

octref commented Feb 6, 2019

Take a look at the new release notes for the custom data support: https://code.visualstudio.com/updates/v1_31#_html-and-css-custom-data-support

@bkelley13
Copy link

Many thanks, it's exactly what we are looking for.

@josundt
Copy link

josundt commented Feb 8, 2019

The company I work for have for some time been creating a UI library with a broad collection of web components to be used across our company's applications.

We have made our own JSON metadata format for our components with our own JSON schema, and today we use these JSON files as models for our UI library documentation application. Devs use this application as a lookup reference when composing application features with our components.

But since the format was created, we had an intent to use these JSON files to provide intellisense/auto-completion to the VSCode HTML language service some time in the future.

So when the VSCode "Web Components support in HTML files" feature was announced, the time seemed just about right to get started looking in to this:-)

I have tested the feature in VSCode 1.31.0, and I have compared the proposed VSCode JSON format to the one we created. I am quite happy with the feature, but there's still a few limitations to the feature and to the JSON format that I hope you can possibly address.

  1. A tag definition in the "tags" section of the current JSON format allow you to specify only one type of child nodes for an element, namely attribute nodes.

In the JSON format created in my company, an element/tag does not only express what attributes it supports, but it also can specify supported child elementNodes and/or textNodes. This way we can express whether a component supports child elements and/or text nodes or not, and we may also express constraints to what child elements are supported by the given element/tag.

Would it be possible to extend your current JSON format so that it can express whether text nodes and/or child elements are supported, and ideally also to express constraints to what child elements are supported, and then feed this info to the HTML language service?

In addition I think it would be very nice if it was possible to somehow give a web component's custom attribute some visual preference (highlight/bold, sort first etc). over all the global HTML element attributes. Today the custom attributes for a component is a bit hard to find in the list of attributes as they disappear among all the others....

@octref
Copy link
Contributor Author

octref commented Feb 8, 2019

child elements

We don't do any diagnostic error on HTML yet. I assume you want VS Code to show warning on using <child> not under <parent>? I don't think if we'll do that.

custom attribute some visual preference

@aeschli What do you think about showing a star before custom element's labels?

@josundt
Copy link

josundt commented Feb 9, 2019

@octref So if I understood you correctly, VSCode auto-completion does not filter elements based on the parent element context. (Example: between start and end tag of a "select" element, VSCode auto-complete suggests any html element, not only "option" elements).

When it comes to the "visual preference" for attributes, I've had a look at the SVG sample on https://github.com/octref/svg-data/blob/master/data/svg-html-contribution.json since my previous comment.

I noticed the usage of "attributeCategories" in this example, which looked to me like a way to filter global attributes (inherited from base HTMLElement) for the custom element in the auto-completion. I could not find "attributeCategories" defined in the JSON schema though, so I am not really sure what it is used for in the sample, but if the intent was like I assume, this would be a nice way to hide irrelevant and show relevant attributes.

I also like the idea of showing a * before custom element's labels if this also means they get sorted on top!

@octref
Copy link
Contributor Author

octref commented Feb 12, 2019

So if I understood you correctly, VSCode auto-completion does not filter elements based on the parent element context.

That's correct, we don't have any logic in HTML completion (it returns the whole list and is filtered down by VS Code's Completion Widget). The problem is the internet if full of invalid HTML, so showing any error or preventing certain completions might backfire.

I've created #68548 to track the * proposal for ranking custom tags/attributes.

@vscodebot vscodebot bot locked and limited conversation to collaborators Mar 14, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature-request Request for new features or functionality html HTML support issues on-testplan
Projects
None yet
Development

No branches or pull requests

8 participants
@2silver @bahrus @bkelley13 @octref @josundt @Blackbaud-TommyVernieri @ChenShihao and others