mirror of
https://github.com/coder/code-server.git
synced 2026-05-14 08:17:27 +02:00
* Squashed 'lib/vscode/' changes from cfa2e218100..2064d4c301c 2064d4c301c fix issue reporter unit tests d99a697eb52 Fix #125503 b098b10a77e Merge branch 'notebook/dev' into main a57e41b7a43 notebooks: more accurately detect old style of renderers c8a447f93b8 Fix #125507 ae4124aa7e1 Fix #122570 2bcdb95e7df update distro 89d750cd687 add restricted mode to created issues (#125537) 5f7166fd915 Put run menu above output container, Fix #125188 d9cf45e0dba Fix #125526 ab0bd774c91 Pass profiles, defaultProfile, isWorkspaceTrusted from renderer to shared process (#125450) 061403c7458 Switches to new RemoteHub authority separator 0e6d07052c8 remove untrustedWorkspace search for now 1c5b5a632f9 Hide "Customize Notebooks" in getting started behind setting f843c51bca8 Update lock file 2456872bcaa Bump distro 12547c1de87 remove virtual workspace information from banner (#125512) 6de86dcd840 update notebook layout default values. 0f0abb3dc87 trust vfs (#125523) 8d87a664274 Bump es build bcdfe884a3c Fix window reload with an empty remote window a0bc15ff6fc Close Remote Connection shows up in local windows fe1eafc80c0 Merge pull request #125498 from microsoft/hediet/fix-125034 5eb636f22fc Renames InlineSuggestionActions back to InlineCompletionsActions. e8ad99de2b3 Merge branch 'main' into hediet/fix-125034 dcf62e3a1e4 Merge pull request #125501 from microsoft/hediet/add-accept-action fe6fc208e9d Puts EditorOption.inlineSuggest to the right spot. c6777d5c6c9 Reverts menu rename. c5bbe0a35ea Merge pull request #125484 from microsoft/hediet/fix-125478 20cb29b076b Fixes #125430: Add a lock around the extension registry. 383ae36449b restricted mode hover: added a link to manage trust. For #125408 1a8285a9654 Adds accept action to inline suggestion hover. Fixes #125472. 2ba1dcb0c9c Removes setting ghostTextExpanded. Fixes #125037. 3300006ee17 * Renames command ids, context keys and command titles to Inline Suggestion. * Renames menu item, makes it proposed API. f8c061e73d7 restricted trust status bar item should use rich hover. Fixes #125408 620434543f5 * renames editor.suggest.showSuggestionPreview to editor.suggest.preview * renames editor.suggest.showInlineCompletions to editor.inlineSuggest.enabled 4b0c17e1808 fixes #115535 93e61e267ca fix compile error 54dd1429b64 startup timings uses now `exit` and not `quit`, fyi @bpasero 922f866a282 run menu: more precise context keys f207b383071 inline `NotebookExecuteHandler` type fa1694c8afb Merge pull request #125465 from microsoft/menubarFix 5efc2e7abcd 💄 7954c27d2d9 Fixes #125478. f99e1c358f0 fixes issue with asExternalUri API 8163cfd8c54 Make sure we layout editors in sideBySideEditor after they are created (#125445) 387e2f39ebb Properly complete notebook profile step 11f86fefb46 Track opening notebook separately from showing notebook GS page a2ef11ff553 fixes context keys with menubar fd2ed91612c Fix wrong CKS on output toolbar Fix #125109 f95fb77f22a Fix cellstatusbar layout issues from "visibleAfterExecute" Fix #125403 0acf7df100e Fix showCellStatusbar default #125403 a244a4ccc65 improve messaging with remote 5d58be33080 switch to a switch for localization edge cases ae0e8f04468 uppercase h in localization 885ac7f1c11 fixes #125406 b519331a06b fix #125458. 4c12628b2b5 fix #125234. 0c7e7cf21d6 disable notebook layout getting started. 4cae6713714 fix #125452. 72d325b4bc9 fix #125027 df59dc8470a don't show status bar entry until files are opened d3db92b7a2e Fine tune image styles. Fix #122680 72a67899410 add settings links to improve understanding of workspace trust c9e683d6c78 fix #124405 827398db432 fix #125444. f004a398e0b Fix #125313 b26e1aba58c Remove hashes from override 41b1406d3a8 Revert parts of "Fix #125395" Re-enables GitHub extension in untrusted workspaces eab8d0403f2 Revert "Fixes #125350: disallow in untrusted ws" 0006964091a Change cell type contextkey to markup Fix #125378 5ea26044187 Fix #124531 0a5d652bdfd Fixes #125332. f73f263c6bf Needed localization changes for converting xlfs to json (#125442) 0f0f066b392 Remove codespaces walkthrough from Getting Started 96004bc2c97 icon hover: add pointer for element hovers 11debc38469 Merge branch 'notebook/dev' into main b80011a819c Fix #124049 fd430418a01 Refine `CellInfo` type (#125351) b2cc8487aed Flip positioning of steps and media in narrow layouts. Closes #125246 5966e9dfec0 Check to see if there are any artifacts that haven't been published (#125428) a56ef182474 notebooks: fix default selection of untrusted renderer 788e39aad86 #125395 Improve the prompt 062401745a2 Switch loglevel to trace 73de22af596 Close #119722 be1cf4bddb5 Focus contributed profile terminals after creation 60651a0c4de Fix #125030 8f9eedf0019 Merge branch 'main' into notebook/dev 01c6fb557d0 Fix #125395 41163014f8c 💄 490cef7c075 Revoking trust in the remote scenario will reload the window 3f8672be8a4 fixes #124051 6d66648c51b Add snippets for ports attributes to settings helper Fixes #125081 e43c3957f64 rename onDidChangeNotebookAssociation to onDidChangeSelectedNotebooks 732769073a2 Workspace trust - add --disable-workspace-trust flag (#124998) 499e4948c7d Fix typo 41f117753ed debug: update js-debug 20df87725d3 fix build again 15aca96cd5c build - unblock lauching 8b4bc01166a Removes RemoteHub 0f2f7c7f04b Update notebook getting started images b2a64b1379c Merge pull request #125352 from microsoft/tyriar/migrate 515b7125255 revert a change fa19cd28adb fix build errors 6f0ce2e7508 Fix #125250 884b1e7a0d0 Fix "Trying to add a disposable to a DisposableStore that has already been disposed of." ref #125354 c8b7aaf2c29 Merge pull request #125340 from microsoft/merogge/onExit 7fd324944d3 Fix selected notebook profile highlights 99665d0b4ac Merge cell statusbar settings Fix #125173 2974dcbd985 Fix bugs causing walkthoughs to not open on install ab1c9202003 Try setting gettingStarted as default editor (#125321) ebde979a485 fix cell top/bottom border always active. 7dacb10b591 fix #125339. e6aaf493989 Move notebook getting started walkthrough to its own section f473e3dc9f8 fixes #125047 6cc80fea815 fix #125338. 66917f41795 fix #125334. 2356d7c5b76 fix init layout interrupted by editor group resize. a2a61127667 Hide execute actions from markdown toolbar Fix #125336 0f8c499d101 Migrate profile setting and fallback properly 272208523b5 register the extension request handler once workspace is resolved fixes #125342 4c57cf40313 fix #125175. bbc4995eca7 fix #125176. 195477a0e96 remove unused import 68e862e1d62 skip flaky window test. 9bd7cbd1403 notebook.insertToolbarLocation 769e7080f4b Fixes #125350: disallow in untrusted ws ae2f0b39e63 Fix #122741 8f3a47cc88c add singleTerminal argument 6ef81b30370 add safeDisposeTerminal to terminal service b295408c303 tweak wording fa8a7a84a13 Merge branch 'main' into merogge/onExit 895dbf4dfd0 fix #125069 60dd761211b update the layout based on treatment. 26cd18321bd remove backwards compatible tests. d215fc72380 Fallback to active editor if no webview is focused c5a4158a651 fixes #125247 3d0d203bb02 fix #124849 509906cd916 Merge branch 'notebook/dev' into main 4d4f0b528a2 fixes #125319 093b03bb39e fix #124854 Co-Authored-By: Daniel Imms <daimms@microsoft.com c4da8f4ab15 Improve terminal drag feedback 55f01b11fa0 fix #125067 fix #125039 Co-authored-by: Daniel Imms <daimms@microsoft.com> 941a603ccd0 Revert "Try fix getting started as default crashing integration tests" 0206b2ee43f Try fix getting started as default crashing integration tests d0ba023c71e Fix #122680 48fcde4048c Fix #123476 0543065c41a Don't commit inline completions on tab when "tabMovesFocus" is active. e2ad6d2c9a8 Merge pull request #125126 from microsoft/hediet/make-hover-unselectable b49731160d3 Add henning to my-endgame notebook 1fee13180b7 Vertically center notebook profile list 09a3fa687a9 Resets context keys properly when editor is disposed. c324c61ad57 add closing tags e92e3d1a9ea Reset context keys when Ghost Text Controller is disposed. ec5bf6733ca Fixes "Ctrl+Z doesn't retrigger inline suggestions" 26ff863e3d4 Merge pull request #125221 from jeanp413/fix-125035 ce8d2e86028 make IHoverDelegate.placement optional 32e6054985c Adds more documentation to the proposed inline completion API. Fixes #125267. 20be2c8eaa2 icon label hover: allow element placement. Fixes #125090 232412ff87b adopt terminalTabList 60a36219813 Revert "icon label hover: allow element placement. FIxes #125090" 4aa9f8271b8 Merge pull request #125292 from microsoft/tyriar/themeicon 8223d3d5c7f Fix #125156 0a32357e6d7 Fix filter.filterQuery initialization 3099c6f1c1b ios: trigger list/tree/table context menus 3a388466b85 tree viewer hover delegate: command handing now comes from hover service 1d471214fb3 icon label hover: allow element placement. FIxes #125090 0ee6895a6b8 Convert vscode ThemeIcon to internal type e040c0881f7 Workspace trust - calculate trust before extension host starts (#125283) ea339694fc7 fixes #125272 727caa7f238 Merge branch 'main' into notebook/dev e0131062c84 bail on standard start when workspace isn't trusted 0bf73ff15ab make sash work better on ios 9764a02c5d3 sash: use DomEmitter df709ddd3d5 Fix otherPortsAttributes protocol not updating correctly Fixes #125079 ef0fb8afb89 Revert "use associatedResource instead of untitledResource, https://github.com/microsoft/vscode/issues/125028" 073c4ffd7da remove deprecated notebook-namespace, notebooks is the future a24c1495208 Merge pull request #125281 from microsoft/hediet/allow-inline-completion-array 2e53913b637 Separator in remote indicator can appear/disappear. Fixes #122309 d71e5718c90 Fix ctrl+click to open link in ports view Fixes #125076 f32b38aa216 Allows to directly return an array of inline completions instead of an InlineCompletionList. b5bdc48d553 use vscode.notebooks not vscode.notebook 3d2309d4e74 Set icon for custom pty terminals e537c47c63c Fix double extension terminal profile creation a3337d01bb0 more api polish 17da5e37217 use associatedResource instead of untitledResource, https://github.com/microsoft/vscode/issues/125028 7051f7db889 Sort content of XLF files 109c9d9486b adopt viewType everywhere and drop support for it, fixes https://github.com/microsoft/vscode/issues/125163 b1e613481bb fix https://github.com/microsoft/vscode/issues/125163 9796ac82c3f (re)move NotebookCellOutput#id into proposal, also remove ctor overload that allows to set id a14600c325f editor trust - limit trust validation in `openEditors` to the places we want 39e7fd6a779 Merge pull request #125128 from microsoft/alex/ghost-text a1e7ce9cde2 tackle more todos, change ctor of NotebookCellData 0c3646199aa editors trust - support opening diffs into new window (#124618) 592ae5a1f53 editors trust - make sure diff editors bring up trust dialog too a286059b90d macOS - workaround fullscreen window regression (#125122) 82acbe807f2 updated todo search file ac05ae7b6f0 move file'ish things into workspace namespace e57462fd1f6 dnd - only add file system resources (for #125187) 0b6e70302f8 remove deprecated API dfc47c79571 rename notebookViewType context key to notebookType 542655758b4 fix https://github.com/microsoft/vscode/issues/125138 f2d6da27d01 make sure appendOutputItems and replaceOutputItems return something ee87b2bd432 missing adopting for end-call d487b379bae Merge branch 'main' into notebook/dev 7865b99b44e Fixes #125035 febc20e8d39 safari - disable clipboard error notification e7b9f3a1a40 Show a confirmation notification when installing/uninstalling shell commands (fix #125145) 217f1a2f60a Workspace trust - extension enablement (#125179) b154a3d3043 skip view column test. 322c81122dd Add "move cell up/down" to the cell context menu when drag and drop is disabled a90729cb6f0 show notebook profile the first time when a notebook is opened. c55d8a0e16c select notebook layout action. b2da4119928 Add undo/redo per cell for jupyter profile. 7aa8c5ec4a7 Fix profile contribution schema 2d97edd98f2 Update QuickPick api doc (#124485) 8df0f068588 Group startTime and endTime into a single object ef28d1663d9 Inline parameters to execution task start and end 5c6ae4fc5ac Update NotebookCellStatusBarItem constructor 872bbcc8c1c Update provideCellStatusBarItems 28bf10376c3 Add 'notebookLayout' tag to suggestions 4dd5ccb1566 Make registerWalkthrough public d2561813a8d Merge branch 'notebook/dev' into main dc9dc66109d tweak fix ac7bb556e8f Disable "consolidated run button" in Jupyter profile 4449461cae4 fix #125121 a296485f007 fix #125045 8e86a3c6b16 Enable consolidated run button by default, now that Jupyter has caught up 515c64f05e6 fix #125125 5e27fb3ba85 Fix to make @recommended:languages search work 84196c8b8d3 fix: update colors 950ad4ffec5 colors: add support for exporting colors 2c503281922 Add import to pull notebook getting started content into build 9bd78a8bf53 notebooks: restore renderer messaging generic 088e0d282ee Revert "fix #125137" d6d3091cbd3 fix #125137 c7f8b301938 Revert "fix #125137" 67e64a8fc86 Merge pull request #125083 from microsoft/ben/69349 80a899d8d67 fix #125040 aeecc7c03ff notebook: messaging api polish 4df863a28da Remove extra notebook images 092a2242ce5 fix #125137 2e8e888989a editors - more tests for capabilities b743bf63de1 fix #125124 d6d9200832a notebook: fix mimetype switcher not working between custom renderers ebcbe001591 update todo search file 6dbbcc2eee7 fix compile issues... e8d8e53752a update/tackle todos 6fe84c402bb Merge pull request #125106 from microsoft/joh/api/noMetadataType 553893e940a Merge pull request #125104 from microsoft/joh/api/noItemMetadata 632f2156f2e remote indicator: remove vscode-vfs workaround 5a49e6a283e Focuses the editor after showing next/previous inline completion. 1bab611b73b Sets user-select: none to the hover actions so they cannot be selected anymore. 103d3edfdc0 Fix text replace case operation false positive Fix #123483 a3bad5878ef Add a protocol property to tunnels that corresponds to the attributes for that tunnel and is reflected in the UI. bd8a0fb3d76 Fix #124779 0115c74d4af update todo@api search file 8dd2e53e247 bump versions a476c9d4f08 fixes #124850 0580a6bae45 Settings: remove notification that changes are saved (fix #69349) 545b931b96b remove dedicated types for notebook and cell metadata b1457fa4b6d remove NotebookCellOutputItem#metadata e7b775adebf Revert "fixes #115535" ae86512bf07 Fix automatic task timing Fixes #125044 6a02e8333c1 small jsdoc and todo tweaks 952e39f9d2d fixes #125026 d163f3f3d45 tooltip text grabbing broken. Fixes #124457 e9d05647b3b update distro 122df438a80 Run OSS Tool 89157c1a87a notebooks - tweak description for untitled files 1e446dfadf5 Don't hide suggest widget when expanding ghost text ab80101db2d Revert "Fix regression with extension enablement" 24e1234559d [json/css/html] update services a8a57c3fc67 Merge pull request #124288 from huszkacs/bug/issues_with_backspace a4e1a259a2b Fix tests that were not updated 91b7e6027ad Move vscode.newWindow & vscode.removeFromRecentlyOpened out of apiCommands. For #110583 2ae32273fd2 update my-endgame notebook 0a1046ada41 Merge branch 'notebook/dev' into main 2f253fcc220 more todos 4093effb9b0 Merge pull request #124964 from microsoft/alex/ghost-text 79048992ef1 Adds leftTrim function, fixes bug in inlineCompletionToGhostText. b1da1fbc8c4 Merge pull request #124972 from microsoft/hediet/fix-negative-overwriteAfter 3a259a7a6ae The replaced text does only need to be a prefix of the insert text after removing all leading whitespace. 1176faf27f2 Fix #119265 78c865d70d4 polish remote menu control actions 4ebf68103e6 readonly [] over ReadonlyArray... 67a85487125 Expose the inline completions provider in the monaco editor. 1eef15f0d54 more todos for notebook API... 552d457b718 updated code search file f700cab7c36 💄 2031df26538 rename hasExecutionOrder to supportsExecutionOrder f2fb2b8cbe3 rename viewType to notebookType, https://github.com/microsoft/vscode/issues/122922 ae17cc95591 Improve autocompletion for statusBar/remoteIndicator contribution point. Fixes #122566 efcf0eea9bc Remove default support from vscode-translations-import b55d4384260 Fix regression with extension enablement b7be98705fd Update descriptions 220f89ba3c6 jsdoc and todos 1e57955c798 Remove handling of Default inno setup file e1928efbb63 notebook API finalization part1 cc8ff11f574 Fix recursion exit condition in variable resolver 2e026cf7c28 more API todos 0fde806bf85 Add limited support for variables that resolve to other variables Fixes microsoft/vscode-remote-release#5007 355df0eccb6 move renderer script and IPC into proposed and merge with general renderer IPC, https://github.com/microsoft/vscode/issues/123601 da851abcd6f jsdoc 💄 8d244362832 remove resolved todo 83d5e2bda06 rename namespace to notebooks, https://github.com/microsoft/vscode/issues/122922 594fc814bca update untitled hint to work, use the correct setting name f68ee48c524 Fixes #124742 by ensuring that overwriteAfter is not negative. edf85f1711d fixes #122402 3b407e0b6c1 move onDidChangeNotebookCellExecutionState into proposed, https://github.com/microsoft/vscode/issues/124970 e9579534bb2 Only trigger session when typing, not when the model context changes. 6832b7ec4b0 Disables rendering visible whitespace due to feedback. This makes ghost text less real. 7cd53df7d72 Swaps previous and next inline completion actions in the hover menu. 427f48b8d17 Add prebuild commands dea978dd1c1 custom hover for remote indicator 8d41153ffc5 support custom hover on status bar entries d4161177d98 don't use console.trace for all... 692fb8ab211 print trace for potential cycle, https://github.com/microsoft/vscode/issues/124723#issuecomment-850674813 f55a5243a43 don't use console.trace for all... 910d70bb88d print trace for potential cycle, https://github.com/microsoft/vscode/issues/124723#issuecomment-850674813 8b04a825b49 Merge branch 'main' into notebook/dev 94f47f44c98 Merge branch 'main' into alex/ghost-text d776f0c1eba Fixes border color. Renames to ghostTextBorder/Foreground. 85f9447b720 Call adjustWhitespace on snippet. db1bd650dcc Don't compute ghost text that is not supported. Thus, no space is reserved for unsupported ghost text. 4f3d865a6b4 refactor for cleaner initialization (#124904) ccb0a8c2d93 Revert change in default due to build failures 6737ea008ff Change executionState to state 6949856b195 Remove API todo 038bac01c41 jsdoc for notebook cell statusbar API 667e3dd844a Tune getting startred color picker bb5b6afdce4 Remove "primary" in favor of alway opening the first applicable walkthrough 6adfa8b3135 Enable getting started as default startup editor b2f203113c1 editors - more alignments across editor inputs ada71479023 Open getting started the first time a notebook is opened 08eedafbd60 Finish getting started content b0862e99074 Don't include our loader in notebooks (#124864) 26b9218d64f Merge branch 'josola-edit-devcontainer-readme-markdown' into main ad52b3f4583 Fix merge conflicts 09d1935b4cd Correct dev container info in README 1605d16ee3d Refresh dev container content d7a79f0393f Add notebook profiles to Getting Started 887ff91a14a Merge branch 'notebook/dev' into main 5e7cd998762 Bump TS build version e3354e26eff Whitespace characters are near invisible in High Contrast theme (Fixes #124612) bb4e83a19a8 Improve hover stability and handle case where mouse is directly over inline ghosted text aada268951a update distro 5fe858a229c Workspace trust explainer in getting started f568f5aec3a Avoid scaling down SVGs in Getting Started eb65a93f4bb Include import ref to markdown so it gets included in bundle bbc7af71930 fixes #115535 3772aeec10b Typo 24143e91320 Merge pull request #124828 from microsoft/alex/ghost-text 868b84ceb99 fixes #124850 f509e7552a9 update classifier 676340ffad9 Get expected service worker version from renderer instead of main.js 3bfa3455a6b Fix incorrect reference when 404 on webview resource 445dc50f737 Use unique id for releaseNotes webview 1380c0c5e0b Remove unused code for rewriting endpoint 8058ab1a966 Disable consolidated run button by default 15616f8d936 refactor codeExchangeProxy to use same route and use it for refresh token as well a6f4d96b826 Fix #124049 44a24280846 editors - unset preferred mode/contents before attempting to resolve c784a74b8ba send Output metadata, not just OutputItem metadata, to renderer ea02f214c74 Merge remote-tracking branch 'origin/main' into alex/ghost-text dca2b9e2db8 Show hover over multiline ghost text ab1cf30d883 add api-todo code search file affbf49ccca Introduce `HoverAnchor` to allow hovering on something other than a range 4202ab071a6 rename NotebookCellOutput#outputs to #items b16b45fecb8 Tweaks the effect of showSuggestionPreview and introduces showInlineCompletions. Explicitly triggering inline completions will now work even if settings are disabled. d2854fd7877 fix #124842 d9f1e27aeb9 more API todos 394a1ce2dbc Merge pull request #124752 from microsoft/tyriar/term_trust 2f0a9160d0a more jsdoc, also more API-todos... 9eb940e243f Remove padding left (#124823) 42af32d16a0 do not use shadow dom for editor context menu for iOS 6c10a5334ee add jsdoc placeholder everywhere e7776ccdcc3 Setting for specifiying the local host for port forwarding Fixes #124581 e15f4026511 Add `mightBeForeignElement` detail for `CONTENT_TEXT` mouse target types a2d1bd0d158 Adds menu 'editor/inlineCompletions/actions' that extensions can contribute to. 098dfd56e3c Changes shortcuts of next/previous inline completion to Alt + Open/Close Square Bracket. 00de32d013a Keep track of the span node used for hit testing 8e54aed67b7 Remove `IHoverPart.equals` ccfda77c8e6 Reorder participants to improve stability 77bc8745b29 jsdoc for NotebookController 71fafe39464 update jsdoc for `NotebookCellExecution` 541a5d4fa70 smoke: trust dialog should appear in 5 seconds, and we can ignore if it doesn't 5b642616ef3 Use loading + spin codicon for task terminals status Part of https://github.com/microsoft/vscode/issues/121659 04e09dacdfd refine output modifications of NotebookCellExecution 3a857fc436d editors - add tests for capability change events 004f6609f8c Fix problems with port protocol 903e219ccb8 files - need to track individual readonly stats everywhere (#124524) 466dd4e490e files - provide access to stat object from not modified error 872fac207ee Merge branch 'main' into notebook/dev d5c73cc952d fix https://github.com/microsoft/vscode/issues/123570 3ac57c71329 Fix NPEs caused by extension that is not in the marketplace df03e4caadc Removed unused MarkdownString. e5f70e8e2a2 fix smoke tests (#124814) 47d3d743cad set max zoom to 8 (#124769) b2da15ea2d8 Merge pull request #124745 from microsoft/alex/ghost-text a9c54044e50 Refactors inline completions model. ccedcbdf5ec Do not accept suggestion on tab if indentation is suggested. a2944c32ea9 Fixes rendering of whitespace in the inline decoration. 8a3f351eb9c Use explicit context when the user cycles through suggestions. 1fa3397c48c fix post-merge hickup a97ebdbabc8 Merge branch 'main' into notebook/dev 8715d80695f fixes #124809 7a767570e85 editors - more tweaks to dnd behaviour 07ff28c58d2 Dont center markdown content 3ea0bf8fbca Implement run button with extra actions, and "run above"/"run below" actions 970858ef6dd Add first pass of color theme selection markdown content 29cad8fb5e6 Merge pull request #124754 from microsoft/tyriar/profile_api e0c8a76b7ad don't sort scope list. Fixes Microsoft/vscode-pull-request-github#2751 c1448f3161e Remove ansi escapes from localized string 9eeb092206f Re-enable skipped test 9b609ab1e11 Clean up profile provider api e8758933d80 Disallow custom profiles as default e037348d272 Support launching contributed profiles from dropdown 280e0070733 Add undocumented always syntax only TS server mode 866ecdd45a0 Merge branch 'notebook/dev' into main 1c3cc87bccb Add an `InlineCompletionsHoverParticipant` 7ce379e3f2b Merge branch 'main' into tyriar/term_trust d9e043161fb Bump sw version 73ff24e451d Fix de/encoding for rewritten vscode-resoruce uris b8f11107f72 Use @types/vscode-webview decb1ab6a89 update left aligned plus button margin. 484b04df64b fix #124774 902bb43b3b1 testing: move back to proposed 31aef10814f testing: hotkey for opening output peek 14a013e7f3c Support contributed profiles in dropdown dd61b26f33a enable workspace trust by default #wt 5338cc32da7 fix build. 4403b9010e5 Tweak remote workspace trust calculation e3d4313714f support editor options override. 384f42bca76 Tweak wording, fix #124724 0dd52e2d77f Update distro b157bc7e5c3 Support for @recommended:languages search (#124546) 9224159b004 Migrate users from shell -> profile settings (#124615) d2a0bfb2866 editors - log error when opening fails 61f3ac6e07b support context keys in menu bar (#124726) 0de0faecee5 fix https://github.com/microsoft/vscode/issues/122376 f523f65f398 Add a `description` field to decorations to be able to find leaks 4c5a061df61 rename NotebookKernelPreload to NotebookRendererScript 9ef57b5c216 remove NotebookCellOutputItem#value, https://github.com/microsoft/vscode/issues/123884 4ad3265cbed Support workspace trust in terminal a56fe2b397e use isVirtualWorkspace ed611d0ec39 Minor tweaks 4edb0110f6b Small tweaks 7bd0337d940 Move parts of the triggering logic into the widget 2508b33f0d3 Wait for listen when making tunnels 7a83e5aa627 workbench API: assumeGalleryExtensionsAreAddressable e94e8ed3998 Show default profile on top of term dropdown 693677c8a24 babel.config.json language mode should be 'jsonc'. Fixes #124683 cd501b2e5bb Merge pull request #124741 from jeanp413/fix-124735 9dd89100b49 Improve editor DND to work with untyped resource editor inputs (#124749) 14a4548e4ab editors - use preferred content only once da1193950a1 some jsdoc for NotebookCellExecution 30074591eea editors - input 💄 55d91bbed87 editors dnd - more 💄 9d907212baf rename NotebookCellExecutionTask to NotebookCellExecution 5d534b94f83 dart: fix language configuration location d0d80ec337f fix build 23fb4207373 Merge branch 'main' into notebook/dev 0637663fcfe fix isNoCorsEnvironment 9095b835bbf editors dnd - fix dirty contents in files diff c870d75473c editors dnd - enable diff editor transfer 70418f0aced editors dnd - fix untitled transfer bba59424f56 Merge branch 'main' into ben/better-dnd 367a0b809ab editors dnd - towards allowing any untyped editor input 6ba7093a8a1 Fix window/folder/workspace terminology for status bar entry and banner 9638534dd51 Fixes #124735 c1d4497a31e Merge pull request #124664 from microsoft/aeschli/dart 1082913dd01 fix config default value. 433c801dcc3 editors dnd - some more cleanup cbbdb17b80d editors dnd - rework to allow to set contents to untyped editors b5b059d2e2b fix typo in files.ts (#124693) 5eec3c86e3c smoke test - disable experiments 85d8f223c70 Remove keymaps from getting started walkthrough 02968bc2503 Call post message to all parent clients 1fd2b4ed1e3 Rename keys and support full context key expressions for check offs 14b31425b90 Fix #124531 bfb94c85fa3 fix build. c95af9ae460 fix build. 8519a42c5f6 notebook options respond to view type specific cell toolbar position. e3c8ff57849 try showing the banner only after some files have been opened 561b8364008 testing: fix hidden tests not being un-hidable ade83f05895 update context based on outputs. 574696980c9 notebooks: update state of messaging spec internally c4fda24034a testing: fix terminal being shown inappropriately, use beaker 0feee9edefc Remove `instanceof` check 641c2b175ca Merge pull request #124707 from microsoft/alex/ghost-text e0a52df1695 Merge branch 'notebook/dev' into main c3d63c1a1b2 fixes #124692 8e9405e7a9b Keep the `ColorPickerModel` alive between repaints in the `ColorHover` 35b43a410b0 Help TS understand the code ebdd548be22 fixes #124702 c538781d780 add notification if tsserver logs are left on for more than 7 days (#124149) 363e8f25f6f bump distro 244b48af73d testing: additional actions and better theming for peek a5bbc53e882 Extract more color picker related logic to `ColorHoverParticipant` 4e6fe2dc51e Extract pieces of the Color Picker logic to a new `ColorHoverParticipant` fd7c71a2eea 💄 c88d5756213 update compact view default value. 1e6b6cb6843 Pick up TS 4.3 final 6a12866c3e9 💄 1abeaf97753 Workspace trust - remote workspace (#124617) a430e8f9692 Fix settings dropdown hover style Fix #124207 b6acb191fac Fixes #124665. 99bcc8e2458 Show clear outputs only when there is kernel. 9252be4f90a distro 21bf10d4977 Removed unused member. 54ebd819176 distro f1a5d40aa75 refactor getCallbackEnvironment to return authority by default 5eddbd9d207 Properly support splitting ext profiles 08cf3df7457 Pass object instead of unwrapped args for term create d7779916566 move buildExtensionMedia to lib 62e8b545f7a missing build 51a5caf3f23 Simplify terminal creation bf5f7dd5ec1 Get split terminals working d1ed9c8bf35 Adds proposed API for window.getInlineCompletionItemController(...).onDidShowCompletionItem. 3ff91e7621b Merge remote-tracking branch 'origin/main' into tyriar/profile_api 7f21b1af485 Revert "Allow extensions to create multiple sessions from the same provider (#124640)" (#124705) 4583ef442b0 Fixes bug that "show previous inline completion" actually shows the next one. 8f0589da177 Set suggestionPreviewExpanded to true by default. 9464d14f317 Make notebook renderer activate potentially async (#124647) 5eb64c54ca4 Modified markdown preview nested list styling (#124445) 23e1f261dc8 Remove `HoverPartInfo` 84bc432011c Add `IHoverPart.owner` 31a59b5970d bump distro e6a1cc38437 Update commands.json e29194ad0d3 Activation event, register api 6a7c700a12d file working copies - do not throw from ctor anymore when schemes are unexpected bfccdcb9581 disable fullscreen on ios 764d8fdc3dd test: add test for event Relay (#119070) a7ab347c2b3 remove old notification d662cc56549 remove old license notification c704e43d5dc Check that the /build/ folder compiles 0e3459b0b9f expose Grid.onDidScroll 0a4bfb31c90 fix naming a628237458f Web: "Open Folder" on empty workspace does nothing 4cda850edf5 disable welcome editor in smoke tests (fix #124674) 0688745e82e Color.Format.Css.format does not return null, so the return type can be made more strict. (#124568) dff33d73244 use actual object 0d44b63c1c1 fixes #124407 9cba86888c9 update node version in optimize 0a7a69f1908 fix build compilation 9eb4eff77b8 some more jsdoc, https://github.com/microsoft/vscode/issues/124357 d63a69abf3d some enforcement of unique mime types in the extension host, https://github.com/microsoft/vscode/issues/124357 24ca9e0d7c7 Merge pull request #124654 from ValidMelvin/main a961587ecf7 dart as built-in language 98dc73a3296 unnecessary space in in julia cgmanifest c97189d9d06 some more :lipstsick: and simplifications a48d92d0fd8 only pick the first occurrence of an item per mimetype, ignore others, https://github.com/microsoft/vscode/issues/124357 18b6620bc39 fixes #123543 c2cc9b11afe Update README.md 14f61093f43 fixes #124507 69259e84a0a some 💄 for https://github.com/microsoft/vscode/issues/124357 44b470c99ff fixes #124576 47d00215aff editors - cleanup untyped editor interfaces for text capabilities 04f585a580a cleanup interfaces e12f21f498d Merge pull request #124549 from DonJayamanne/createNb 5e146d257b5 Update classifier.json d0884f4a1ec webview - clear group listener when it gets disposed fe1547c251b Merge pull request #124621 from microsoft/roblou/diffNotificationMessage 5cc9ec944d8 sandbox - bring in iframe based webview service 3084319750b Get rid of classes for workbench editor options (#124589) b82b90c1000 editor options - more 💄 before merge a18ea9c9ec2 Allow extensions to create multiple sessions from the same provider (#124640) 21162bfb68c Shift execution count label down just a bit 68efd480d0e Explicitly convert properties to strings before uploading ad41b3a12b5 Mark a few more props as readonly 0a7061ed002 ReadonlyArray -> readonly arr[] 24a23a8ea05 Mark array params in vscode.d.ts readonly (#124599) 7d50ce2061e fix tests 2521499104b testing: add clear test button to peek view title 57af60a7b7f testing: initial test message split view 473cfe28bfa Revert "Revert "Merge branch 'main' of https://github.com/microsoft/vscode into main"" 8822790908b Merge pull request #124622 from microsoft/gettingstarted/navigateToStep 7c01395da16 Revert "Merge branch 'main' of https://github.com/microsoft/vscode into main" 7a976501eb3 Merge branch 'main' of https://github.com/microsoft/vscode into main 22576768342 Applied new style to first getting started walkthrough 8ccc1243fc0 Fix notebook unit test b0f67df65d7 Fix build bb19c28fe2c Getting started layout polish 2d9aa1868ae Fix broken @tag in settings editor Better fix for #124520 0b2d890624c fixes #124619 #wt 20ce9d57629 fix weird border rendering on windows. b4f4839da5e fix integration test 6bcd590a706 Merge branch 'notebook/dev' into main e1731e91048 fix build f378cff1a8e dropAndDrop -> dragAndDrop 032920fa2ee vfs -> virtualfs 72c4bd69c04 remote menu: sort entries of current remote first 757fd91f040 Hide TestReolver.newWindow when in virtual workspace cf2a866b7dd test resolver: supports untrusted workspaces 68ba0141fbd fixed notebook focus indicator margin 5926c50d6c4 fix missing markdown height update 33209f104db update markdown height on options change. 7fd8f828c02 fix pwsh profile test failures (#124613) 8f18f3c5ff2 oops 771446e4a21 Make showCellStatusBarAfterExecute not experimental 71cc917274f Add option to show cell statusbar after execution 3ccbe2a6b1b Fixes #124247 789a91a487d wip db6ffb43b90 fix #124583 c351b396cac Support terminal renaming inline in the tabs view (#124533) 33eb149bada Add reset to default to terminal tab color selector 18b30e5b494 Fix default shell args for debugging a8b63f564af Merge pull request #124585 from microsoft/alex/ghost-text 19c88bc3c7a editors - more EditorOptions cleanup 5254e33173d Removes unused const. af0078d44d5 editors - more EditorOptions cleanup de08dcdf276 remove folding classes first when config change. c17917e6ba4 Enable notebook renderers on web (#124557) f2b1f78ad45 editors - remove EditorOptions a21b824704b Enable notebook renderers on web (#124557) 0249ae32871 clarify that NotebookController#id should be stable, https://github.com/microsoft/vscode/issues/124535 080f8b5e35f editors - remove TextEditorOptions 8adc16d6c50 editors - remove TextOptions#create b10db1828d0 editors - remove TextOptions#from 9bdb8f88816 editors - remove TextOptions#fromEditor 593a25d41e1 editors - remove TextOptions#apply 741beb8f264 TestResolver, use 127.0.0.1, not localhost 3de3141ff56 Implements basic cycling through completions. 4d4ebbee5fc Clear inline suggestions cache on commit. f89fc476de3 Fixes colors for dark & white theme. a78bc1aa96d icon label: supportIcons implies LabelWithHighlights d4307f8d534 missing validation for top-level token color object b6551f8e4e3 Workspace trust - no need to call setWorkspaceTrust (#124566) afc2b062703 editors - start to remove typed editor options (notebooks, search) 64b0c65b8cb editors - fix cyclic dependencies 5880a6a4eeb Merge pull request #124570 from microsoft/hediet/ghost-text-expanded-by-default-setting ce8b0049619 Merge pull request #124353 from microsoft/chrmarti/localinterface 97d576cb085 editors - more cleanup of large files 43b7187c3df Force inheritEnv in ext debug terminals 0685a4af28b Default bash, zsh and fish to login shells on macOS a26ecef44b5 Add self to workbench-diagnostics 8a1de4b022a Merge pull request #124567 from microsoft/hediet/fix-after-decoration 0efc03fb168 Removes unused import. 5364a9351fd Adds option "editor.suggest.suggestionPreviewExpanded" to toggle whether suggestion previews are expanded by default. 8bd49ffd50b update distro eff82a3cef1 rename trusted types CSP from notebookOutputRenderer to just notebookRenderer ffd1f84ea9f rename notebookOutputRenderer to notebookRenderer, https://github.com/microsoft/vscode/issues/121819 fd212e712ea validation 💄 https://github.com/microsoft/vscode/issues/121819 52df34dcf19 Fixes invalid cursor position around after decorations. eebf8e876ab editors - extract input and side by side to own classes 42e59bd3777 more complete cell info for markup renderers e11764f8420 add ICellInfo#data to eventually replace bytes b5fc2b0a398 NotebookCellOutputItem factories allow for metadata, expose "bytes" as data property, deprecate value-property, fix converter issues, https://github.com/microsoft/vscode/issues/123884 856fb393cb4 editors - more dnd code polish towards any editor dnd f2248508a68 fix tests on windows ab793cf02ac editors - make dnd code ready to delegate serialisation to respective editors 59f5bbaf253 editors - cleanup editor descriptors and 💄 dee37c6e765 web - offer upload action only for editable folders e0f751f1287 editors - introduce and adopt capabilities 71d00b3b993 Merge branch 'main' into notebook/dev 0bada155580 more API todos 76523deb91e Bump browserslist from 4.16.1 to 4.16.6 (#124550) 963f30f0871 💄 b1823157d54 Fall back to existing published webview commit (#119295) 286b643ecd2 chore: bump electron@12.0.9 c3c2113c368 Preserve execution summary when converting dto 8173a0e0398 Fix hang when typing incomplete @feature in settings editor Fix #124520 28803975a1a Add @feature/notebook e9f3fe9f301 rename markdown layout section. fe41fcc58d6 💄 fe3cab25c5f compute position/width of output action bar. af14bf673ab remove kernel picker config in menu contribution 1da9f2d2e6a Update subscribers.json d28d8802e42 testing: add default keybindings 8b9f8595cc2 Remove unused 6cfad71ce61 notebooks: remove deprecated vscode css vars from webview 196e79256dc Add workspacePlatform context key for getting started items Closes #123824 6ed2584f390 fix unit tests. 46ef54c20e9 Merge branch 'notebook/dev' into main 8a41d85d1be notebook open layout settings. f88c007f6c6 👋 Rachel, 👋 Tyler d7ead317dca Close #122570 41d869f5514 move nb layout settings out of experiments. 79762396a06 Respect soft revert for custom editors (#115658) 78251f8e016 Update distro 7e0d8cd80ee Merge pull request #124511 from microsoft/tyriar/color_config 9993eb9d1ae testing: improve support for markdown messages b168ece8de3 markdown: add nbsp to unescaped sequences b04c9668927 Fix test resolver with trusted workspaces dbdc7a259e2 added bottom spacing for table in markdown preview (#124385) 5cbd4bc4691 Fix color of single tab status icon a8d2a3a87c5 Resolve todos 47b7320c1f4 Show tab prefix before icon is ready a31d9ca6993 Don't show icon until its resolved f7f6956554a Share profile property schema 17e82898ed1 Remove show all colors, add settings intellisense a8e7253de09 fix scroll in table widget #wt fixes #124314 2b9f22631f5 Support terminal link word wrapping (#124514) cdbf46815c6 update distro fe1af896d5d Use remote reconnection constants (#124517) 2b6564c1015 insert toolbar on the left. df3c2c48755 testing: move apis to stable b6dad5d1437 Support any theme color 3c2ffadf29c Dynamically generate terminal color css 9eaba8944ff Support colors in terminal profile setting 7a0ce574da6 Fix test output pty usage 777f09d4569 Fix safe config provider fallback to default d63078aaf04 Merge pull request #124317 from jeanp413/fix-124127 a8397d15299 Merge pull request #124480 from nrayburn-tech/fix-122348 934a4244e27 Remove overrides from editor service (#124375) b47569400a3 option to hide terminal tabs if there is only a single group fixes #122348 5319757634f Add fallback webviewExternalEndpoint in code 8f11975c47c Close #119722 d6b5df5e199 retry logic for setting password (#124390) 12fa7b04257 Increase timeout for webview focus change 4c4ec402e7e return early b314536e56a Move find file references into the search group 18296326a9a Set proper context on new cell output toolbar 28767c88f0a Close #122795 cd8bf7ba536 fix zero height output height. 7bc2019b8d5 Updating pinning test be8745ac9e0 Fixes #123228 (#123584) 6ee883bfa32 Split href before decoding instead of after 6af49913c2a title for notebook label in notebook toolbar 77ff6eb03bc Add image specific link normalizer (#124400) e9b8c129155 Add types a03daaf8506 Merge branch 'notebook/dev' into main 4ba27602740 fix #119214. 8afcdfaad8b extract complex options parsing. 9996e32bc9c testing: improvements when running a previously un-run test 6507d05310f freeze layout config. 6cda8d2373d extract configuration update f38f3bb8e78 Merge pull request #124044 from microsoft/alex/ghost-text 51aa5402d63 Allow single line decorations that are not at the end of the line 06a86116b73 Fix firstHostSegment logic 827dec3a0df Use better logic for getting scheme and avoid extra decoding for authority 44fe867eddd fix tests c23c9e448e6 Implement dragAndDrop enable setting 021071ff74a Avoid double encoding authority 22dc518a210 Remove unused type 97bbacd8087 Remove extra call to with 82d18a42fa2 testing: fix auto run triggering test multiple times 17f3a69e243 Allow toSide #119725 86cb6d6b337 Close #119725 4d53b454283 Fix local term warning in remote 5ac4f5f5be4 Fix didn't work af3fbd968c9 Make sure we decode uri path 84f5040b3db Remove unused member 91fdd52d17b Merge remote-tracking branch 'origin/main' into alex/ghost-text 8b709a2f55a testing: provide test IDs in menu contributions, rather than internal elements 231c155d31f Refactors the inline completion feature. 852b70eafed Try fix (#124384) c5da7f33a70 Fix wsl detection in profiles tests b6387e477be Tweak output toolbar position b78754e1e46 fix incorrect links (#124203) a0d7f6292e9 Remove a few instances of 'vs code' in d.ts b0683f58a5a fix #124360 9847783f62d Remove uuid from webview resource uris 79dea51e79a Rewrite webview urls to be more url-ish 8a4bf3081a8 update folding on mouse over 70c87f0db9b Fix #124240 adf68a52d56 editors - some type 💄 around setInput effac5be7f9 drop as-prefix for ICreateCellInfo 8f093359f07 editors - simplify some serialized editor input 8aff8020dae Improve guard against unexpected URI call 82cd4f027ad fix leaking of NotebookCellOutputTextModel and NotebookCellOutputTextModel#_onDidChange, fyi @rebornix c5b9b6c48c7 Fix missing async 5807530e3ae more jsdoc 85f518b2552 Add `RemoteAuthorityResolver.getCanonicalURI` c650993dd39 Add `ResolvedOptions.isTrusted` 49e96be2fc1 💄 prefer `readonly` over `public readonly` 1087876df86 Use vendor-prefix for notebook specific mime-types, e.g application/vnd.code.notebook.stdout 045e5d2f568 Store conflicting defaults in storage service (#124366) fc0b6f5e5ab fixes #122653 8b25f922b6b builtin support image/gif mime type 61aca51a322 consolidate SVGRendererContrib and HTMLRendererContrib - both were the same... fb6f0d95fad consolidate JSONRenderer and CodeRenderer 103892d1eb4 fix code renderer layouting issues 32a06b9be2c [typescript] add limited description bbe3b2266b5 allow to signal limited functionality in virtual workspaces d65dace8ea0 Merge pull request #123351 from nrayburn-tech/fix-77239 b9f20119393 Bump distro 815f217174a jsdoc for factories, some unit tests, https://github.com/microsoft/vscode/issues/123884 8268bd46e7f 💄 375a15f07e9 Merge branch 'main' into notebook/dev 996dfffd637 enforce proposed API for shortTitle proposal, https://github.com/microsoft/vscode/issues/124355 c5637229dda Merge pull request #124289 from microsoft/command/shortTitle 2b959fdadc1 Listen on local interface only (#124350) 494e827e351 expose output item bytes to renderers and provide util functions: asText, asJSON, asBytes, asBlob, fyi @connor4312, https://github.com/microsoft/vscode/issues/123884 100a70731db SVG images are not render in the tooltip (fix #123688) 949f60498ae Merge pull request #124346 from microsoft/ben/pfs-promises 063be236f34 scm do not auto focus input box on iPad f19843b0a3e editors - some 💄 and tests for workspace trust in openEditors 9086ecd9f08 Renames Suggestion to Completion and cleans up API a6f7aa5e4c5 handle workspace uris 73c6f34f9ec Do not recognize Debian's .install file as a shell script. Fixes #124295 90b9e04f951 try to use suffix for view type when creating untitled notebook, fyi @brettfo, https://github.com/microsoft/vscode/issues/121974 779f9876bc0 debug: properly read the debug.saveBeforeStart respecting activeEditorMode 79e642a5ddb move and simplify renderer registry bbc293839d4 declare IRenderMainframeOutput#dispose and adopt it for builtin renderer 55059ffe214 todo e6dd819bf08 first cut of "bytes only" output items 4b5db9098c2 smoke test - disable failing search test 17459a4abd1 notebooks - add test for NotebookWorkingCopyTypeIdentifier 43b51ce8e76 notebooks - fix type identifier compute 703ca68ea6b fix typo b8fe2db4392 fileworkingcopymanager2 => fileworkingcopymanager 0e58bef15cd file working copy => stored file working copy 78fbc51ad75 Close #124325 633ea857088 notebook working copy - some cleanup before refactorings d0c5675f6f2 editors - less group.openEditor usage e66c62f38a2 Generalize smoke text 89c8f919884 Add smoke test for #124146 4fd4e10e99e Fix #124146? bfb822e4cf0 fix #124284 0989449a055 Fixes #124127 2f2b6b528d0 testing: show duration for test results, handle state computation better 3e5faf69c14 Remove console.log 9e04a67d125 Switch to use vscode-webview.net as default webview endpoint acc07bd9591 Mark properties readonly bf4c7042a3a cell toolbar overlap with notebook toolbar. f29bd6f18dd Dont autofocus input on ipad Fix #122044 5b0fc94e6af fire event when trust is change in empty window #wt c1b809ef221 Fix #124307 cd27f1fcb91 update text for loose file button #wt 07a2aab8f2c Remove duplication around checking isRemote 55c2fc5604e add setting and checkbox for untrusted files #wt d3f040fe017 Fix notebook cell statusbar items duplicating. Cancel tokens on dispose, and dispose the timeout properly 894b7782cce Merge branch 'notebook/dev' into main 9627b4ea63e Emmet identify CDATA for wrap, fixes #123136 97740a7d253 Revert "Revert "Revert "Closes #122433""" ddf8cc42616 Dispose CKS 4c1474b458d debug: finalize parentSession 514d3162bc8 Persist title source and set after reconnect 604b27db1bf Fixes android screen-keyboard backspace issue. af0c01b1e36 Short title for command contribution. 18ea5ac15e6 Use isRemote instead of remote authority to determine where to load from 6f2381e33d7 Terminal tab icon API (#124004) d0cea47ae39 Merge pull request #124194 from microsoft/dev/t-andreamah/outline-reveal-editor-switch-fix dae2a9d4ebc do not auto focus on ios extensions input and keybindings 6b097212e69 Revert "Revert "Closes #122433"" bd934d89ea0 Use untyped editors for workspace trust 59abb887f6c notebook: address messaging api changes 5b17052a5b3 Fix webview tests 2270c36cff9 Use extension location instead of remote for asWebviewUri 9ffac783be4 Merge branch 'main' into dev/t-andreamah/outline-reveal-editor-switch-fix 22f7f470b69 Apply Logan's suggested changes 0b355ffc89b notebook: fix certain kernels/output not working f75152cd815 notebook: fix certain kernels/output not working ab5df442eb3 Merge pull request #123727 from microsoft/dev/t-andreamah/markdown-static-preview-scroll-state 18c254987cd Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state 2ab6e9cdd26 Debounce invoking the inline suggestions provider 99be6bad750 Add a command to hide the inline suggestions 62bbbcc7bf4 Remove log 875ada9bfad experimentalUseTitleEvent -> titleMode 76154be4d4b Truncate Windows path from sequence, do title handling based on remote OS 8a6cc9cba7c Fix dynamic title for reconnected terminals 74849362b2e Render only one line of ghosted text by default 713d5861404 💄 less casts 1718a6e2ac8 Hide hover on target element(s) click 224b0f22922 Fix category and max-memory option args 5ae8db2ae0e Render the suggest widget above when rendering a multi-line preview 8c194abb5e7 Do not shrink the additional lines once a shorter suggestion is displayed da4fcc266fc file working copy - avoid ugly casts aea7c1a3343 Merge pull request #124196 from microsoft/tyriar/dnd_2 e538fd90c0e Hover hover when context menu is shown 4a679df5312 Hide ghosted text when it wants to be displayed in the middle of a line e91d5475acf Merge remote-tracking branch 'origin/main' into tyriar/dnd_2 c6d2254b2fd Create a `InlineSuggestionsSession` also when showing suggestions b5a9a026068 Invalidate current suggestion based on cursor position 49339aba513 Only start a session after a content change (with debouncing) fdbcef0a842 Add `editor.suggest.showSuggestionPreview` to turn on/off inline suggestions c8410ece147 node-debug@1.44.28 234136b6c28 💄 acceptsNonWorkspaceFiles -> acceptsOutOfWorkspaceFiles 91bf9326334 fixes #123469 2cc3b168fde Do not force the instantiation of the `SuggestWidget` 1543754dcab Tweak loose file dialog warning 669b0b3f719 working copy manager - clean up some types add some new APIs on manager2 for unified access: - get(resource): working copy - workingCopies: workingcopy[] - onDidCreate: Event<working copy> 3234403c5d2 Merge pull request #124191 from microsoft/aeschli/virtualWorkspacesInExtensionView 19574448d0e Fix rendering snippets 5f7cfa3a54e Introduces a GhostTextWidget model to enable data binding. a6f89f58a9e Workspace trust - empty workspace (#123811) 0c996a39b65 Implement consolidated output toolbar f583b4b3367 Merge branch 'main' into notebook/dev 29c61570a5b Revert "Closes #122433" 34180ac9bef Remove code allowing multiple ids for a command 35eafb78732 Add sort imports command e65a227c829 Test using readonly[] syntax in vscode.d.ts 1ddc623e585 Simplify logic for webview resource uris (#123740) 93be0a6fa03 Update simple service 46a1ca78249 notebook: initial renderer communication 1ecba0426a9 Make `reload webviews` support webview-views b3ed595dde7 Extract isRequestFromSafeContext 39d1a94e86f Allow loading svgs from xhr 4fbd548d72c Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state 40592a274c9 fix test suite. 4fcc2720826 use custom shield dialog #wt a65d55e9c48 Strict null fixes in webview f822083cb70 Check `defaultPrevented` before showing built-in webview context menu f594bb47e59 removing more unecessary whitespace 41606da2dc0 removing unecessary spaces 920c9a3a0d5 improve banner for virtual workspace 9ee1906718d pr feedback and combining prevEditor info for preview and non-preview f433b4781a0 Pick up TS 4.3.1-rc d921cc41fc0 Update markdown grammar 1642d4cd0ad Merge groupBy and groupByNumber utils Fix #123569 c1d6e44262e Avoid listener leak warning due to reusing cancel token for many RPC calls 0d338068034 Add suiteRepeat test util 5b3cf7cc2ae Merge branch 'notebook/dev' into main c936add6013 hide kernel status bar item if it is already rendered in notebook toolbar. b8c7d75e465 Avoid illegal line numbers in case of undoing a completion at the end of the file 63348b4a395 Improve contrast de89605adfe Do not invoke provideInlineSuggestions when just moving the cursor 08f4a36de15 notebook toolbar container display none by default. 6956a38b674 Have the `InlineSuggestionsModel` listen to events directly 26194faa8be fix focus indicator default value. 2fbf0cd977e Respect the suggest widget only when there are suggestions 8c27c1f257b Update list focus highlight color in standaloned editor Refs #123703 0ec51535fa2 Rearrange actual group splits, not just instances 25bdb018483 Add theme key for terminal dnd 15f772fae32 notebook: include script url in back compat patch b79825e7c4e Clean up a3e72ce1d06 Reinit dnd observer after reattach 72b01fea379 Avoid selecting accepted text d7f6d7e735d Fix markdown cell drag indiciator having wrong position in scrolled documents de1c8ad93a9 Give clearer names and add comment 40a26850575 Fix shift for markdown cell selection only selecting current cell 3c417665643 Fix strict null errors in webview main b8a0123cfc9 Fallback to fetch if localhost resolve fails f0ef8dfd913 Add explicit null typings c63ac2f6388 Use searchParams to get id c13c6d8e468 Throw error when trying to reload/navigate within a webview 05f83d95d2b Fix issue reporter not debounce submissions (#123340) 8e87fea2f15 Support dragging to unsplit 40fbf5d915b insertToolbarPosition e071cefa4df Support creating splits in different groups f1a372c15f8 Support rearranging splits 2b30689ab00 Close #123935 25a12c75c5a use dummy uri 568bb89fadb Merge remote-tracking branch 'origin/main' into tyriar/dnd_2 5266a5fae3f Improved hover feedback 44d135e94f3 Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state f4e05837d01 Remove custom height, use default from menu service #123869 134d9b187bb Closes #122433 a796ebfb8b4 update actions column width #wt f36c7a0860b Terminal dnd feedback 3804c98d6f7 fix padding for table #wt 5442f154ef6 fix issue when not connected to remote #wt 6356613d809 Update according to suggestion 49187c4e785 Replace flush with setFlushOn with loglevel info, fixes #123856 45e5c50dbfd Partially implement terminal drag and drop 283180b64b2 don't show action icons all the time wte 9716c27e068 slightly better uri for untitled notebooks, https://github.com/microsoft/vscode/issues/121974 1256b258a6f Honor the selection suggestion in the suggest widget (when it is visible) d553c21d5e0 fixes #123869 52c8fced385 focus indicator border or gutter 81c6572671c added default editor override for symbol reveal 9326ded502b show extensions limited due to virtual workspace b02acf39081 Merge pull request #123738 from microsoft/dev/mjbvz/unify-renderers-api 284c21a588e tweak terminology for wt entries 9a322a0d62a use folder terminology due to windows/linux limit dc8844925ab Part of #122996 b63ad124d2e mark untitled notebooks as dirty by default, don't hold on to untitled notebooks eagerly, https://github.com/microsoft/vscode/issues/121974 09ab8ad2029 wip eaf5a49200b status - update description of `name` property 1f912dfa3d5 Fix #123617 ff6d8771c94 fixes #124085 88d9a3aaf5c Support command links in trusted tree hovers Fixes #123723 eb5874237eb Improve task terminal status message Fixes #124062 53b58c89d44 Fix loop in port forwarding 37a11814295 do not include non configured deprecated restricted settings 53352a29540 add API to open an untitled notebook, https://github.com/microsoft/vscode/issues/121974 b7058688ad3 Fixes #124143 a0819ed4fea Add ending period to --sync faa3146a310 Add ending period fto prof-startup 159479eb5ae Allow to show status bar entries with an id and name (fix #74972) f23f011f552 untitled - clarify resolve methods 734b79dadae fix #124102 08618458110 fix ExtensionRecommendationsService test (for #124119) e5bf21393bf Additional navigation keys 99f3a3726eb Additional details in the aria label 06ee4764a4c untitled file working copy - test 💄 1cc2f71a1ff untitled file working copy - tests for new unified manager 8c6db097ac7 untitled file working copy - add new manager that unifies file and untitled working copies bc37b284431 untitled file working copy - shared dispose handling 0d92cb9dd88 untitled file working copy - poperly resolve target 37fbfa61251 untitled file working copy - set visibility 5835fbc9f1d untitled file working copy - some code 💄 a47fc96766a untitled file working copy - fix tests 1edef157350 untitled file working copy - wire in save support 8173bd132fb untitled file working copy - add workingcopyservice#get a3ee06b3e03 untitled file working copy - extract common super type for manager 02c72e2bd64 untitled file working copy - extract reusable interfaces 44dec56af8c untitled file working copy - 💄 103ba104a56 untitled file working copy - tests 9f990bbb6ec untitled file working copy - first cut manager 4173ced659c untitled file working copy - first cut 825f6c7ab84 valide URIs created via from, https://github.com/microsoft/vscode/issues/121198 b1349b64a64 update color registry names for inline values 677f2a3be12 remove excess whitespace 0e4159cb7aa fix localization key/description for debugInline colors df308a9a81b add color customizations for inline debug values a9c5e37ea0d fix #124102 c5611075cad fix ExtensionRecommendationsService test (for #124119) 501b691dd06 Additional navigation keys 6034e35043e Additional details in the aria label e878f5a3ee4 Add support for untitled file working copies (#124120) 13aff6aa7d3 untitled file working copy - test 💄 a48180b6e6d valide URIs created via from, https://github.com/microsoft/vscode/issues/121198 f22eb7ee29d untitled file working copy - tests for new unified manager 5f6d4786857 Merge pull request #123065 from nrayburn-tech/120936 2ecf53bf79a untitled file working copy - add new manager that unifies file and untitled working copies 32d4df9b823 untitled file working copy - shared dispose handling 3a1b950c147 Merge branch 'main' into ben/untitled 97518f5e869 Copy testRepeat helper to extension integration tests 721cdd6472b Fix data loss when renaming custom editors (#124057) bbb89b86f56 remove hover bg color on notebook toolbar icon. 8f140828107 fix mouse click double background c59f782cc7d adopt table widget for workspace trust editor 616e0fd9927 refactor: polish 4815c9e9954 fix notebook toolbar scrollbar a069768c9b6 Remove disposing of editor input in override service 0026416a7ea move showDeprecated suggest to be a CompletionOption option 2a9f02348f6 Make notebook toolbar cell visible on click (change notebook.cellToolbarVisibility default) df93e53dfb6 Merge branch 'notebook/dev' into main 4486788c81c allow the left toolbar to overflow. d501abe922d contribute actions to the toolbar. bf9f6837d14 NotebooKernelActionViewItem accepts notebook editor widget. 9063312f9c1 keep ref from cellVM to outputVM for now. 5913c5b070e Merge pull request #124125 from microsoft/tyriar/join_terminals 9b1ba3f31f0 Adds Memento.keys #87110 8b726fc9f51 update color registry names for inline values 25873bb34c4 Adds Uri.from #121198 5c4fae91762 Merge remote-tracking branch 'origin/notebook/dev' into dev/mjbvz/unify-renderers-api 79bd573d9e4 Move OpenIssueReporter api command registration out of extHostApiCommands (#124068) 73cce9a080e Fix vertical terminal margin left/right e657d422814 debug: expose parent session on DebugSessions 25967171f17 Delay workspace recommendations as remote extensions installations are ongoing For #124119 b84a8c4215a Re-enable selectionNavigation in terminal tabs 84c23ab5bd7 debug: bump node-debug2 version b3c56f52813 testing: bad rendering of inline decorations for markdown messages 2bc36bec9dc breakpoints select on stop 71f4934a0c6 use enum 21e0fab8b87 Don't show join in command palette 1243a51d59b Support join terminals 4e7029f593b workbench web api: builtinExtensionsFilter 34775b7d660 add requestOpenUris api fc76d8b6b44 fix #124113 455a8b6949b List focus colors are too dark (Fixes #123703) aee486cd293 untitled file working copy - poperly resolve target e02714b5775 Polish for some workspace reuse (#123519) daaa8a98bf3 debug: focus breakpoint on debug stop f113243a516 Close and reopen tunnel when protocol changes 960af85cd93 Reduce number of calls to get port attributes fb9d3f3e501 Fix all ports showing as user forwarded 4726abdcfa8 explorer: do not remove dotes at end of filenames before validation 026e6239be9 Merge pull request #123895 from danielgary/wmic-replacement 8f78655dbe3 untitled file working copy - set visibility 615bb082c11 Tunnel -> Port 0f5ceb2f1db Add context menu for tunnel protocol Fixes #123750 414e5dbf1f8 install additional debuggers only when at least one debugger present 1c6e481373e untitled file working copy - some code 💄 b0272010af8 Disable bell sound completely f3cca6236e0 remove todos about ipynb cell ids 3f6e29238c5 Show status icon in tooltip f8054f260ee Merge remote-tracking branch 'origin/main' into alex/ghost-text 2d80cb75c4b Fixes #124038: Render a `<span>` for each `::after` decoration at end of line cdeaebbd3be Show info terminal statuses in narrow view 3467760399e Merge pull request #123867 from hediet/hediet/fix-123178-leading-ws-in-wrapped-line 71e729d1222 Merge pull request #122785 from tejasvi/patch-1 1b591be32b2 Merge remote-tracking branch 'origin/main' into pr/tejasvi/122785 49ded4d7e11 Fixes #122825: Dispose proxies when the extension host terminates 7c07550dbc5 Log errors encountered during deactivate e4159c8f892 Add protocol to portsAttributes Part of #123750 b2c32980765 untitled file working copy - fix tests b94b2d2cf01 untitled file working copy - wire in save support fe2761a026e untitled file working copy - add workingcopyservice#get 956347c4edc better logic for "notebook open/close, notebook ready when cell-document open event is fired", https://github.com/microsoft/vscode/issues/123655 191ebfabe65 Merge branch 'main' into notebook/dev 2f2f8d7b0f4 untitled file working copy - extract common super type for manager 102433ffbef untitled file working copy - extract reusable interfaces 27d250fa0da Merge branch 'main' into ben/untitled 07cf22f6814 Fix ctrl+enter in code cell editor 45aafeb326d fix #123816 fd7d84a392c Merge branch 'notebook/dev' into main d51c7f66306 add experiment global toolbar. 079be5f0fd6 remove run all cells constraint 0031e783518 Store tab list width in global storage e270ff06255 Make default horizontal tabs width 120px 1bd7c329fb2 Move tabs list size constants into const enum e0ff23866ad 💄 49870fb9fca More accessibility improvements 47c96324ba6 Banner accessibility improvements 7c4a2cb6cc6 Add args to source profile schema 2bf81674ee7 refs #123976 a3fe790a45f Explicitly flush OutputAppender #123856 2c91cc8a7d2 Clean up decorations when hiding ghosted text ac85998e016 Pipe language edit counts into CES survey (#124006) 22350f3dc54 Change the order for ghost text decorations (use a class name that sorts before) 9916815a187 Merge pull request #124039 from microsoft/tyriar/121278 74372fe5663 Fixes #124038: Render a `<span>` for each `::after` decoration at end of line a1646e35c36 Remove try catch, clean up 6353aaac13a Share code between dispose instance and remove instance 9719ae6e725 untitled file working copy - 💄 1371a8e0d49 Bulk-edit veto dialog use the correct reason 327690a3cb9 Unsplit terminals 32db232a53a Scaffold ghost text 63b6e6c51d7 untitled file working copy - tests 45769b83189 debug issues assign to Andre f2640c349b0 untitled file working copy - first cut manager 38dda41eaa0 Merge pull request #123474 from microsoft/tyriar/local_wording e8dbf0cc9a1 Improve wording, separate for remote and virtual befed354684 Merge remote-tracking branch 'origin/main' into tyriar/local_wording 509926497c8 sandbox - make CLI commands a native host thing (#123899) dc85211b159 untitled file working copy - first cut a6db2795e36 Fix elevateIfNeeded port attribute Fixes microsoft/vscode-remote-release#5065 736896527ce Improve npm trust message d4ca8b7f3a3 icon contribution: add requires (for #117437) b2273e80745 Merge remote-tracking branch 'origin/main' into main d8b70e74a88 cleanup link styling 46596757d41 fix icon contribution id validation (for #117437) 9ef2514d701 Merge branch 'main' into pr/121835 aad39f1ea63 untitled editor names 💄 7320c8514c9 status bar - fix compile errors 381e7c2d0bc status bar - use secondary priority as sorting criteria (#123827) da374067139 state service - do not log expected file not found error 82767cc1d7b add aria description for workspace trust editor refs #122537 cfa977755b1 fixes #122537 5a5d1bc91f8 Add provider label in auth menus (#123922) ff59c24225a fix #123709 87476adaee7 Merge pull request #123919 from jeanp413/fix-123892 217261cf739 Mitigate #123856 055319001c6 Fixes #123892 802ba30de2e allow managing workspace trust from extension icon f3277a1e1e9 fix markdown editor position for compact view. f0e57a781af fix #123819. 12f273e3e07 fix #121056. 6d79421b349 Merge branch 'notebook/dev' into main 7b9bb17ce56 refresh styles after kernel is changed. e5c7b899cf1 compact view. d0b6c2d2276 fixes #123858 40d5e6796fb fix #123700. baccddcd459 Use Windows mode if build # is <= 19041 (#123725) dcfdc8d2e4e Merge pull request #123429 from jeanp413/file-drop-terminal-tab 18313e82b00 update markdown folding icon padding fcde284705f Merge pull request #123246 from vibhavsarraf/terminal_link_normalize_path 109f7feb3b0 Trim leading ../ or ./ from quick access query 4e79908dcff Merge remote-tracking branch 'origin/main' into pr/vibhavsarraf/123246 42b1e81d5d5 Merge remote-tracking branch 'origin/main' into pr/vibhavsarraf/123246 e5f3dd9ef82 simplify default view styles. f4691de9552 remove legacy comments. 1ccd6a07946 Merge pull request #123910 from jeanp413/fix-123891 36e2b3176ee Update distro c492f13efc4 xterm@4.13.0-beta.1 dff22a07121 Fix double border on vertical splits c33420d9872 Fixes #123891 8c0ba0b5d79 [remote menu] add command Install Additional Remote Development Extensions. Fixes #123905 6510b614c10 Consistent casing for `Install Additional ...` quick pick entries 22d7f210f79 Fix full path flashing in terminal tab 4946fee0dd1 Alt+click to split single tab f8a3cef533f debug colors: compress css selectors 828e83defca Merge pull request #123726 from suzmue/hoverText 0f7439bf2e7 Middle click to kill single tab 09b77ba6d8b added comment and removed empty lines 89b4b6c90d1 Replaced wmic call with windows-process-tree c6525283099 Remove dialog in ChangeLocalPortAction Part of microsoft/vscode-remote-release#4958 c8b4656197f Add requireLocalPort property to portsAttributes Fixes microsoft/vscode-remote-release#4958 6aec850c759 Multiroot workspaces on Windows with forward slashes are treated as relative paths. Fixes #123871 27966a2521d Merge pull request #123833 from gjsjohnmurray/fix-123831 b540874d21d Incorporate task terminal status feedback 67133f048d5 Add tooltips to task status Fixes #123730 5446… * chore(deps): fixup lockfiles * chore: restore .gitignore * fix(vscode): redo extra extension paths * fix(vscode): add setSocket to PersistentProtocol * fix(vscode): restore server files * fix(vscode): restore typings * fix(vscode): restore proxy_agent.ts symlink * fix(vscode): use ptyHost.getEnv * fix(vscode): uriTransformer refactoring * fix(vscode): add new terminal listener * fix(vscode): fix + enable layering lint * chore: format file * Squashed 'lib/vscode/' changes from 2064d4c301c..b4c1bd0a9b0 b4c1bd0a9b0 Merge pull request #125817 from microsoft/aeschli/125786 33d504f8455 clarify nls comment d5fbc9f45fa fix localization strings with `command:`. For #125786 f8b576c274b trust the empty window by default (#125788) c5e845182bf Dont use exp service for choosing first content behaviour (#125780) 78429fb8736 Use interpolation to keep special syntax out of strings to be translated (#125790) 47c2272a70d candy/125576 (#125787) 1e7b9242e89 Merge pull request #125773 from microsoft/roblou/fix122768 134cc8b7711 Update values for keybinding query context to match real keybindings. Fix #122768 26317e8dccd fixes #125722 (#125768) 629091038fc allow a 3rd character for first part of language id (#125761) 5e6379fd7a9 Merge pull request #125741 from microsoft/tyriar/r157_125729 098c99e2237 Set terminal title in ctor for custom pty terminals c7119ae8b63 Merge pull request #125679 from microsoft/isidorn/fixRunMenu 0ef242cb5cc Merge pull request #125728 from microsoft/joh/fix/125716 c188ea91a64 make sure to transform notebook data metadata e27b85b9958 fix #125702 (#125703) 008c3ecf4cd Port fix for git diff paths in webviews to 1.57 (#125704) c926ecf021a Clone object before applying migrated setting (#125696) 6d4a8af5cfc Hide terminal menu if no process support is registered 2c9833b549d better context key for run menu bf84ee619e0 #125527 (#125651) 2c4bd4f2b3c Merge pull request #125654 from microsoft/hediet/reduce-flickering-of-inline-completions 2e9321da48b Merge pull request #125657 from microsoft/hediet/adjust-inline-completions-color b915673f7b2 Fix #125569 (#125650) 1c5f331fa08 Merge pull request #125653 from microsoft/hediet/fix-no-focus-after-accept 9bde5523814 Adjusts inline completions color. Fixes #125646. 7b724945310 Reduces flickering of inline completions & fixes context key. 5ba2e425f31 Fixes #125524 by focusing editor after commit. 6cdc6160057 Merge pull request #125649 from microsoft/joh/fix/125550 b3d2cd902b7 re-throw and dispose reference when resolving failed dcc182fe3d2 Revert ESBuild updates and fix #125518 (#125574) bdafbc3b5f2 Merge pull request #125552 from microsoft/roblou/disableRunToolbar ce8505d5580 Add "hostRequirements" to schema (microsoft/vscode-remote-release#5144) de98ebbc81e only show notification once per window reload (#125548) 31a11d3b786 Disable consolidated run button by default. Fix #125544 git-subtree-dir: lib/vscode git-subtree-split: b4c1bd0a9b03c749ea011b06c6d2676c8091a70c * fix(lib/vscode): restore product.json * fix(vscode): backport resources hotfix * refactor(lib/vscode): reorganize code to fit vs rules * fix(ci): remove stray symlinks * cleanup(lib/vscode): format .gitignore * chore(vscode): fix formatting * refactor(vscode): remove parsePathArg in envService * fix(vscode): add missing terminal commands * fix(vscode): update .eslintignore paths * chore: document uriTransformer hacks * fix(lib/vscode): restore patches * fix(lib/vscode): restore more patches * Squashed 'lib/vscode/' changes from b4c1bd0a9b0..507ce72a446 507ce72a446 Merge pull request #126577 from microsoft/sandy081/recovery/fix125970 3f4baf46c6f move focus check while converting d95f6de445f - migrate only from active window - respect old value while reading 08bca485860 Fix race that causes auto port forwarding setting to be ignored (#126481) 2650c2e51d3 Merge pull request #126413 from microsoft/inline-suggest-prevent-auto-suggest 45c13db2195 Do not auto-trigger suggest when typing exactly the inline suggestion 20a512db915 Fix #126178; fixes markdown scrolling bug 3300069a2b7 separated editor scroll info by type and consume entry on access 92c259a77f5 Update package.json (#126283) d21d7d9d3e8 Port fix #126057 (#126215) d9b1d6b8c17 Merge pull request #126234 from microsoft/tyriar/157_125985 a16b9181915 Pass config to external terminal service 6bca69fc6fb macos - restore Cmd+W to close window when no editors opened (#126045) b9f4ab00ba8 linux - restore `--no-sandbox` for startup scripts (#126028) ca66517cf90 Revert back to Electron `12.0.7` (#126026) 6370d95598d Set visibility of markdown cells before rendering it (#126099) git-subtree-dir: lib/vscode git-subtree-split: 507ce72a4466fbb27b715c3722558bb15afa9f48 * fmt(docs): remove trailing whitespace * fix(test): fix e2e tests * chore(deps): update vulnerable vscode deps * fix(test): clean up terminal test * Retry menu navigation in e2e tests * Update VS Code loader with trusted types policy * Update build resources with renamed file * Restore proposed API patch Without this it is impossible to enable the proposed API for extensions. To replicate the issue run a build or search for enableProposedApiForAll and set it to false (it is set to true during development) then try running an extension that uses the proposed API like the GitHub pull request extension and look for an error in the browser console. * Restore async storage write patch This issue can be reliably replicated by creating an extension with the following code: await context.globalState.update("key", "value") vscode.commands.executeCommand("workbench.action.reloadWindow"); If you do this the global state will never update. This can be seen by logging with a notification or browsing the global state manually. This is probably a bug with upstream because without this patch it is impossible to wait for the actual storage write. This actually required more patching than we previously had; I don't think it was working in 1.56 either. * Remove duplicate telemetry service registration We no longer comment out the telemetry service in the workbench so ours is redundant. - logTelemetry call was slightly wrong (uses an object rather than an array) - No longer need the telemetry channel since the default uses the extension environment channel. - No longer need disableTelemetry since we don't create the setting. This does mean the setting is not toggled off when the disable flag is set (it does of course still prevent telemetry) but that appears to be the same with upstream. * Use service in terminal channel instead of interface This allows us to avoid checking whether some functions exist when we know they will. This means we can't use this for other pty services like the browser one but that won't be necessary as this strictly runs on the Node end anyway. * Rename uri transformer using camel case * Update yarn.lock I got changes when I ran yarn so I reverted to 1.57 then ran yarn again and here is the result. * Restore .yarnrc patch Delete .yarnrc and update the build process where that file is read since it no longer exists. This should resolve the issues we keep having with mismatched Node versions. This can be consistently replicated by spinning up a new environment (no previous modules or cache), running yarn, then running yarn watch. Also use process.versions.node instead of process.version as the latter has an extra v at the beginning. * Remove gulp-tar dependency It's pulling in a security vuln and we don't need it anyway. * Cancel current menu navigation on retry * chore(docs): update docs with patches * chore(ci): increase timeout to 15 minutes Co-authored-by: Asher <ash@coder.com>
6775 lines
199 KiB
TypeScript
6775 lines
199 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||
*--------------------------------------------------------------------------------------------*/
|
||
|
||
declare let MonacoEnvironment: monaco.Environment | undefined;
|
||
|
||
declare namespace monaco {
|
||
|
||
export type Thenable<T> = PromiseLike<T>;
|
||
|
||
export interface Environment {
|
||
globalAPI?: boolean;
|
||
baseUrl?: string;
|
||
getWorker?(workerId: string, label: string): Worker;
|
||
getWorkerUrl?(workerId: string, label: string): string;
|
||
}
|
||
|
||
export interface IDisposable {
|
||
dispose(): void;
|
||
}
|
||
|
||
export interface IEvent<T> {
|
||
(listener: (e: T) => any, thisArg?: any): IDisposable;
|
||
}
|
||
|
||
/**
|
||
* A helper that allows to emit and listen to typed events
|
||
*/
|
||
export class Emitter<T> {
|
||
constructor();
|
||
readonly event: IEvent<T>;
|
||
fire(event: T): void;
|
||
dispose(): void;
|
||
}
|
||
|
||
|
||
export enum MarkerTag {
|
||
Unnecessary = 1,
|
||
Deprecated = 2
|
||
}
|
||
|
||
export enum MarkerSeverity {
|
||
Hint = 1,
|
||
Info = 2,
|
||
Warning = 4,
|
||
Error = 8
|
||
}
|
||
|
||
export class CancellationTokenSource {
|
||
constructor(parent?: CancellationToken);
|
||
get token(): CancellationToken;
|
||
cancel(): void;
|
||
dispose(cancel?: boolean): void;
|
||
}
|
||
|
||
export interface CancellationToken {
|
||
/**
|
||
* A flag signalling is cancellation has been requested.
|
||
*/
|
||
readonly isCancellationRequested: boolean;
|
||
/**
|
||
* An event which fires when cancellation is requested. This event
|
||
* only ever fires `once` as cancellation can only happen once. Listeners
|
||
* that are registered after cancellation will be called (next event loop run),
|
||
* but also only once.
|
||
*
|
||
* @event
|
||
*/
|
||
readonly onCancellationRequested: (listener: (e: any) => any, thisArgs?: any, disposables?: IDisposable[]) => IDisposable;
|
||
}
|
||
/**
|
||
* Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986.
|
||
* This class is a simple parser which creates the basic component parts
|
||
* (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation
|
||
* and encoding.
|
||
*
|
||
* ```txt
|
||
* foo://example.com:8042/over/there?name=ferret#nose
|
||
* \_/ \______________/\_________/ \_________/ \__/
|
||
* | | | | |
|
||
* scheme authority path query fragment
|
||
* | _____________________|__
|
||
* / \ / \
|
||
* urn:example:animal:ferret:nose
|
||
* ```
|
||
*/
|
||
export class Uri implements UriComponents {
|
||
static isUri(thing: any): thing is Uri;
|
||
/**
|
||
* scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'.
|
||
* The part before the first colon.
|
||
*/
|
||
readonly scheme: string;
|
||
/**
|
||
* authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'.
|
||
* The part between the first double slashes and the next slash.
|
||
*/
|
||
readonly authority: string;
|
||
/**
|
||
* path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'.
|
||
*/
|
||
readonly path: string;
|
||
/**
|
||
* query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'.
|
||
*/
|
||
readonly query: string;
|
||
/**
|
||
* fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'.
|
||
*/
|
||
readonly fragment: string;
|
||
/**
|
||
* Returns a string representing the corresponding file system path of this Uri.
|
||
* Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the
|
||
* platform specific path separator.
|
||
*
|
||
* * Will *not* validate the path for invalid characters and semantics.
|
||
* * Will *not* look at the scheme of this Uri.
|
||
* * The result shall *not* be used for display purposes but for accessing a file on disk.
|
||
*
|
||
*
|
||
* The *difference* to `Uri#path` is the use of the platform specific separator and the handling
|
||
* of UNC paths. See the below sample of a file-uri with an authority (UNC path).
|
||
*
|
||
* ```ts
|
||
const u = Uri.parse('file://server/c$/folder/file.txt')
|
||
u.authority === 'server'
|
||
u.path === '/shares/c$/file.txt'
|
||
u.fsPath === '\\server\c$\folder\file.txt'
|
||
```
|
||
*
|
||
* Using `Uri#path` to read a file (using fs-apis) would not be enough because parts of the path,
|
||
* namely the server name, would be missing. Therefore `Uri#fsPath` exists - it's sugar to ease working
|
||
* with URIs that represent files on disk (`file` scheme).
|
||
*/
|
||
get fsPath(): string;
|
||
with(change: {
|
||
scheme?: string;
|
||
authority?: string | null;
|
||
path?: string | null;
|
||
query?: string | null;
|
||
fragment?: string | null;
|
||
}): Uri;
|
||
/**
|
||
* Creates a new Uri from a string, e.g. `http://www.msft.com/some/path`,
|
||
* `file:///usr/home`, or `scheme:with/path`.
|
||
*
|
||
* @param value A string which represents an Uri (see `Uri#toString`).
|
||
*/
|
||
static parse(value: string, _strict?: boolean): Uri;
|
||
/**
|
||
* Creates a new Uri from a file system path, e.g. `c:\my\files`,
|
||
* `/usr/home`, or `\\server\share\some\path`.
|
||
*
|
||
* The *difference* between `Uri#parse` and `Uri#file` is that the latter treats the argument
|
||
* as path, not as stringified-uri. E.g. `Uri.file(path)` is **not the same as**
|
||
* `Uri.parse('file://' + path)` because the path might contain characters that are
|
||
* interpreted (# and ?). See the following sample:
|
||
* ```ts
|
||
const good = Uri.file('/coding/c#/project1');
|
||
good.scheme === 'file';
|
||
good.path === '/coding/c#/project1';
|
||
good.fragment === '';
|
||
const bad = Uri.parse('file://' + '/coding/c#/project1');
|
||
bad.scheme === 'file';
|
||
bad.path === '/coding/c'; // path is now broken
|
||
bad.fragment === '/project1';
|
||
```
|
||
*
|
||
* @param path A file system path (see `Uri#fsPath`)
|
||
*/
|
||
static file(path: string): Uri;
|
||
static from(components: {
|
||
scheme: string;
|
||
authority?: string;
|
||
path?: string;
|
||
query?: string;
|
||
fragment?: string;
|
||
}): Uri;
|
||
/**
|
||
* Join a Uri path with path fragments and normalizes the resulting path.
|
||
*
|
||
* @param uri The input Uri.
|
||
* @param pathFragment The path fragment to add to the Uri path.
|
||
* @returns The resulting Uri.
|
||
*/
|
||
static joinPath(uri: Uri, ...pathFragment: string[]): Uri;
|
||
/**
|
||
* Creates a string representation for this Uri. It's guaranteed that calling
|
||
* `Uri.parse` with the result of this function creates an Uri which is equal
|
||
* to this Uri.
|
||
*
|
||
* * The result shall *not* be used for display purposes but for externalization or transport.
|
||
* * The result will be encoded using the percentage encoding and encoding happens mostly
|
||
* ignore the scheme-specific encoding rules.
|
||
*
|
||
* @param skipEncoding Do not encode the result, default is `false`
|
||
*/
|
||
toString(skipEncoding?: boolean): string;
|
||
toJSON(): UriComponents;
|
||
static revive(data: UriComponents | Uri): Uri;
|
||
static revive(data: UriComponents | Uri | undefined): Uri | undefined;
|
||
static revive(data: UriComponents | Uri | null): Uri | null;
|
||
static revive(data: UriComponents | Uri | undefined | null): Uri | undefined | null;
|
||
}
|
||
|
||
export interface UriComponents {
|
||
scheme: string;
|
||
authority: string;
|
||
path: string;
|
||
query: string;
|
||
fragment: string;
|
||
}
|
||
|
||
/**
|
||
* Virtual Key Codes, the value does not hold any inherent meaning.
|
||
* Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
|
||
* But these are "more general", as they should work across browsers & OS`s.
|
||
*/
|
||
export enum KeyCode {
|
||
DependsOnKbLayout = -1,
|
||
/**
|
||
* Placed first to cover the 0 value of the enum.
|
||
*/
|
||
Unknown = 0,
|
||
Backspace = 1,
|
||
Tab = 2,
|
||
Enter = 3,
|
||
Shift = 4,
|
||
Ctrl = 5,
|
||
Alt = 6,
|
||
PauseBreak = 7,
|
||
CapsLock = 8,
|
||
Escape = 9,
|
||
Space = 10,
|
||
PageUp = 11,
|
||
PageDown = 12,
|
||
End = 13,
|
||
Home = 14,
|
||
LeftArrow = 15,
|
||
UpArrow = 16,
|
||
RightArrow = 17,
|
||
DownArrow = 18,
|
||
Insert = 19,
|
||
Delete = 20,
|
||
KEY_0 = 21,
|
||
KEY_1 = 22,
|
||
KEY_2 = 23,
|
||
KEY_3 = 24,
|
||
KEY_4 = 25,
|
||
KEY_5 = 26,
|
||
KEY_6 = 27,
|
||
KEY_7 = 28,
|
||
KEY_8 = 29,
|
||
KEY_9 = 30,
|
||
KEY_A = 31,
|
||
KEY_B = 32,
|
||
KEY_C = 33,
|
||
KEY_D = 34,
|
||
KEY_E = 35,
|
||
KEY_F = 36,
|
||
KEY_G = 37,
|
||
KEY_H = 38,
|
||
KEY_I = 39,
|
||
KEY_J = 40,
|
||
KEY_K = 41,
|
||
KEY_L = 42,
|
||
KEY_M = 43,
|
||
KEY_N = 44,
|
||
KEY_O = 45,
|
||
KEY_P = 46,
|
||
KEY_Q = 47,
|
||
KEY_R = 48,
|
||
KEY_S = 49,
|
||
KEY_T = 50,
|
||
KEY_U = 51,
|
||
KEY_V = 52,
|
||
KEY_W = 53,
|
||
KEY_X = 54,
|
||
KEY_Y = 55,
|
||
KEY_Z = 56,
|
||
Meta = 57,
|
||
ContextMenu = 58,
|
||
F1 = 59,
|
||
F2 = 60,
|
||
F3 = 61,
|
||
F4 = 62,
|
||
F5 = 63,
|
||
F6 = 64,
|
||
F7 = 65,
|
||
F8 = 66,
|
||
F9 = 67,
|
||
F10 = 68,
|
||
F11 = 69,
|
||
F12 = 70,
|
||
F13 = 71,
|
||
F14 = 72,
|
||
F15 = 73,
|
||
F16 = 74,
|
||
F17 = 75,
|
||
F18 = 76,
|
||
F19 = 77,
|
||
NumLock = 78,
|
||
ScrollLock = 79,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the ';:' key
|
||
*/
|
||
US_SEMICOLON = 80,
|
||
/**
|
||
* For any country/region, the '+' key
|
||
* For the US standard keyboard, the '=+' key
|
||
*/
|
||
US_EQUAL = 81,
|
||
/**
|
||
* For any country/region, the ',' key
|
||
* For the US standard keyboard, the ',<' key
|
||
*/
|
||
US_COMMA = 82,
|
||
/**
|
||
* For any country/region, the '-' key
|
||
* For the US standard keyboard, the '-_' key
|
||
*/
|
||
US_MINUS = 83,
|
||
/**
|
||
* For any country/region, the '.' key
|
||
* For the US standard keyboard, the '.>' key
|
||
*/
|
||
US_DOT = 84,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the '/?' key
|
||
*/
|
||
US_SLASH = 85,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the '`~' key
|
||
*/
|
||
US_BACKTICK = 86,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the '[{' key
|
||
*/
|
||
US_OPEN_SQUARE_BRACKET = 87,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the '\|' key
|
||
*/
|
||
US_BACKSLASH = 88,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the ']}' key
|
||
*/
|
||
US_CLOSE_SQUARE_BRACKET = 89,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
* For the US standard keyboard, the ''"' key
|
||
*/
|
||
US_QUOTE = 90,
|
||
/**
|
||
* Used for miscellaneous characters; it can vary by keyboard.
|
||
*/
|
||
OEM_8 = 91,
|
||
/**
|
||
* Either the angle bracket key or the backslash key on the RT 102-key keyboard.
|
||
*/
|
||
OEM_102 = 92,
|
||
NUMPAD_0 = 93,
|
||
NUMPAD_1 = 94,
|
||
NUMPAD_2 = 95,
|
||
NUMPAD_3 = 96,
|
||
NUMPAD_4 = 97,
|
||
NUMPAD_5 = 98,
|
||
NUMPAD_6 = 99,
|
||
NUMPAD_7 = 100,
|
||
NUMPAD_8 = 101,
|
||
NUMPAD_9 = 102,
|
||
NUMPAD_MULTIPLY = 103,
|
||
NUMPAD_ADD = 104,
|
||
NUMPAD_SEPARATOR = 105,
|
||
NUMPAD_SUBTRACT = 106,
|
||
NUMPAD_DECIMAL = 107,
|
||
NUMPAD_DIVIDE = 108,
|
||
/**
|
||
* Cover all key codes when IME is processing input.
|
||
*/
|
||
KEY_IN_COMPOSITION = 109,
|
||
ABNT_C1 = 110,
|
||
ABNT_C2 = 111,
|
||
/**
|
||
* Placed last to cover the length of the enum.
|
||
* Please do not depend on this value!
|
||
*/
|
||
MAX_VALUE = 112
|
||
}
|
||
export class KeyMod {
|
||
static readonly CtrlCmd: number;
|
||
static readonly Shift: number;
|
||
static readonly Alt: number;
|
||
static readonly WinCtrl: number;
|
||
static chord(firstPart: number, secondPart: number): number;
|
||
}
|
||
|
||
export interface IMarkdownString {
|
||
readonly value: string;
|
||
readonly isTrusted?: boolean;
|
||
readonly supportThemeIcons?: boolean;
|
||
uris?: {
|
||
[href: string]: UriComponents;
|
||
};
|
||
}
|
||
|
||
export interface IKeyboardEvent {
|
||
readonly _standardKeyboardEventBrand: true;
|
||
readonly browserEvent: KeyboardEvent;
|
||
readonly target: HTMLElement;
|
||
readonly ctrlKey: boolean;
|
||
readonly shiftKey: boolean;
|
||
readonly altKey: boolean;
|
||
readonly metaKey: boolean;
|
||
readonly keyCode: KeyCode;
|
||
readonly code: string;
|
||
equals(keybinding: number): boolean;
|
||
preventDefault(): void;
|
||
stopPropagation(): void;
|
||
}
|
||
export interface IMouseEvent {
|
||
readonly browserEvent: MouseEvent;
|
||
readonly leftButton: boolean;
|
||
readonly middleButton: boolean;
|
||
readonly rightButton: boolean;
|
||
readonly buttons: number;
|
||
readonly target: HTMLElement;
|
||
readonly detail: number;
|
||
readonly posx: number;
|
||
readonly posy: number;
|
||
readonly ctrlKey: boolean;
|
||
readonly shiftKey: boolean;
|
||
readonly altKey: boolean;
|
||
readonly metaKey: boolean;
|
||
readonly timestamp: number;
|
||
preventDefault(): void;
|
||
stopPropagation(): void;
|
||
}
|
||
|
||
export interface IScrollEvent {
|
||
readonly scrollTop: number;
|
||
readonly scrollLeft: number;
|
||
readonly scrollWidth: number;
|
||
readonly scrollHeight: number;
|
||
readonly scrollTopChanged: boolean;
|
||
readonly scrollLeftChanged: boolean;
|
||
readonly scrollWidthChanged: boolean;
|
||
readonly scrollHeightChanged: boolean;
|
||
}
|
||
/**
|
||
* A position in the editor. This interface is suitable for serialization.
|
||
*/
|
||
export interface IPosition {
|
||
/**
|
||
* line number (starts at 1)
|
||
*/
|
||
readonly lineNumber: number;
|
||
/**
|
||
* column (the first character in a line is between column 1 and column 2)
|
||
*/
|
||
readonly column: number;
|
||
}
|
||
|
||
/**
|
||
* A position in the editor.
|
||
*/
|
||
export class Position {
|
||
/**
|
||
* line number (starts at 1)
|
||
*/
|
||
readonly lineNumber: number;
|
||
/**
|
||
* column (the first character in a line is between column 1 and column 2)
|
||
*/
|
||
readonly column: number;
|
||
constructor(lineNumber: number, column: number);
|
||
/**
|
||
* Create a new position from this position.
|
||
*
|
||
* @param newLineNumber new line number
|
||
* @param newColumn new column
|
||
*/
|
||
with(newLineNumber?: number, newColumn?: number): Position;
|
||
/**
|
||
* Derive a new position from this position.
|
||
*
|
||
* @param deltaLineNumber line number delta
|
||
* @param deltaColumn column delta
|
||
*/
|
||
delta(deltaLineNumber?: number, deltaColumn?: number): Position;
|
||
/**
|
||
* Test if this position equals other position
|
||
*/
|
||
equals(other: IPosition): boolean;
|
||
/**
|
||
* Test if position `a` equals position `b`
|
||
*/
|
||
static equals(a: IPosition | null, b: IPosition | null): boolean;
|
||
/**
|
||
* Test if this position is before other position.
|
||
* If the two positions are equal, the result will be false.
|
||
*/
|
||
isBefore(other: IPosition): boolean;
|
||
/**
|
||
* Test if position `a` is before position `b`.
|
||
* If the two positions are equal, the result will be false.
|
||
*/
|
||
static isBefore(a: IPosition, b: IPosition): boolean;
|
||
/**
|
||
* Test if this position is before other position.
|
||
* If the two positions are equal, the result will be true.
|
||
*/
|
||
isBeforeOrEqual(other: IPosition): boolean;
|
||
/**
|
||
* Test if position `a` is before position `b`.
|
||
* If the two positions are equal, the result will be true.
|
||
*/
|
||
static isBeforeOrEqual(a: IPosition, b: IPosition): boolean;
|
||
/**
|
||
* A function that compares positions, useful for sorting
|
||
*/
|
||
static compare(a: IPosition, b: IPosition): number;
|
||
/**
|
||
* Clone this position.
|
||
*/
|
||
clone(): Position;
|
||
/**
|
||
* Convert to a human-readable representation.
|
||
*/
|
||
toString(): string;
|
||
/**
|
||
* Create a `Position` from an `IPosition`.
|
||
*/
|
||
static lift(pos: IPosition): Position;
|
||
/**
|
||
* Test if `obj` is an `IPosition`.
|
||
*/
|
||
static isIPosition(obj: any): obj is IPosition;
|
||
}
|
||
|
||
/**
|
||
* A range in the editor. This interface is suitable for serialization.
|
||
*/
|
||
export interface IRange {
|
||
/**
|
||
* Line number on which the range starts (starts at 1).
|
||
*/
|
||
readonly startLineNumber: number;
|
||
/**
|
||
* Column on which the range starts in line `startLineNumber` (starts at 1).
|
||
*/
|
||
readonly startColumn: number;
|
||
/**
|
||
* Line number on which the range ends.
|
||
*/
|
||
readonly endLineNumber: number;
|
||
/**
|
||
* Column on which the range ends in line `endLineNumber`.
|
||
*/
|
||
readonly endColumn: number;
|
||
}
|
||
|
||
/**
|
||
* A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn)
|
||
*/
|
||
export class Range {
|
||
/**
|
||
* Line number on which the range starts (starts at 1).
|
||
*/
|
||
readonly startLineNumber: number;
|
||
/**
|
||
* Column on which the range starts in line `startLineNumber` (starts at 1).
|
||
*/
|
||
readonly startColumn: number;
|
||
/**
|
||
* Line number on which the range ends.
|
||
*/
|
||
readonly endLineNumber: number;
|
||
/**
|
||
* Column on which the range ends in line `endLineNumber`.
|
||
*/
|
||
readonly endColumn: number;
|
||
constructor(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number);
|
||
/**
|
||
* Test if this range is empty.
|
||
*/
|
||
isEmpty(): boolean;
|
||
/**
|
||
* Test if `range` is empty.
|
||
*/
|
||
static isEmpty(range: IRange): boolean;
|
||
/**
|
||
* Test if position is in this range. If the position is at the edges, will return true.
|
||
*/
|
||
containsPosition(position: IPosition): boolean;
|
||
/**
|
||
* Test if `position` is in `range`. If the position is at the edges, will return true.
|
||
*/
|
||
static containsPosition(range: IRange, position: IPosition): boolean;
|
||
/**
|
||
* Test if range is in this range. If the range is equal to this range, will return true.
|
||
*/
|
||
containsRange(range: IRange): boolean;
|
||
/**
|
||
* Test if `otherRange` is in `range`. If the ranges are equal, will return true.
|
||
*/
|
||
static containsRange(range: IRange, otherRange: IRange): boolean;
|
||
/**
|
||
* Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.
|
||
*/
|
||
strictContainsRange(range: IRange): boolean;
|
||
/**
|
||
* Test if `otherRange` is strinctly in `range` (must start after, and end before). If the ranges are equal, will return false.
|
||
*/
|
||
static strictContainsRange(range: IRange, otherRange: IRange): boolean;
|
||
/**
|
||
* A reunion of the two ranges.
|
||
* The smallest position will be used as the start point, and the largest one as the end point.
|
||
*/
|
||
plusRange(range: IRange): Range;
|
||
/**
|
||
* A reunion of the two ranges.
|
||
* The smallest position will be used as the start point, and the largest one as the end point.
|
||
*/
|
||
static plusRange(a: IRange, b: IRange): Range;
|
||
/**
|
||
* A intersection of the two ranges.
|
||
*/
|
||
intersectRanges(range: IRange): Range | null;
|
||
/**
|
||
* A intersection of the two ranges.
|
||
*/
|
||
static intersectRanges(a: IRange, b: IRange): Range | null;
|
||
/**
|
||
* Test if this range equals other.
|
||
*/
|
||
equalsRange(other: IRange | null): boolean;
|
||
/**
|
||
* Test if range `a` equals `b`.
|
||
*/
|
||
static equalsRange(a: IRange | null, b: IRange | null): boolean;
|
||
/**
|
||
* Return the end position (which will be after or equal to the start position)
|
||
*/
|
||
getEndPosition(): Position;
|
||
/**
|
||
* Return the end position (which will be after or equal to the start position)
|
||
*/
|
||
static getEndPosition(range: IRange): Position;
|
||
/**
|
||
* Return the start position (which will be before or equal to the end position)
|
||
*/
|
||
getStartPosition(): Position;
|
||
/**
|
||
* Return the start position (which will be before or equal to the end position)
|
||
*/
|
||
static getStartPosition(range: IRange): Position;
|
||
/**
|
||
* Transform to a user presentable string representation.
|
||
*/
|
||
toString(): string;
|
||
/**
|
||
* Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.
|
||
*/
|
||
setEndPosition(endLineNumber: number, endColumn: number): Range;
|
||
/**
|
||
* Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.
|
||
*/
|
||
setStartPosition(startLineNumber: number, startColumn: number): Range;
|
||
/**
|
||
* Create a new empty range using this range's start position.
|
||
*/
|
||
collapseToStart(): Range;
|
||
/**
|
||
* Create a new empty range using this range's start position.
|
||
*/
|
||
static collapseToStart(range: IRange): Range;
|
||
static fromPositions(start: IPosition, end?: IPosition): Range;
|
||
/**
|
||
* Create a `Range` from an `IRange`.
|
||
*/
|
||
static lift(range: undefined | null): null;
|
||
static lift(range: IRange): Range;
|
||
/**
|
||
* Test if `obj` is an `IRange`.
|
||
*/
|
||
static isIRange(obj: any): obj is IRange;
|
||
/**
|
||
* Test if the two ranges are touching in any way.
|
||
*/
|
||
static areIntersectingOrTouching(a: IRange, b: IRange): boolean;
|
||
/**
|
||
* Test if the two ranges are intersecting. If the ranges are touching it returns true.
|
||
*/
|
||
static areIntersecting(a: IRange, b: IRange): boolean;
|
||
/**
|
||
* A function that compares ranges, useful for sorting ranges
|
||
* It will first compare ranges on the startPosition and then on the endPosition
|
||
*/
|
||
static compareRangesUsingStarts(a: IRange | null | undefined, b: IRange | null | undefined): number;
|
||
/**
|
||
* A function that compares ranges, useful for sorting ranges
|
||
* It will first compare ranges on the endPosition and then on the startPosition
|
||
*/
|
||
static compareRangesUsingEnds(a: IRange, b: IRange): number;
|
||
/**
|
||
* Test if the range spans multiple lines.
|
||
*/
|
||
static spansMultipleLines(range: IRange): boolean;
|
||
}
|
||
|
||
/**
|
||
* A selection in the editor.
|
||
* The selection is a range that has an orientation.
|
||
*/
|
||
export interface ISelection {
|
||
/**
|
||
* The line number on which the selection has started.
|
||
*/
|
||
readonly selectionStartLineNumber: number;
|
||
/**
|
||
* The column on `selectionStartLineNumber` where the selection has started.
|
||
*/
|
||
readonly selectionStartColumn: number;
|
||
/**
|
||
* The line number on which the selection has ended.
|
||
*/
|
||
readonly positionLineNumber: number;
|
||
/**
|
||
* The column on `positionLineNumber` where the selection has ended.
|
||
*/
|
||
readonly positionColumn: number;
|
||
}
|
||
|
||
/**
|
||
* A selection in the editor.
|
||
* The selection is a range that has an orientation.
|
||
*/
|
||
export class Selection extends Range {
|
||
/**
|
||
* The line number on which the selection has started.
|
||
*/
|
||
readonly selectionStartLineNumber: number;
|
||
/**
|
||
* The column on `selectionStartLineNumber` where the selection has started.
|
||
*/
|
||
readonly selectionStartColumn: number;
|
||
/**
|
||
* The line number on which the selection has ended.
|
||
*/
|
||
readonly positionLineNumber: number;
|
||
/**
|
||
* The column on `positionLineNumber` where the selection has ended.
|
||
*/
|
||
readonly positionColumn: number;
|
||
constructor(selectionStartLineNumber: number, selectionStartColumn: number, positionLineNumber: number, positionColumn: number);
|
||
/**
|
||
* Transform to a human-readable representation.
|
||
*/
|
||
toString(): string;
|
||
/**
|
||
* Test if equals other selection.
|
||
*/
|
||
equalsSelection(other: ISelection): boolean;
|
||
/**
|
||
* Test if the two selections are equal.
|
||
*/
|
||
static selectionsEqual(a: ISelection, b: ISelection): boolean;
|
||
/**
|
||
* Get directions (LTR or RTL).
|
||
*/
|
||
getDirection(): SelectionDirection;
|
||
/**
|
||
* Create a new selection with a different `positionLineNumber` and `positionColumn`.
|
||
*/
|
||
setEndPosition(endLineNumber: number, endColumn: number): Selection;
|
||
/**
|
||
* Get the position at `positionLineNumber` and `positionColumn`.
|
||
*/
|
||
getPosition(): Position;
|
||
/**
|
||
* Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.
|
||
*/
|
||
setStartPosition(startLineNumber: number, startColumn: number): Selection;
|
||
/**
|
||
* Create a `Selection` from one or two positions
|
||
*/
|
||
static fromPositions(start: IPosition, end?: IPosition): Selection;
|
||
/**
|
||
* Create a `Selection` from an `ISelection`.
|
||
*/
|
||
static liftSelection(sel: ISelection): Selection;
|
||
/**
|
||
* `a` equals `b`.
|
||
*/
|
||
static selectionsArrEqual(a: ISelection[], b: ISelection[]): boolean;
|
||
/**
|
||
* Test if `obj` is an `ISelection`.
|
||
*/
|
||
static isISelection(obj: any): obj is ISelection;
|
||
/**
|
||
* Create with a direction.
|
||
*/
|
||
static createWithDirection(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, direction: SelectionDirection): Selection;
|
||
}
|
||
|
||
/**
|
||
* The direction of a selection.
|
||
*/
|
||
export enum SelectionDirection {
|
||
/**
|
||
* The selection starts above where it ends.
|
||
*/
|
||
LTR = 0,
|
||
/**
|
||
* The selection starts below where it ends.
|
||
*/
|
||
RTL = 1
|
||
}
|
||
|
||
export class Token {
|
||
_tokenBrand: void;
|
||
readonly offset: number;
|
||
readonly type: string;
|
||
readonly language: string;
|
||
constructor(offset: number, type: string, language: string);
|
||
toString(): string;
|
||
}
|
||
}
|
||
|
||
declare namespace monaco.editor {
|
||
|
||
export interface IDiffNavigator {
|
||
canNavigate(): boolean;
|
||
next(): void;
|
||
previous(): void;
|
||
dispose(): void;
|
||
}
|
||
|
||
/**
|
||
* Create a new editor under `domElement`.
|
||
* `domElement` should be empty (not contain other dom nodes).
|
||
* The editor will read the size of `domElement`.
|
||
*/
|
||
export function create(domElement: HTMLElement, options?: IStandaloneEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneCodeEditor;
|
||
|
||
/**
|
||
* Emitted when an editor is created.
|
||
* Creating a diff editor might cause this listener to be invoked with the two editors.
|
||
* @event
|
||
*/
|
||
export function onDidCreateEditor(listener: (codeEditor: ICodeEditor) => void): IDisposable;
|
||
|
||
/**
|
||
* Create a new diff editor under `domElement`.
|
||
* `domElement` should be empty (not contain other dom nodes).
|
||
* The editor will read the size of `domElement`.
|
||
*/
|
||
export function createDiffEditor(domElement: HTMLElement, options?: IDiffEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneDiffEditor;
|
||
|
||
export interface IDiffNavigatorOptions {
|
||
readonly followsCaret?: boolean;
|
||
readonly ignoreCharChanges?: boolean;
|
||
readonly alwaysRevealFirst?: boolean;
|
||
}
|
||
|
||
export function createDiffNavigator(diffEditor: IStandaloneDiffEditor, opts?: IDiffNavigatorOptions): IDiffNavigator;
|
||
|
||
/**
|
||
* Create a new editor model.
|
||
* You can specify the language that should be set for this model or let the language be inferred from the `uri`.
|
||
*/
|
||
export function createModel(value: string, language?: string, uri?: Uri): ITextModel;
|
||
|
||
/**
|
||
* Change the language for a model.
|
||
*/
|
||
export function setModelLanguage(model: ITextModel, languageId: string): void;
|
||
|
||
/**
|
||
* Set the markers for a model.
|
||
*/
|
||
export function setModelMarkers(model: ITextModel, owner: string, markers: IMarkerData[]): void;
|
||
|
||
/**
|
||
* Get markers for owner and/or resource
|
||
*
|
||
* @returns list of markers
|
||
*/
|
||
export function getModelMarkers(filter: {
|
||
owner?: string;
|
||
resource?: Uri;
|
||
take?: number;
|
||
}): IMarker[];
|
||
|
||
/**
|
||
* Emitted when markers change for a model.
|
||
* @event
|
||
*/
|
||
export function onDidChangeMarkers(listener: (e: readonly Uri[]) => void): IDisposable;
|
||
|
||
/**
|
||
* Get the model that has `uri` if it exists.
|
||
*/
|
||
export function getModel(uri: Uri): ITextModel | null;
|
||
|
||
/**
|
||
* Get all the created models.
|
||
*/
|
||
export function getModels(): ITextModel[];
|
||
|
||
/**
|
||
* Emitted when a model is created.
|
||
* @event
|
||
*/
|
||
export function onDidCreateModel(listener: (model: ITextModel) => void): IDisposable;
|
||
|
||
/**
|
||
* Emitted right before a model is disposed.
|
||
* @event
|
||
*/
|
||
export function onWillDisposeModel(listener: (model: ITextModel) => void): IDisposable;
|
||
|
||
/**
|
||
* Emitted when a different language is set to a model.
|
||
* @event
|
||
*/
|
||
export function onDidChangeModelLanguage(listener: (e: {
|
||
readonly model: ITextModel;
|
||
readonly oldLanguage: string;
|
||
}) => void): IDisposable;
|
||
|
||
/**
|
||
* Create a new web worker that has model syncing capabilities built in.
|
||
* Specify an AMD module to load that will `create` an object that will be proxied.
|
||
*/
|
||
export function createWebWorker<T>(opts: IWebWorkerOptions): MonacoWebWorker<T>;
|
||
|
||
/**
|
||
* Colorize the contents of `domNode` using attribute `data-lang`.
|
||
*/
|
||
export function colorizeElement(domNode: HTMLElement, options: IColorizerElementOptions): Promise<void>;
|
||
|
||
/**
|
||
* Colorize `text` using language `languageId`.
|
||
*/
|
||
export function colorize(text: string, languageId: string, options: IColorizerOptions): Promise<string>;
|
||
|
||
/**
|
||
* Colorize a line in a model.
|
||
*/
|
||
export function colorizeModelLine(model: ITextModel, lineNumber: number, tabSize?: number): string;
|
||
|
||
/**
|
||
* Tokenize `text` using language `languageId`
|
||
*/
|
||
export function tokenize(text: string, languageId: string): Token[][];
|
||
|
||
/**
|
||
* Define a new theme or update an existing theme.
|
||
*/
|
||
export function defineTheme(themeName: string, themeData: IStandaloneThemeData): void;
|
||
|
||
/**
|
||
* Switches to a theme.
|
||
*/
|
||
export function setTheme(themeName: string): void;
|
||
|
||
/**
|
||
* Clears all cached font measurements and triggers re-measurement.
|
||
*/
|
||
export function remeasureFonts(): void;
|
||
|
||
/**
|
||
* Register a command.
|
||
*/
|
||
export function registerCommand(id: string, handler: (accessor: any, ...args: any[]) => void): IDisposable;
|
||
|
||
export type BuiltinTheme = 'vs' | 'vs-dark' | 'hc-black';
|
||
|
||
export interface IStandaloneThemeData {
|
||
base: BuiltinTheme;
|
||
inherit: boolean;
|
||
rules: ITokenThemeRule[];
|
||
encodedTokensColors?: string[];
|
||
colors: IColors;
|
||
}
|
||
|
||
export type IColors = {
|
||
[colorId: string]: string;
|
||
};
|
||
|
||
export interface ITokenThemeRule {
|
||
token: string;
|
||
foreground?: string;
|
||
background?: string;
|
||
fontStyle?: string;
|
||
}
|
||
|
||
/**
|
||
* A web worker that can provide a proxy to an arbitrary file.
|
||
*/
|
||
export interface MonacoWebWorker<T> {
|
||
/**
|
||
* Terminate the web worker, thus invalidating the returned proxy.
|
||
*/
|
||
dispose(): void;
|
||
/**
|
||
* Get a proxy to the arbitrary loaded code.
|
||
*/
|
||
getProxy(): Promise<T>;
|
||
/**
|
||
* Synchronize (send) the models at `resources` to the web worker,
|
||
* making them available in the monaco.worker.getMirrorModels().
|
||
*/
|
||
withSyncedResources(resources: Uri[]): Promise<T>;
|
||
}
|
||
|
||
export interface IWebWorkerOptions {
|
||
/**
|
||
* The AMD moduleId to load.
|
||
* It should export a function `create` that should return the exported proxy.
|
||
*/
|
||
moduleId: string;
|
||
/**
|
||
* The data to send over when calling create on the module.
|
||
*/
|
||
createData?: any;
|
||
/**
|
||
* A label to be used to identify the web worker for debugging purposes.
|
||
*/
|
||
label?: string;
|
||
/**
|
||
* An object that can be used by the web worker to make calls back to the main thread.
|
||
*/
|
||
host?: any;
|
||
/**
|
||
* Keep idle models.
|
||
* Defaults to false, which means that idle models will stop syncing after a while.
|
||
*/
|
||
keepIdleModels?: boolean;
|
||
}
|
||
|
||
/**
|
||
* Description of an action contribution
|
||
*/
|
||
export interface IActionDescriptor {
|
||
/**
|
||
* An unique identifier of the contributed action.
|
||
*/
|
||
id: string;
|
||
/**
|
||
* A label of the action that will be presented to the user.
|
||
*/
|
||
label: string;
|
||
/**
|
||
* Precondition rule.
|
||
*/
|
||
precondition?: string;
|
||
/**
|
||
* An array of keybindings for the action.
|
||
*/
|
||
keybindings?: number[];
|
||
/**
|
||
* The keybinding rule (condition on top of precondition).
|
||
*/
|
||
keybindingContext?: string;
|
||
/**
|
||
* Control if the action should show up in the context menu and where.
|
||
* The context menu of the editor has these default:
|
||
* navigation - The navigation group comes first in all cases.
|
||
* 1_modification - This group comes next and contains commands that modify your code.
|
||
* 9_cutcopypaste - The last default group with the basic editing commands.
|
||
* You can also create your own group.
|
||
* Defaults to null (don't show in context menu).
|
||
*/
|
||
contextMenuGroupId?: string;
|
||
/**
|
||
* Control the order in the context menu group.
|
||
*/
|
||
contextMenuOrder?: number;
|
||
/**
|
||
* Method that will be executed when the action is triggered.
|
||
* @param editor The editor instance is passed in as a convenience
|
||
*/
|
||
run(editor: ICodeEditor, ...args: any[]): void | Promise<void>;
|
||
}
|
||
|
||
/**
|
||
* Options which apply for all editors.
|
||
*/
|
||
export interface IGlobalEditorOptions {
|
||
/**
|
||
* The number of spaces a tab is equal to.
|
||
* This setting is overridden based on the file contents when `detectIndentation` is on.
|
||
* Defaults to 4.
|
||
*/
|
||
tabSize?: number;
|
||
/**
|
||
* Insert spaces when pressing `Tab`.
|
||
* This setting is overridden based on the file contents when `detectIndentation` is on.
|
||
* Defaults to true.
|
||
*/
|
||
insertSpaces?: boolean;
|
||
/**
|
||
* Controls whether `tabSize` and `insertSpaces` will be automatically detected when a file is opened based on the file contents.
|
||
* Defaults to true.
|
||
*/
|
||
detectIndentation?: boolean;
|
||
/**
|
||
* Remove trailing auto inserted whitespace.
|
||
* Defaults to true.
|
||
*/
|
||
trimAutoWhitespace?: boolean;
|
||
/**
|
||
* Special handling for large files to disable certain memory intensive features.
|
||
* Defaults to true.
|
||
*/
|
||
largeFileOptimizations?: boolean;
|
||
/**
|
||
* Controls whether completions should be computed based on words in the document.
|
||
* Defaults to true.
|
||
*/
|
||
wordBasedSuggestions?: boolean;
|
||
/**
|
||
* Controls whether word based completions should be included from opened documents of the same language or any language.
|
||
*/
|
||
wordBasedSuggestionsOnlySameLanguage?: boolean;
|
||
/**
|
||
* Controls whether the semanticHighlighting is shown for the languages that support it.
|
||
* true: semanticHighlighting is enabled for all themes
|
||
* false: semanticHighlighting is disabled for all themes
|
||
* 'configuredByTheme': semanticHighlighting is controlled by the current color theme's semanticHighlighting setting.
|
||
* Defaults to 'byTheme'.
|
||
*/
|
||
'semanticHighlighting.enabled'?: true | false | 'configuredByTheme';
|
||
/**
|
||
* Keep peek editors open even when double clicking their content or when hitting `Escape`.
|
||
* Defaults to false.
|
||
*/
|
||
stablePeek?: boolean;
|
||
/**
|
||
* Lines above this length will not be tokenized for performance reasons.
|
||
* Defaults to 20000.
|
||
*/
|
||
maxTokenizationLineLength?: number;
|
||
/**
|
||
* Theme to be used for rendering.
|
||
* The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black'.
|
||
* You can create custom themes via `monaco.editor.defineTheme`.
|
||
* To switch a theme, use `monaco.editor.setTheme`.
|
||
* **NOTE**: The theme might be overwritten if the OS is in high contrast mode, unless `autoDetectHighContrast` is set to false.
|
||
*/
|
||
theme?: string;
|
||
/**
|
||
* If enabled, will automatically change to high contrast theme if the OS is using a high contrast theme.
|
||
* Defaults to true.
|
||
*/
|
||
autoDetectHighContrast?: boolean;
|
||
}
|
||
|
||
/**
|
||
* The options to create an editor.
|
||
*/
|
||
export interface IStandaloneEditorConstructionOptions extends IEditorConstructionOptions, IGlobalEditorOptions {
|
||
/**
|
||
* The initial model associated with this code editor.
|
||
*/
|
||
model?: ITextModel | null;
|
||
/**
|
||
* The initial value of the auto created model in the editor.
|
||
* To not create automatically a model, use `model: null`.
|
||
*/
|
||
value?: string;
|
||
/**
|
||
* The initial language of the auto created model in the editor.
|
||
* To not create automatically a model, use `model: null`.
|
||
*/
|
||
language?: string;
|
||
/**
|
||
* Initial theme to be used for rendering.
|
||
* The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black'.
|
||
* You can create custom themes via `monaco.editor.defineTheme`.
|
||
* To switch a theme, use `monaco.editor.setTheme`.
|
||
* **NOTE**: The theme might be overwritten if the OS is in high contrast mode, unless `autoDetectHighContrast` is set to false.
|
||
*/
|
||
theme?: string;
|
||
/**
|
||
* If enabled, will automatically change to high contrast theme if the OS is using a high contrast theme.
|
||
* Defaults to true.
|
||
*/
|
||
autoDetectHighContrast?: boolean;
|
||
/**
|
||
* An URL to open when Ctrl+H (Windows and Linux) or Cmd+H (OSX) is pressed in
|
||
* the accessibility help dialog in the editor.
|
||
*
|
||
* Defaults to "https://go.microsoft.com/fwlink/?linkid=852450"
|
||
*/
|
||
accessibilityHelpUrl?: string;
|
||
}
|
||
|
||
/**
|
||
* The options to create a diff editor.
|
||
*/
|
||
export interface IDiffEditorConstructionOptions extends IDiffEditorOptions {
|
||
/**
|
||
* Initial theme to be used for rendering.
|
||
* The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black'.
|
||
* You can create custom themes via `monaco.editor.defineTheme`.
|
||
* To switch a theme, use `monaco.editor.setTheme`.
|
||
* **NOTE**: The theme might be overwritten if the OS is in high contrast mode, unless `autoDetectHighContrast` is set to false.
|
||
*/
|
||
theme?: string;
|
||
/**
|
||
* If enabled, will automatically change to high contrast theme if the OS is using a high contrast theme.
|
||
* Defaults to true.
|
||
*/
|
||
autoDetectHighContrast?: boolean;
|
||
}
|
||
|
||
export interface IStandaloneCodeEditor extends ICodeEditor {
|
||
updateOptions(newOptions: IEditorOptions & IGlobalEditorOptions): void;
|
||
addCommand(keybinding: number, handler: ICommandHandler, context?: string): string | null;
|
||
createContextKey<T>(key: string, defaultValue: T): IContextKey<T>;
|
||
addAction(descriptor: IActionDescriptor): IDisposable;
|
||
}
|
||
|
||
export interface IStandaloneDiffEditor extends IDiffEditor {
|
||
addCommand(keybinding: number, handler: ICommandHandler, context?: string): string | null;
|
||
createContextKey<T>(key: string, defaultValue: T): IContextKey<T>;
|
||
addAction(descriptor: IActionDescriptor): IDisposable;
|
||
getOriginalEditor(): IStandaloneCodeEditor;
|
||
getModifiedEditor(): IStandaloneCodeEditor;
|
||
}
|
||
export interface ICommandHandler {
|
||
(...args: any[]): void;
|
||
}
|
||
|
||
export interface IContextKey<T> {
|
||
set(value: T): void;
|
||
reset(): void;
|
||
get(): T | undefined;
|
||
}
|
||
|
||
export interface IEditorOverrideServices {
|
||
[index: string]: any;
|
||
}
|
||
|
||
export interface IMarker {
|
||
owner: string;
|
||
resource: Uri;
|
||
severity: MarkerSeverity;
|
||
code?: string | {
|
||
value: string;
|
||
target: Uri;
|
||
};
|
||
message: string;
|
||
source?: string;
|
||
startLineNumber: number;
|
||
startColumn: number;
|
||
endLineNumber: number;
|
||
endColumn: number;
|
||
relatedInformation?: IRelatedInformation[];
|
||
tags?: MarkerTag[];
|
||
}
|
||
|
||
/**
|
||
* A structure defining a problem/warning/etc.
|
||
*/
|
||
export interface IMarkerData {
|
||
code?: string | {
|
||
value: string;
|
||
target: Uri;
|
||
};
|
||
severity: MarkerSeverity;
|
||
message: string;
|
||
source?: string;
|
||
startLineNumber: number;
|
||
startColumn: number;
|
||
endLineNumber: number;
|
||
endColumn: number;
|
||
relatedInformation?: IRelatedInformation[];
|
||
tags?: MarkerTag[];
|
||
}
|
||
|
||
/**
|
||
*
|
||
*/
|
||
export interface IRelatedInformation {
|
||
resource: Uri;
|
||
message: string;
|
||
startLineNumber: number;
|
||
startColumn: number;
|
||
endLineNumber: number;
|
||
endColumn: number;
|
||
}
|
||
|
||
export interface IColorizerOptions {
|
||
tabSize?: number;
|
||
}
|
||
|
||
export interface IColorizerElementOptions extends IColorizerOptions {
|
||
theme?: string;
|
||
mimeType?: string;
|
||
}
|
||
|
||
export enum ScrollbarVisibility {
|
||
Auto = 1,
|
||
Hidden = 2,
|
||
Visible = 3
|
||
}
|
||
|
||
export interface ThemeColor {
|
||
id: string;
|
||
}
|
||
|
||
/**
|
||
* Vertical Lane in the overview ruler of the editor.
|
||
*/
|
||
export enum OverviewRulerLane {
|
||
Left = 1,
|
||
Center = 2,
|
||
Right = 4,
|
||
Full = 7
|
||
}
|
||
|
||
/**
|
||
* Position in the minimap to render the decoration.
|
||
*/
|
||
export enum MinimapPosition {
|
||
Inline = 1,
|
||
Gutter = 2
|
||
}
|
||
|
||
export interface IDecorationOptions {
|
||
/**
|
||
* CSS color to render.
|
||
* e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry
|
||
*/
|
||
color: string | ThemeColor | undefined;
|
||
/**
|
||
* CSS color to render.
|
||
* e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry
|
||
*/
|
||
darkColor?: string | ThemeColor;
|
||
}
|
||
|
||
/**
|
||
* Options for rendering a model decoration in the overview ruler.
|
||
*/
|
||
export interface IModelDecorationOverviewRulerOptions extends IDecorationOptions {
|
||
/**
|
||
* The position in the overview ruler.
|
||
*/
|
||
position: OverviewRulerLane;
|
||
}
|
||
|
||
/**
|
||
* Options for rendering a model decoration in the overview ruler.
|
||
*/
|
||
export interface IModelDecorationMinimapOptions extends IDecorationOptions {
|
||
/**
|
||
* The position in the overview ruler.
|
||
*/
|
||
position: MinimapPosition;
|
||
}
|
||
|
||
/**
|
||
* Options for a model decoration.
|
||
*/
|
||
export interface IModelDecorationOptions {
|
||
/**
|
||
* Customize the growing behavior of the decoration when typing at the edges of the decoration.
|
||
* Defaults to TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges
|
||
*/
|
||
stickiness?: TrackedRangeStickiness;
|
||
/**
|
||
* CSS class name describing the decoration.
|
||
*/
|
||
className?: string | null;
|
||
/**
|
||
* Message to be rendered when hovering over the glyph margin decoration.
|
||
*/
|
||
glyphMarginHoverMessage?: IMarkdownString | IMarkdownString[] | null;
|
||
/**
|
||
* Array of MarkdownString to render as the decoration message.
|
||
*/
|
||
hoverMessage?: IMarkdownString | IMarkdownString[] | null;
|
||
/**
|
||
* Should the decoration expand to encompass a whole line.
|
||
*/
|
||
isWholeLine?: boolean;
|
||
/**
|
||
* Specifies the stack order of a decoration.
|
||
* A decoration with greater stack order is always in front of a decoration with a lower stack order.
|
||
*/
|
||
zIndex?: number;
|
||
/**
|
||
* If set, render this decoration in the overview ruler.
|
||
*/
|
||
overviewRuler?: IModelDecorationOverviewRulerOptions | null;
|
||
/**
|
||
* If set, render this decoration in the minimap.
|
||
*/
|
||
minimap?: IModelDecorationMinimapOptions | null;
|
||
/**
|
||
* If set, the decoration will be rendered in the glyph margin with this CSS class name.
|
||
*/
|
||
glyphMarginClassName?: string | null;
|
||
/**
|
||
* If set, the decoration will be rendered in the lines decorations with this CSS class name.
|
||
*/
|
||
linesDecorationsClassName?: string | null;
|
||
/**
|
||
* If set, the decoration will be rendered in the lines decorations with this CSS class name, but only for the first line in case of line wrapping.
|
||
*/
|
||
firstLineDecorationClassName?: string | null;
|
||
/**
|
||
* If set, the decoration will be rendered in the margin (covering its full width) with this CSS class name.
|
||
*/
|
||
marginClassName?: string | null;
|
||
/**
|
||
* If set, the decoration will be rendered inline with the text with this CSS class name.
|
||
* Please use this only for CSS rules that must impact the text. For example, use `className`
|
||
* to have a background color decoration.
|
||
*/
|
||
inlineClassName?: string | null;
|
||
/**
|
||
* If there is an `inlineClassName` which affects letter spacing.
|
||
*/
|
||
inlineClassNameAffectsLetterSpacing?: boolean;
|
||
/**
|
||
* If set, the decoration will be rendered before the text with this CSS class name.
|
||
*/
|
||
beforeContentClassName?: string | null;
|
||
/**
|
||
* If set, the decoration will be rendered after the text with this CSS class name.
|
||
*/
|
||
afterContentClassName?: string | null;
|
||
}
|
||
|
||
/**
|
||
* New model decorations.
|
||
*/
|
||
export interface IModelDeltaDecoration {
|
||
/**
|
||
* Range that this decoration covers.
|
||
*/
|
||
range: IRange;
|
||
/**
|
||
* Options associated with this decoration.
|
||
*/
|
||
options: IModelDecorationOptions;
|
||
}
|
||
|
||
/**
|
||
* A decoration in the model.
|
||
*/
|
||
export interface IModelDecoration {
|
||
/**
|
||
* Identifier for a decoration.
|
||
*/
|
||
readonly id: string;
|
||
/**
|
||
* Identifier for a decoration's owner.
|
||
*/
|
||
readonly ownerId: number;
|
||
/**
|
||
* Range that this decoration covers.
|
||
*/
|
||
readonly range: Range;
|
||
/**
|
||
* Options associated with this decoration.
|
||
*/
|
||
readonly options: IModelDecorationOptions;
|
||
}
|
||
|
||
/**
|
||
* Word inside a model.
|
||
*/
|
||
export interface IWordAtPosition {
|
||
/**
|
||
* The word.
|
||
*/
|
||
readonly word: string;
|
||
/**
|
||
* The column where the word starts.
|
||
*/
|
||
readonly startColumn: number;
|
||
/**
|
||
* The column where the word ends.
|
||
*/
|
||
readonly endColumn: number;
|
||
}
|
||
|
||
/**
|
||
* End of line character preference.
|
||
*/
|
||
export enum EndOfLinePreference {
|
||
/**
|
||
* Use the end of line character identified in the text buffer.
|
||
*/
|
||
TextDefined = 0,
|
||
/**
|
||
* Use line feed (\n) as the end of line character.
|
||
*/
|
||
LF = 1,
|
||
/**
|
||
* Use carriage return and line feed (\r\n) as the end of line character.
|
||
*/
|
||
CRLF = 2
|
||
}
|
||
|
||
/**
|
||
* The default end of line to use when instantiating models.
|
||
*/
|
||
export enum DefaultEndOfLine {
|
||
/**
|
||
* Use line feed (\n) as the end of line character.
|
||
*/
|
||
LF = 1,
|
||
/**
|
||
* Use carriage return and line feed (\r\n) as the end of line character.
|
||
*/
|
||
CRLF = 2
|
||
}
|
||
|
||
/**
|
||
* End of line character preference.
|
||
*/
|
||
export enum EndOfLineSequence {
|
||
/**
|
||
* Use line feed (\n) as the end of line character.
|
||
*/
|
||
LF = 0,
|
||
/**
|
||
* Use carriage return and line feed (\r\n) as the end of line character.
|
||
*/
|
||
CRLF = 1
|
||
}
|
||
|
||
/**
|
||
* A single edit operation, that acts as a simple replace.
|
||
* i.e. Replace text at `range` with `text` in model.
|
||
*/
|
||
export interface ISingleEditOperation {
|
||
/**
|
||
* The range to replace. This can be empty to emulate a simple insert.
|
||
*/
|
||
range: IRange;
|
||
/**
|
||
* The text to replace with. This can be null to emulate a simple delete.
|
||
*/
|
||
text: string | null;
|
||
/**
|
||
* This indicates that this operation has "insert" semantics.
|
||
* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved.
|
||
*/
|
||
forceMoveMarkers?: boolean;
|
||
}
|
||
|
||
/**
|
||
* A single edit operation, that has an identifier.
|
||
*/
|
||
export interface IIdentifiedSingleEditOperation {
|
||
/**
|
||
* The range to replace. This can be empty to emulate a simple insert.
|
||
*/
|
||
range: IRange;
|
||
/**
|
||
* The text to replace with. This can be null to emulate a simple delete.
|
||
*/
|
||
text: string | null;
|
||
/**
|
||
* This indicates that this operation has "insert" semantics.
|
||
* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved.
|
||
*/
|
||
forceMoveMarkers?: boolean;
|
||
}
|
||
|
||
export interface IValidEditOperation {
|
||
/**
|
||
* The range to replace. This can be empty to emulate a simple insert.
|
||
*/
|
||
range: Range;
|
||
/**
|
||
* The text to replace with. This can be empty to emulate a simple delete.
|
||
*/
|
||
text: string;
|
||
}
|
||
|
||
/**
|
||
* A callback that can compute the cursor state after applying a series of edit operations.
|
||
*/
|
||
export interface ICursorStateComputer {
|
||
/**
|
||
* A callback that can compute the resulting cursors state after some edit operations have been executed.
|
||
*/
|
||
(inverseEditOperations: IValidEditOperation[]): Selection[] | null;
|
||
}
|
||
|
||
export class TextModelResolvedOptions {
|
||
_textModelResolvedOptionsBrand: void;
|
||
readonly tabSize: number;
|
||
readonly indentSize: number;
|
||
readonly insertSpaces: boolean;
|
||
readonly defaultEOL: DefaultEndOfLine;
|
||
readonly trimAutoWhitespace: boolean;
|
||
}
|
||
|
||
export interface ITextModelUpdateOptions {
|
||
tabSize?: number;
|
||
indentSize?: number;
|
||
insertSpaces?: boolean;
|
||
trimAutoWhitespace?: boolean;
|
||
}
|
||
|
||
export class FindMatch {
|
||
_findMatchBrand: void;
|
||
readonly range: Range;
|
||
readonly matches: string[] | null;
|
||
}
|
||
|
||
/**
|
||
* Describes the behavior of decorations when typing/editing near their edges.
|
||
* Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior`
|
||
*/
|
||
export enum TrackedRangeStickiness {
|
||
AlwaysGrowsWhenTypingAtEdges = 0,
|
||
NeverGrowsWhenTypingAtEdges = 1,
|
||
GrowsOnlyWhenTypingBefore = 2,
|
||
GrowsOnlyWhenTypingAfter = 3
|
||
}
|
||
|
||
/**
|
||
* A model.
|
||
*/
|
||
export interface ITextModel {
|
||
/**
|
||
* Gets the resource associated with this editor model.
|
||
*/
|
||
readonly uri: Uri;
|
||
/**
|
||
* A unique identifier associated with this model.
|
||
*/
|
||
readonly id: string;
|
||
/**
|
||
* Get the resolved options for this model.
|
||
*/
|
||
getOptions(): TextModelResolvedOptions;
|
||
/**
|
||
* Get the current version id of the model.
|
||
* Anytime a change happens to the model (even undo/redo),
|
||
* the version id is incremented.
|
||
*/
|
||
getVersionId(): number;
|
||
/**
|
||
* Get the alternative version id of the model.
|
||
* This alternative version id is not always incremented,
|
||
* it will return the same values in the case of undo-redo.
|
||
*/
|
||
getAlternativeVersionId(): number;
|
||
/**
|
||
* Replace the entire text buffer value contained in this model.
|
||
*/
|
||
setValue(newValue: string): void;
|
||
/**
|
||
* Get the text stored in this model.
|
||
* @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`.
|
||
* @param preserverBOM Preserve a BOM character if it was detected when the model was constructed.
|
||
* @return The text.
|
||
*/
|
||
getValue(eol?: EndOfLinePreference, preserveBOM?: boolean): string;
|
||
/**
|
||
* Get the length of the text stored in this model.
|
||
*/
|
||
getValueLength(eol?: EndOfLinePreference, preserveBOM?: boolean): number;
|
||
/**
|
||
* Get the text in a certain range.
|
||
* @param range The range describing what text to get.
|
||
* @param eol The end of line character preference. This will only be used for multiline ranges. Defaults to `EndOfLinePreference.TextDefined`.
|
||
* @return The text.
|
||
*/
|
||
getValueInRange(range: IRange, eol?: EndOfLinePreference): string;
|
||
/**
|
||
* Get the length of text in a certain range.
|
||
* @param range The range describing what text length to get.
|
||
* @return The text length.
|
||
*/
|
||
getValueLengthInRange(range: IRange): number;
|
||
/**
|
||
* Get the character count of text in a certain range.
|
||
* @param range The range describing what text length to get.
|
||
*/
|
||
getCharacterCountInRange(range: IRange): number;
|
||
/**
|
||
* Get the number of lines in the model.
|
||
*/
|
||
getLineCount(): number;
|
||
/**
|
||
* Get the text for a certain line.
|
||
*/
|
||
getLineContent(lineNumber: number): string;
|
||
/**
|
||
* Get the text length for a certain line.
|
||
*/
|
||
getLineLength(lineNumber: number): number;
|
||
/**
|
||
* Get the text for all lines.
|
||
*/
|
||
getLinesContent(): string[];
|
||
/**
|
||
* Get the end of line sequence predominantly used in the text buffer.
|
||
* @return EOL char sequence (e.g.: '\n' or '\r\n').
|
||
*/
|
||
getEOL(): string;
|
||
/**
|
||
* Get the end of line sequence predominantly used in the text buffer.
|
||
*/
|
||
getEndOfLineSequence(): EndOfLineSequence;
|
||
/**
|
||
* Get the minimum legal column for line at `lineNumber`
|
||
*/
|
||
getLineMinColumn(lineNumber: number): number;
|
||
/**
|
||
* Get the maximum legal column for line at `lineNumber`
|
||
*/
|
||
getLineMaxColumn(lineNumber: number): number;
|
||
/**
|
||
* Returns the column before the first non whitespace character for line at `lineNumber`.
|
||
* Returns 0 if line is empty or contains only whitespace.
|
||
*/
|
||
getLineFirstNonWhitespaceColumn(lineNumber: number): number;
|
||
/**
|
||
* Returns the column after the last non whitespace character for line at `lineNumber`.
|
||
* Returns 0 if line is empty or contains only whitespace.
|
||
*/
|
||
getLineLastNonWhitespaceColumn(lineNumber: number): number;
|
||
/**
|
||
* Create a valid position,
|
||
*/
|
||
validatePosition(position: IPosition): Position;
|
||
/**
|
||
* Advances the given position by the given offset (negative offsets are also accepted)
|
||
* and returns it as a new valid position.
|
||
*
|
||
* If the offset and position are such that their combination goes beyond the beginning or
|
||
* end of the model, throws an exception.
|
||
*
|
||
* If the offset is such that the new position would be in the middle of a multi-byte
|
||
* line terminator, throws an exception.
|
||
*/
|
||
modifyPosition(position: IPosition, offset: number): Position;
|
||
/**
|
||
* Create a valid range.
|
||
*/
|
||
validateRange(range: IRange): Range;
|
||
/**
|
||
* Converts the position to a zero-based offset.
|
||
*
|
||
* The position will be [adjusted](#TextDocument.validatePosition).
|
||
*
|
||
* @param position A position.
|
||
* @return A valid zero-based offset.
|
||
*/
|
||
getOffsetAt(position: IPosition): number;
|
||
/**
|
||
* Converts a zero-based offset to a position.
|
||
*
|
||
* @param offset A zero-based offset.
|
||
* @return A valid [position](#Position).
|
||
*/
|
||
getPositionAt(offset: number): Position;
|
||
/**
|
||
* Get a range covering the entire model
|
||
*/
|
||
getFullModelRange(): Range;
|
||
/**
|
||
* Returns if the model was disposed or not.
|
||
*/
|
||
isDisposed(): boolean;
|
||
/**
|
||
* Search the model.
|
||
* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.
|
||
* @param searchOnlyEditableRange Limit the searching to only search inside the editable range of the model.
|
||
* @param isRegex Used to indicate that `searchString` is a regular expression.
|
||
* @param matchCase Force the matching to match lower/upper case exactly.
|
||
* @param wordSeparators Force the matching to match entire words only. Pass null otherwise.
|
||
* @param captureMatches The result will contain the captured groups.
|
||
* @param limitResultCount Limit the number of results
|
||
* @return The ranges where the matches are. It is empty if not matches have been found.
|
||
*/
|
||
findMatches(searchString: string, searchOnlyEditableRange: boolean, isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean, limitResultCount?: number): FindMatch[];
|
||
/**
|
||
* Search the model.
|
||
* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.
|
||
* @param searchScope Limit the searching to only search inside these ranges.
|
||
* @param isRegex Used to indicate that `searchString` is a regular expression.
|
||
* @param matchCase Force the matching to match lower/upper case exactly.
|
||
* @param wordSeparators Force the matching to match entire words only. Pass null otherwise.
|
||
* @param captureMatches The result will contain the captured groups.
|
||
* @param limitResultCount Limit the number of results
|
||
* @return The ranges where the matches are. It is empty if no matches have been found.
|
||
*/
|
||
findMatches(searchString: string, searchScope: IRange | IRange[], isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean, limitResultCount?: number): FindMatch[];
|
||
/**
|
||
* Search the model for the next match. Loops to the beginning of the model if needed.
|
||
* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.
|
||
* @param searchStart Start the searching at the specified position.
|
||
* @param isRegex Used to indicate that `searchString` is a regular expression.
|
||
* @param matchCase Force the matching to match lower/upper case exactly.
|
||
* @param wordSeparators Force the matching to match entire words only. Pass null otherwise.
|
||
* @param captureMatches The result will contain the captured groups.
|
||
* @return The range where the next match is. It is null if no next match has been found.
|
||
*/
|
||
findNextMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean): FindMatch | null;
|
||
/**
|
||
* Search the model for the previous match. Loops to the end of the model if needed.
|
||
* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.
|
||
* @param searchStart Start the searching at the specified position.
|
||
* @param isRegex Used to indicate that `searchString` is a regular expression.
|
||
* @param matchCase Force the matching to match lower/upper case exactly.
|
||
* @param wordSeparators Force the matching to match entire words only. Pass null otherwise.
|
||
* @param captureMatches The result will contain the captured groups.
|
||
* @return The range where the previous match is. It is null if no previous match has been found.
|
||
*/
|
||
findPreviousMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean): FindMatch | null;
|
||
/**
|
||
* Get the language associated with this model.
|
||
*/
|
||
getModeId(): string;
|
||
/**
|
||
* Get the word under or besides `position`.
|
||
* @param position The position to look for a word.
|
||
* @return The word under or besides `position`. Might be null.
|
||
*/
|
||
getWordAtPosition(position: IPosition): IWordAtPosition | null;
|
||
/**
|
||
* Get the word under or besides `position` trimmed to `position`.column
|
||
* @param position The position to look for a word.
|
||
* @return The word under or besides `position`. Will never be null.
|
||
*/
|
||
getWordUntilPosition(position: IPosition): IWordAtPosition;
|
||
/**
|
||
* Perform a minimum amount of operations, in order to transform the decorations
|
||
* identified by `oldDecorations` to the decorations described by `newDecorations`
|
||
* and returns the new identifiers associated with the resulting decorations.
|
||
*
|
||
* @param oldDecorations Array containing previous decorations identifiers.
|
||
* @param newDecorations Array describing what decorations should result after the call.
|
||
* @param ownerId Identifies the editor id in which these decorations should appear. If no `ownerId` is provided, the decorations will appear in all editors that attach this model.
|
||
* @return An array containing the new decorations identifiers.
|
||
*/
|
||
deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[], ownerId?: number): string[];
|
||
/**
|
||
* Get the options associated with a decoration.
|
||
* @param id The decoration id.
|
||
* @return The decoration options or null if the decoration was not found.
|
||
*/
|
||
getDecorationOptions(id: string): IModelDecorationOptions | null;
|
||
/**
|
||
* Get the range associated with a decoration.
|
||
* @param id The decoration id.
|
||
* @return The decoration range or null if the decoration was not found.
|
||
*/
|
||
getDecorationRange(id: string): Range | null;
|
||
/**
|
||
* Gets all the decorations for the line `lineNumber` as an array.
|
||
* @param lineNumber The line number
|
||
* @param ownerId If set, it will ignore decorations belonging to other owners.
|
||
* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).
|
||
* @return An array with the decorations
|
||
*/
|
||
getLineDecorations(lineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];
|
||
/**
|
||
* Gets all the decorations for the lines between `startLineNumber` and `endLineNumber` as an array.
|
||
* @param startLineNumber The start line number
|
||
* @param endLineNumber The end line number
|
||
* @param ownerId If set, it will ignore decorations belonging to other owners.
|
||
* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).
|
||
* @return An array with the decorations
|
||
*/
|
||
getLinesDecorations(startLineNumber: number, endLineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];
|
||
/**
|
||
* Gets all the decorations in a range as an array. Only `startLineNumber` and `endLineNumber` from `range` are used for filtering.
|
||
* So for now it returns all the decorations on the same line as `range`.
|
||
* @param range The range to search in
|
||
* @param ownerId If set, it will ignore decorations belonging to other owners.
|
||
* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).
|
||
* @return An array with the decorations
|
||
*/
|
||
getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];
|
||
/**
|
||
* Gets all the decorations as an array.
|
||
* @param ownerId If set, it will ignore decorations belonging to other owners.
|
||
* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).
|
||
*/
|
||
getAllDecorations(ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];
|
||
/**
|
||
* Gets all the decorations that should be rendered in the overview ruler as an array.
|
||
* @param ownerId If set, it will ignore decorations belonging to other owners.
|
||
* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).
|
||
*/
|
||
getOverviewRulerDecorations(ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];
|
||
/**
|
||
* Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs).
|
||
*/
|
||
normalizeIndentation(str: string): string;
|
||
/**
|
||
* Change the options of this model.
|
||
*/
|
||
updateOptions(newOpts: ITextModelUpdateOptions): void;
|
||
/**
|
||
* Detect the indentation options for this model from its content.
|
||
*/
|
||
detectIndentation(defaultInsertSpaces: boolean, defaultTabSize: number): void;
|
||
/**
|
||
* Close the current undo-redo element.
|
||
* This offers a way to create an undo/redo stop point.
|
||
*/
|
||
pushStackElement(): void;
|
||
/**
|
||
* Open the current undo-redo element.
|
||
* This offers a way to remove the current undo/redo stop point.
|
||
*/
|
||
popStackElement(): void;
|
||
/**
|
||
* Push edit operations, basically editing the model. This is the preferred way
|
||
* of editing the model. The edit operations will land on the undo stack.
|
||
* @param beforeCursorState The cursor state before the edit operations. This cursor state will be returned when `undo` or `redo` are invoked.
|
||
* @param editOperations The edit operations.
|
||
* @param cursorStateComputer A callback that can compute the resulting cursors state after the edit operations have been executed.
|
||
* @return The cursor state returned by the `cursorStateComputer`.
|
||
*/
|
||
pushEditOperations(beforeCursorState: Selection[] | null, editOperations: IIdentifiedSingleEditOperation[], cursorStateComputer: ICursorStateComputer): Selection[] | null;
|
||
/**
|
||
* Change the end of line sequence. This is the preferred way of
|
||
* changing the eol sequence. This will land on the undo stack.
|
||
*/
|
||
pushEOL(eol: EndOfLineSequence): void;
|
||
/**
|
||
* Edit the model without adding the edits to the undo stack.
|
||
* This can have dire consequences on the undo stack! See @pushEditOperations for the preferred way.
|
||
* @param operations The edit operations.
|
||
* @return If desired, the inverse edit operations, that, when applied, will bring the model back to the previous state.
|
||
*/
|
||
applyEdits(operations: IIdentifiedSingleEditOperation[]): void;
|
||
applyEdits(operations: IIdentifiedSingleEditOperation[], computeUndoEdits: false): void;
|
||
applyEdits(operations: IIdentifiedSingleEditOperation[], computeUndoEdits: true): IValidEditOperation[];
|
||
/**
|
||
* Change the end of line sequence without recording in the undo stack.
|
||
* This can have dire consequences on the undo stack! See @pushEOL for the preferred way.
|
||
*/
|
||
setEOL(eol: EndOfLineSequence): void;
|
||
/**
|
||
* An event emitted when the contents of the model have changed.
|
||
* @event
|
||
*/
|
||
onDidChangeContent(listener: (e: IModelContentChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when decorations of the model have changed.
|
||
* @event
|
||
*/
|
||
onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the model options have changed.
|
||
* @event
|
||
*/
|
||
onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the language associated with the model has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeLanguage(listener: (e: IModelLanguageChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the language configuration associated with the model has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeLanguageConfiguration(listener: (e: IModelLanguageConfigurationChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the model has been attached to the first editor or detached from the last editor.
|
||
* @event
|
||
*/
|
||
onDidChangeAttached(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted right before disposing the model.
|
||
* @event
|
||
*/
|
||
onWillDispose(listener: () => void): IDisposable;
|
||
/**
|
||
* Destroy this model. This will unbind the model from the mode
|
||
* and make all necessary clean-up to release this object to the GC.
|
||
*/
|
||
dispose(): void;
|
||
/**
|
||
* Returns if this model is attached to an editor or not.
|
||
*/
|
||
isAttachedToEditor(): boolean;
|
||
}
|
||
|
||
/**
|
||
* A builder and helper for edit operations for a command.
|
||
*/
|
||
export interface IEditOperationBuilder {
|
||
/**
|
||
* Add a new edit operation (a replace operation).
|
||
* @param range The range to replace (delete). May be empty to represent a simple insert.
|
||
* @param text The text to replace with. May be null to represent a simple delete.
|
||
*/
|
||
addEditOperation(range: IRange, text: string | null, forceMoveMarkers?: boolean): void;
|
||
/**
|
||
* Add a new edit operation (a replace operation).
|
||
* The inverse edits will be accessible in `ICursorStateComputerData.getInverseEditOperations()`
|
||
* @param range The range to replace (delete). May be empty to represent a simple insert.
|
||
* @param text The text to replace with. May be null to represent a simple delete.
|
||
*/
|
||
addTrackedEditOperation(range: IRange, text: string | null, forceMoveMarkers?: boolean): void;
|
||
/**
|
||
* Track `selection` when applying edit operations.
|
||
* A best effort will be made to not grow/expand the selection.
|
||
* An empty selection will clamp to a nearby character.
|
||
* @param selection The selection to track.
|
||
* @param trackPreviousOnEmpty If set, and the selection is empty, indicates whether the selection
|
||
* should clamp to the previous or the next character.
|
||
* @return A unique identifier.
|
||
*/
|
||
trackSelection(selection: Selection, trackPreviousOnEmpty?: boolean): string;
|
||
}
|
||
|
||
/**
|
||
* A helper for computing cursor state after a command.
|
||
*/
|
||
export interface ICursorStateComputerData {
|
||
/**
|
||
* Get the inverse edit operations of the added edit operations.
|
||
*/
|
||
getInverseEditOperations(): IValidEditOperation[];
|
||
/**
|
||
* Get a previously tracked selection.
|
||
* @param id The unique identifier returned by `trackSelection`.
|
||
* @return The selection.
|
||
*/
|
||
getTrackedSelection(id: string): Selection;
|
||
}
|
||
|
||
/**
|
||
* A command that modifies text / cursor state on a model.
|
||
*/
|
||
export interface ICommand {
|
||
/**
|
||
* Get the edit operations needed to execute this command.
|
||
* @param model The model the command will execute on.
|
||
* @param builder A helper to collect the needed edit operations and to track selections.
|
||
*/
|
||
getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void;
|
||
/**
|
||
* Compute the cursor state after the edit operations were applied.
|
||
* @param model The model the command has executed on.
|
||
* @param helper A helper to get inverse edit operations and to get previously tracked selections.
|
||
* @return The cursor state after the command executed.
|
||
*/
|
||
computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection;
|
||
}
|
||
|
||
/**
|
||
* A model for the diff editor.
|
||
*/
|
||
export interface IDiffEditorModel {
|
||
/**
|
||
* Original model.
|
||
*/
|
||
original: ITextModel;
|
||
/**
|
||
* Modified model.
|
||
*/
|
||
modified: ITextModel;
|
||
}
|
||
|
||
/**
|
||
* An event describing that an editor has had its model reset (i.e. `editor.setModel()`).
|
||
*/
|
||
export interface IModelChangedEvent {
|
||
/**
|
||
* The `uri` of the previous model or null.
|
||
*/
|
||
readonly oldModelUrl: Uri | null;
|
||
/**
|
||
* The `uri` of the new model or null.
|
||
*/
|
||
readonly newModelUrl: Uri | null;
|
||
}
|
||
|
||
export interface IDimension {
|
||
width: number;
|
||
height: number;
|
||
}
|
||
|
||
/**
|
||
* A change
|
||
*/
|
||
export interface IChange {
|
||
readonly originalStartLineNumber: number;
|
||
readonly originalEndLineNumber: number;
|
||
readonly modifiedStartLineNumber: number;
|
||
readonly modifiedEndLineNumber: number;
|
||
}
|
||
|
||
/**
|
||
* A character level change.
|
||
*/
|
||
export interface ICharChange extends IChange {
|
||
readonly originalStartColumn: number;
|
||
readonly originalEndColumn: number;
|
||
readonly modifiedStartColumn: number;
|
||
readonly modifiedEndColumn: number;
|
||
}
|
||
|
||
/**
|
||
* A line change
|
||
*/
|
||
export interface ILineChange extends IChange {
|
||
readonly charChanges: ICharChange[] | undefined;
|
||
}
|
||
|
||
export interface IContentSizeChangedEvent {
|
||
readonly contentWidth: number;
|
||
readonly contentHeight: number;
|
||
readonly contentWidthChanged: boolean;
|
||
readonly contentHeightChanged: boolean;
|
||
}
|
||
|
||
export interface INewScrollPosition {
|
||
scrollLeft?: number;
|
||
scrollTop?: number;
|
||
}
|
||
|
||
export interface IEditorAction {
|
||
readonly id: string;
|
||
readonly label: string;
|
||
readonly alias: string;
|
||
isSupported(): boolean;
|
||
run(): Promise<void>;
|
||
}
|
||
|
||
export type IEditorModel = ITextModel | IDiffEditorModel;
|
||
|
||
/**
|
||
* A (serializable) state of the cursors.
|
||
*/
|
||
export interface ICursorState {
|
||
inSelectionMode: boolean;
|
||
selectionStart: IPosition;
|
||
position: IPosition;
|
||
}
|
||
|
||
/**
|
||
* A (serializable) state of the view.
|
||
*/
|
||
export interface IViewState {
|
||
/** written by previous versions */
|
||
scrollTop?: number;
|
||
/** written by previous versions */
|
||
scrollTopWithoutViewZones?: number;
|
||
scrollLeft: number;
|
||
firstPosition: IPosition;
|
||
firstPositionDeltaTop: number;
|
||
}
|
||
|
||
/**
|
||
* A (serializable) state of the code editor.
|
||
*/
|
||
export interface ICodeEditorViewState {
|
||
cursorState: ICursorState[];
|
||
viewState: IViewState;
|
||
contributionsState: {
|
||
[id: string]: any;
|
||
};
|
||
}
|
||
|
||
/**
|
||
* (Serializable) View state for the diff editor.
|
||
*/
|
||
export interface IDiffEditorViewState {
|
||
original: ICodeEditorViewState | null;
|
||
modified: ICodeEditorViewState | null;
|
||
}
|
||
|
||
/**
|
||
* An editor view state.
|
||
*/
|
||
export type IEditorViewState = ICodeEditorViewState | IDiffEditorViewState;
|
||
|
||
export enum ScrollType {
|
||
Smooth = 0,
|
||
Immediate = 1
|
||
}
|
||
|
||
/**
|
||
* An editor.
|
||
*/
|
||
export interface IEditor {
|
||
/**
|
||
* An event emitted when the editor has been disposed.
|
||
* @event
|
||
*/
|
||
onDidDispose(listener: () => void): IDisposable;
|
||
/**
|
||
* Dispose the editor.
|
||
*/
|
||
dispose(): void;
|
||
/**
|
||
* Get a unique id for this editor instance.
|
||
*/
|
||
getId(): string;
|
||
/**
|
||
* Get the editor type. Please see `EditorType`.
|
||
* This is to avoid an instanceof check
|
||
*/
|
||
getEditorType(): string;
|
||
/**
|
||
* Update the editor's options after the editor has been created.
|
||
*/
|
||
updateOptions(newOptions: IEditorOptions): void;
|
||
/**
|
||
* Instructs the editor to remeasure its container. This method should
|
||
* be called when the container of the editor gets resized.
|
||
*
|
||
* If a dimension is passed in, the passed in value will be used.
|
||
*/
|
||
layout(dimension?: IDimension): void;
|
||
/**
|
||
* Brings browser focus to the editor text
|
||
*/
|
||
focus(): void;
|
||
/**
|
||
* Returns true if the text inside this editor is focused (i.e. cursor is blinking).
|
||
*/
|
||
hasTextFocus(): boolean;
|
||
/**
|
||
* Returns all actions associated with this editor.
|
||
*/
|
||
getSupportedActions(): IEditorAction[];
|
||
/**
|
||
* Saves current view state of the editor in a serializable object.
|
||
*/
|
||
saveViewState(): IEditorViewState | null;
|
||
/**
|
||
* Restores the view state of the editor from a serializable object generated by `saveViewState`.
|
||
*/
|
||
restoreViewState(state: IEditorViewState): void;
|
||
/**
|
||
* Given a position, returns a column number that takes tab-widths into account.
|
||
*/
|
||
getVisibleColumnFromPosition(position: IPosition): number;
|
||
/**
|
||
* Returns the primary position of the cursor.
|
||
*/
|
||
getPosition(): Position | null;
|
||
/**
|
||
* Set the primary position of the cursor. This will remove any secondary cursors.
|
||
* @param position New primary cursor's position
|
||
*/
|
||
setPosition(position: IPosition): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal a line.
|
||
*/
|
||
revealLine(lineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal a line centered vertically.
|
||
*/
|
||
revealLineInCenter(lineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport.
|
||
*/
|
||
revealLineInCenterIfOutsideViewport(lineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal a line close to the top of the viewport,
|
||
* optimized for viewing a code definition.
|
||
*/
|
||
revealLineNearTop(lineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a position.
|
||
*/
|
||
revealPosition(position: IPosition, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a position centered vertically.
|
||
*/
|
||
revealPositionInCenter(position: IPosition, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport.
|
||
*/
|
||
revealPositionInCenterIfOutsideViewport(position: IPosition, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a position close to the top of the viewport,
|
||
* optimized for viewing a code definition.
|
||
*/
|
||
revealPositionNearTop(position: IPosition, scrollType?: ScrollType): void;
|
||
/**
|
||
* Returns the primary selection of the editor.
|
||
*/
|
||
getSelection(): Selection | null;
|
||
/**
|
||
* Returns all the selections of the editor.
|
||
*/
|
||
getSelections(): Selection[] | null;
|
||
/**
|
||
* Set the primary selection of the editor. This will remove any secondary cursors.
|
||
* @param selection The new selection
|
||
*/
|
||
setSelection(selection: IRange): void;
|
||
/**
|
||
* Set the primary selection of the editor. This will remove any secondary cursors.
|
||
* @param selection The new selection
|
||
*/
|
||
setSelection(selection: Range): void;
|
||
/**
|
||
* Set the primary selection of the editor. This will remove any secondary cursors.
|
||
* @param selection The new selection
|
||
*/
|
||
setSelection(selection: ISelection): void;
|
||
/**
|
||
* Set the primary selection of the editor. This will remove any secondary cursors.
|
||
* @param selection The new selection
|
||
*/
|
||
setSelection(selection: Selection): void;
|
||
/**
|
||
* Set the selections for all the cursors of the editor.
|
||
* Cursors will be removed or added, as necessary.
|
||
*/
|
||
setSelections(selections: readonly ISelection[]): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal lines.
|
||
*/
|
||
revealLines(startLineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal lines centered vertically.
|
||
*/
|
||
revealLinesInCenter(lineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport.
|
||
*/
|
||
revealLinesInCenterIfOutsideViewport(lineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically as necessary and reveal lines close to the top of the viewport,
|
||
* optimized for viewing a code definition.
|
||
*/
|
||
revealLinesNearTop(lineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a range.
|
||
*/
|
||
revealRange(range: IRange, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a range centered vertically.
|
||
*/
|
||
revealRangeInCenter(range: IRange, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a range at the top of the viewport.
|
||
*/
|
||
revealRangeAtTop(range: IRange, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport.
|
||
*/
|
||
revealRangeInCenterIfOutsideViewport(range: IRange, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a range close to the top of the viewport,
|
||
* optimized for viewing a code definition.
|
||
*/
|
||
revealRangeNearTop(range: IRange, scrollType?: ScrollType): void;
|
||
/**
|
||
* Scroll vertically or horizontally as necessary and reveal a range close to the top of the viewport,
|
||
* optimized for viewing a code definition. Only if it lies outside the viewport.
|
||
*/
|
||
revealRangeNearTopIfOutsideViewport(range: IRange, scrollType?: ScrollType): void;
|
||
/**
|
||
* Directly trigger a handler or an editor action.
|
||
* @param source The source of the call.
|
||
* @param handlerId The id of the handler or the id of a contribution.
|
||
* @param payload Extra data to be sent to the handler.
|
||
*/
|
||
trigger(source: string | null | undefined, handlerId: string, payload: any): void;
|
||
/**
|
||
* Gets the current model attached to this editor.
|
||
*/
|
||
getModel(): IEditorModel | null;
|
||
/**
|
||
* Sets the current model attached to this editor.
|
||
* If the previous model was created by the editor via the value key in the options
|
||
* literal object, it will be destroyed. Otherwise, if the previous model was set
|
||
* via setModel, or the model key in the options literal object, the previous model
|
||
* will not be destroyed.
|
||
* It is safe to call setModel(null) to simply detach the current model from the editor.
|
||
*/
|
||
setModel(model: IEditorModel | null): void;
|
||
}
|
||
|
||
/**
|
||
* An editor contribution that gets created every time a new editor gets created and gets disposed when the editor gets disposed.
|
||
*/
|
||
export interface IEditorContribution {
|
||
/**
|
||
* Dispose this contribution.
|
||
*/
|
||
dispose(): void;
|
||
/**
|
||
* Store view state.
|
||
*/
|
||
saveViewState?(): any;
|
||
/**
|
||
* Restore view state.
|
||
*/
|
||
restoreViewState?(state: any): void;
|
||
}
|
||
|
||
/**
|
||
* The type of the `IEditor`.
|
||
*/
|
||
export const EditorType: {
|
||
ICodeEditor: string;
|
||
IDiffEditor: string;
|
||
};
|
||
|
||
/**
|
||
* An event describing that the current mode associated with a model has changed.
|
||
*/
|
||
export interface IModelLanguageChangedEvent {
|
||
/**
|
||
* Previous language
|
||
*/
|
||
readonly oldLanguage: string;
|
||
/**
|
||
* New language
|
||
*/
|
||
readonly newLanguage: string;
|
||
}
|
||
|
||
/**
|
||
* An event describing that the language configuration associated with a model has changed.
|
||
*/
|
||
export interface IModelLanguageConfigurationChangedEvent {
|
||
}
|
||
|
||
export interface IModelContentChange {
|
||
/**
|
||
* The range that got replaced.
|
||
*/
|
||
readonly range: IRange;
|
||
/**
|
||
* The offset of the range that got replaced.
|
||
*/
|
||
readonly rangeOffset: number;
|
||
/**
|
||
* The length of the range that got replaced.
|
||
*/
|
||
readonly rangeLength: number;
|
||
/**
|
||
* The new text for the range.
|
||
*/
|
||
readonly text: string;
|
||
}
|
||
|
||
/**
|
||
* An event describing a change in the text of a model.
|
||
*/
|
||
export interface IModelContentChangedEvent {
|
||
readonly changes: IModelContentChange[];
|
||
/**
|
||
* The (new) end-of-line character.
|
||
*/
|
||
readonly eol: string;
|
||
/**
|
||
* The new version id the model has transitioned to.
|
||
*/
|
||
readonly versionId: number;
|
||
/**
|
||
* Flag that indicates that this event was generated while undoing.
|
||
*/
|
||
readonly isUndoing: boolean;
|
||
/**
|
||
* Flag that indicates that this event was generated while redoing.
|
||
*/
|
||
readonly isRedoing: boolean;
|
||
/**
|
||
* Flag that indicates that all decorations were lost with this edit.
|
||
* The model has been reset to a new value.
|
||
*/
|
||
readonly isFlush: boolean;
|
||
}
|
||
|
||
/**
|
||
* An event describing that model decorations have changed.
|
||
*/
|
||
export interface IModelDecorationsChangedEvent {
|
||
readonly affectsMinimap: boolean;
|
||
readonly affectsOverviewRuler: boolean;
|
||
}
|
||
|
||
export interface IModelOptionsChangedEvent {
|
||
readonly tabSize: boolean;
|
||
readonly indentSize: boolean;
|
||
readonly insertSpaces: boolean;
|
||
readonly trimAutoWhitespace: boolean;
|
||
}
|
||
|
||
/**
|
||
* Describes the reason the cursor has changed its position.
|
||
*/
|
||
export enum CursorChangeReason {
|
||
/**
|
||
* Unknown or not set.
|
||
*/
|
||
NotSet = 0,
|
||
/**
|
||
* A `model.setValue()` was called.
|
||
*/
|
||
ContentFlush = 1,
|
||
/**
|
||
* The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers.
|
||
*/
|
||
RecoverFromMarkers = 2,
|
||
/**
|
||
* There was an explicit user gesture.
|
||
*/
|
||
Explicit = 3,
|
||
/**
|
||
* There was a Paste.
|
||
*/
|
||
Paste = 4,
|
||
/**
|
||
* There was an Undo.
|
||
*/
|
||
Undo = 5,
|
||
/**
|
||
* There was a Redo.
|
||
*/
|
||
Redo = 6
|
||
}
|
||
|
||
/**
|
||
* An event describing that the cursor position has changed.
|
||
*/
|
||
export interface ICursorPositionChangedEvent {
|
||
/**
|
||
* Primary cursor's position.
|
||
*/
|
||
readonly position: Position;
|
||
/**
|
||
* Secondary cursors' position.
|
||
*/
|
||
readonly secondaryPositions: Position[];
|
||
/**
|
||
* Reason.
|
||
*/
|
||
readonly reason: CursorChangeReason;
|
||
/**
|
||
* Source of the call that caused the event.
|
||
*/
|
||
readonly source: string;
|
||
}
|
||
|
||
/**
|
||
* An event describing that the cursor selection has changed.
|
||
*/
|
||
export interface ICursorSelectionChangedEvent {
|
||
/**
|
||
* The primary selection.
|
||
*/
|
||
readonly selection: Selection;
|
||
/**
|
||
* The secondary selections.
|
||
*/
|
||
readonly secondarySelections: Selection[];
|
||
/**
|
||
* The model version id.
|
||
*/
|
||
readonly modelVersionId: number;
|
||
/**
|
||
* The old selections.
|
||
*/
|
||
readonly oldSelections: Selection[] | null;
|
||
/**
|
||
* The model version id the that `oldSelections` refer to.
|
||
*/
|
||
readonly oldModelVersionId: number;
|
||
/**
|
||
* Source of the call that caused the event.
|
||
*/
|
||
readonly source: string;
|
||
/**
|
||
* Reason.
|
||
*/
|
||
readonly reason: CursorChangeReason;
|
||
}
|
||
|
||
export enum AccessibilitySupport {
|
||
/**
|
||
* This should be the browser case where it is not known if a screen reader is attached or no.
|
||
*/
|
||
Unknown = 0,
|
||
Disabled = 1,
|
||
Enabled = 2
|
||
}
|
||
|
||
/**
|
||
* Configuration options for auto closing quotes and brackets
|
||
*/
|
||
export type EditorAutoClosingStrategy = 'always' | 'languageDefined' | 'beforeWhitespace' | 'never';
|
||
|
||
/**
|
||
* Configuration options for auto wrapping quotes and brackets
|
||
*/
|
||
export type EditorAutoSurroundStrategy = 'languageDefined' | 'quotes' | 'brackets' | 'never';
|
||
|
||
/**
|
||
* Configuration options for typing over closing quotes or brackets
|
||
*/
|
||
export type EditorAutoClosingEditStrategy = 'always' | 'auto' | 'never';
|
||
|
||
/**
|
||
* Configuration options for auto indentation in the editor
|
||
*/
|
||
export enum EditorAutoIndentStrategy {
|
||
None = 0,
|
||
Keep = 1,
|
||
Brackets = 2,
|
||
Advanced = 3,
|
||
Full = 4
|
||
}
|
||
|
||
/**
|
||
* Configuration options for the editor.
|
||
*/
|
||
export interface IEditorOptions {
|
||
/**
|
||
* This editor is used inside a diff editor.
|
||
*/
|
||
inDiffEditor?: boolean;
|
||
/**
|
||
* The aria label for the editor's textarea (when it is focused).
|
||
*/
|
||
ariaLabel?: string;
|
||
/**
|
||
* The `tabindex` property of the editor's textarea
|
||
*/
|
||
tabIndex?: number;
|
||
/**
|
||
* Render vertical lines at the specified columns.
|
||
* Defaults to empty array.
|
||
*/
|
||
rulers?: (number | IRulerOption)[];
|
||
/**
|
||
* A string containing the word separators used when doing word navigation.
|
||
* Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?
|
||
*/
|
||
wordSeparators?: string;
|
||
/**
|
||
* Enable Linux primary clipboard.
|
||
* Defaults to true.
|
||
*/
|
||
selectionClipboard?: boolean;
|
||
/**
|
||
* Control the rendering of line numbers.
|
||
* If it is a function, it will be invoked when rendering a line number and the return value will be rendered.
|
||
* Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function).
|
||
* Otherwise, line numbers will not be rendered.
|
||
* Defaults to `on`.
|
||
*/
|
||
lineNumbers?: LineNumbersType;
|
||
/**
|
||
* Controls the minimal number of visible leading and trailing lines surrounding the cursor.
|
||
* Defaults to 0.
|
||
*/
|
||
cursorSurroundingLines?: number;
|
||
/**
|
||
* Controls when `cursorSurroundingLines` should be enforced
|
||
* Defaults to `default`, `cursorSurroundingLines` is not enforced when cursor position is changed
|
||
* by mouse.
|
||
*/
|
||
cursorSurroundingLinesStyle?: 'default' | 'all';
|
||
/**
|
||
* Render last line number when the file ends with a newline.
|
||
* Defaults to true.
|
||
*/
|
||
renderFinalNewline?: boolean;
|
||
/**
|
||
* Remove unusual line terminators like LINE SEPARATOR (LS), PARAGRAPH SEPARATOR (PS).
|
||
* Defaults to 'prompt'.
|
||
*/
|
||
unusualLineTerminators?: 'auto' | 'off' | 'prompt';
|
||
/**
|
||
* Should the corresponding line be selected when clicking on the line number?
|
||
* Defaults to true.
|
||
*/
|
||
selectOnLineNumbers?: boolean;
|
||
/**
|
||
* Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits.
|
||
* Defaults to 5.
|
||
*/
|
||
lineNumbersMinChars?: number;
|
||
/**
|
||
* Enable the rendering of the glyph margin.
|
||
* Defaults to true in vscode and to false in monaco-editor.
|
||
*/
|
||
glyphMargin?: boolean;
|
||
/**
|
||
* The width reserved for line decorations (in px).
|
||
* Line decorations are placed between line numbers and the editor content.
|
||
* You can pass in a string in the format floating point followed by "ch". e.g. 1.3ch.
|
||
* Defaults to 10.
|
||
*/
|
||
lineDecorationsWidth?: number | string;
|
||
/**
|
||
* When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle.
|
||
* This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport.
|
||
* Defaults to 30 (px).
|
||
*/
|
||
revealHorizontalRightPadding?: number;
|
||
/**
|
||
* Render the editor selection with rounded borders.
|
||
* Defaults to true.
|
||
*/
|
||
roundedSelection?: boolean;
|
||
/**
|
||
* Class name to be added to the editor.
|
||
*/
|
||
extraEditorClassName?: string;
|
||
/**
|
||
* Should the editor be read only. See also `domReadOnly`.
|
||
* Defaults to false.
|
||
*/
|
||
readOnly?: boolean;
|
||
/**
|
||
* Should the textarea used for input use the DOM `readonly` attribute.
|
||
* Defaults to false.
|
||
*/
|
||
domReadOnly?: boolean;
|
||
/**
|
||
* Enable linked editing.
|
||
* Defaults to false.
|
||
*/
|
||
linkedEditing?: boolean;
|
||
/**
|
||
* deprecated, use linkedEditing instead
|
||
*/
|
||
renameOnType?: boolean;
|
||
/**
|
||
* Should the editor render validation decorations.
|
||
* Defaults to editable.
|
||
*/
|
||
renderValidationDecorations?: 'editable' | 'on' | 'off';
|
||
/**
|
||
* Control the behavior and rendering of the scrollbars.
|
||
*/
|
||
scrollbar?: IEditorScrollbarOptions;
|
||
/**
|
||
* Control the behavior and rendering of the minimap.
|
||
*/
|
||
minimap?: IEditorMinimapOptions;
|
||
/**
|
||
* Control the behavior of the find widget.
|
||
*/
|
||
find?: IEditorFindOptions;
|
||
/**
|
||
* Display overflow widgets as `fixed`.
|
||
* Defaults to `false`.
|
||
*/
|
||
fixedOverflowWidgets?: boolean;
|
||
/**
|
||
* The number of vertical lanes the overview ruler should render.
|
||
* Defaults to 3.
|
||
*/
|
||
overviewRulerLanes?: number;
|
||
/**
|
||
* Controls if a border should be drawn around the overview ruler.
|
||
* Defaults to `true`.
|
||
*/
|
||
overviewRulerBorder?: boolean;
|
||
/**
|
||
* Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'.
|
||
* Defaults to 'blink'.
|
||
*/
|
||
cursorBlinking?: 'blink' | 'smooth' | 'phase' | 'expand' | 'solid';
|
||
/**
|
||
* Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl.
|
||
* Defaults to false.
|
||
*/
|
||
mouseWheelZoom?: boolean;
|
||
/**
|
||
* Control the mouse pointer style, either 'text' or 'default' or 'copy'
|
||
* Defaults to 'text'
|
||
*/
|
||
mouseStyle?: 'text' | 'default' | 'copy';
|
||
/**
|
||
* Enable smooth caret animation.
|
||
* Defaults to false.
|
||
*/
|
||
cursorSmoothCaretAnimation?: boolean;
|
||
/**
|
||
* Control the cursor style, either 'block' or 'line'.
|
||
* Defaults to 'line'.
|
||
*/
|
||
cursorStyle?: 'line' | 'block' | 'underline' | 'line-thin' | 'block-outline' | 'underline-thin';
|
||
/**
|
||
* Control the width of the cursor when cursorStyle is set to 'line'
|
||
*/
|
||
cursorWidth?: number;
|
||
/**
|
||
* Enable font ligatures.
|
||
* Defaults to false.
|
||
*/
|
||
fontLigatures?: boolean | string;
|
||
/**
|
||
* Disable the use of `transform: translate3d(0px, 0px, 0px)` for the editor margin and lines layers.
|
||
* The usage of `transform: translate3d(0px, 0px, 0px)` acts as a hint for browsers to create an extra layer.
|
||
* Defaults to false.
|
||
*/
|
||
disableLayerHinting?: boolean;
|
||
/**
|
||
* Disable the optimizations for monospace fonts.
|
||
* Defaults to false.
|
||
*/
|
||
disableMonospaceOptimizations?: boolean;
|
||
/**
|
||
* Should the cursor be hidden in the overview ruler.
|
||
* Defaults to false.
|
||
*/
|
||
hideCursorInOverviewRuler?: boolean;
|
||
/**
|
||
* Enable that scrolling can go one screen size after the last line.
|
||
* Defaults to true.
|
||
*/
|
||
scrollBeyondLastLine?: boolean;
|
||
/**
|
||
* Enable that scrolling can go beyond the last column by a number of columns.
|
||
* Defaults to 5.
|
||
*/
|
||
scrollBeyondLastColumn?: number;
|
||
/**
|
||
* Enable that the editor animates scrolling to a position.
|
||
* Defaults to false.
|
||
*/
|
||
smoothScrolling?: boolean;
|
||
/**
|
||
* Enable that the editor will install an interval to check if its container dom node size has changed.
|
||
* Enabling this might have a severe performance impact.
|
||
* Defaults to false.
|
||
*/
|
||
automaticLayout?: boolean;
|
||
/**
|
||
* Control the wrapping of the editor.
|
||
* When `wordWrap` = "off", the lines will never wrap.
|
||
* When `wordWrap` = "on", the lines will wrap at the viewport width.
|
||
* When `wordWrap` = "wordWrapColumn", the lines will wrap at `wordWrapColumn`.
|
||
* When `wordWrap` = "bounded", the lines will wrap at min(viewport width, wordWrapColumn).
|
||
* Defaults to "off".
|
||
*/
|
||
wordWrap?: 'off' | 'on' | 'wordWrapColumn' | 'bounded';
|
||
/**
|
||
* Override the `wordWrap` setting.
|
||
*/
|
||
wordWrapOverride1?: 'off' | 'on' | 'inherit';
|
||
/**
|
||
* Override the `wordWrapOverride1` setting.
|
||
*/
|
||
wordWrapOverride2?: 'off' | 'on' | 'inherit';
|
||
/**
|
||
* Control the wrapping of the editor.
|
||
* When `wordWrap` = "off", the lines will never wrap.
|
||
* When `wordWrap` = "on", the lines will wrap at the viewport width.
|
||
* When `wordWrap` = "wordWrapColumn", the lines will wrap at `wordWrapColumn`.
|
||
* When `wordWrap` = "bounded", the lines will wrap at min(viewport width, wordWrapColumn).
|
||
* Defaults to 80.
|
||
*/
|
||
wordWrapColumn?: number;
|
||
/**
|
||
* Control indentation of wrapped lines. Can be: 'none', 'same', 'indent' or 'deepIndent'.
|
||
* Defaults to 'same' in vscode and to 'none' in monaco-editor.
|
||
*/
|
||
wrappingIndent?: 'none' | 'same' | 'indent' | 'deepIndent';
|
||
/**
|
||
* Controls the wrapping strategy to use.
|
||
* Defaults to 'simple'.
|
||
*/
|
||
wrappingStrategy?: 'simple' | 'advanced';
|
||
/**
|
||
* Configure word wrapping characters. A break will be introduced before these characters.
|
||
* Defaults to '([{‘“〈《「『【〔([{「£¥$£¥++'.
|
||
*/
|
||
wordWrapBreakBeforeCharacters?: string;
|
||
/**
|
||
* Configure word wrapping characters. A break will be introduced after these characters.
|
||
* Defaults to ' \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」'.
|
||
*/
|
||
wordWrapBreakAfterCharacters?: string;
|
||
/**
|
||
* Performance guard: Stop rendering a line after x characters.
|
||
* Defaults to 10000.
|
||
* Use -1 to never stop rendering
|
||
*/
|
||
stopRenderingLineAfter?: number;
|
||
/**
|
||
* Configure the editor's hover.
|
||
*/
|
||
hover?: IEditorHoverOptions;
|
||
/**
|
||
* Enable detecting links and making them clickable.
|
||
* Defaults to true.
|
||
*/
|
||
links?: boolean;
|
||
/**
|
||
* Enable inline color decorators and color picker rendering.
|
||
*/
|
||
colorDecorators?: boolean;
|
||
/**
|
||
* Control the behaviour of comments in the editor.
|
||
*/
|
||
comments?: IEditorCommentsOptions;
|
||
/**
|
||
* Enable custom contextmenu.
|
||
* Defaults to true.
|
||
*/
|
||
contextmenu?: boolean;
|
||
/**
|
||
* A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.
|
||
* Defaults to 1.
|
||
*/
|
||
mouseWheelScrollSensitivity?: number;
|
||
/**
|
||
* FastScrolling mulitplier speed when pressing `Alt`
|
||
* Defaults to 5.
|
||
*/
|
||
fastScrollSensitivity?: number;
|
||
/**
|
||
* Enable that the editor scrolls only the predominant axis. Prevents horizontal drift when scrolling vertically on a trackpad.
|
||
* Defaults to true.
|
||
*/
|
||
scrollPredominantAxis?: boolean;
|
||
/**
|
||
* Enable that the selection with the mouse and keys is doing column selection.
|
||
* Defaults to false.
|
||
*/
|
||
columnSelection?: boolean;
|
||
/**
|
||
* The modifier to be used to add multiple cursors with the mouse.
|
||
* Defaults to 'alt'
|
||
*/
|
||
multiCursorModifier?: 'ctrlCmd' | 'alt';
|
||
/**
|
||
* Merge overlapping selections.
|
||
* Defaults to true
|
||
*/
|
||
multiCursorMergeOverlapping?: boolean;
|
||
/**
|
||
* Configure the behaviour when pasting a text with the line count equal to the cursor count.
|
||
* Defaults to 'spread'.
|
||
*/
|
||
multiCursorPaste?: 'spread' | 'full';
|
||
/**
|
||
* Configure the editor's accessibility support.
|
||
* Defaults to 'auto'. It is best to leave this to 'auto'.
|
||
*/
|
||
accessibilitySupport?: 'auto' | 'off' | 'on';
|
||
/**
|
||
* Controls the number of lines in the editor that can be read out by a screen reader
|
||
*/
|
||
accessibilityPageSize?: number;
|
||
/**
|
||
* Suggest options.
|
||
*/
|
||
suggest?: ISuggestOptions;
|
||
inlineSuggest?: IInlineSuggestOptions;
|
||
/**
|
||
* Smart select options.
|
||
*/
|
||
smartSelect?: ISmartSelectOptions;
|
||
/**
|
||
*
|
||
*/
|
||
gotoLocation?: IGotoLocationOptions;
|
||
/**
|
||
* Enable quick suggestions (shadow suggestions)
|
||
* Defaults to true.
|
||
*/
|
||
quickSuggestions?: boolean | IQuickSuggestionsOptions;
|
||
/**
|
||
* Quick suggestions show delay (in ms)
|
||
* Defaults to 10 (ms)
|
||
*/
|
||
quickSuggestionsDelay?: number;
|
||
/**
|
||
* Controls the spacing around the editor.
|
||
*/
|
||
padding?: IEditorPaddingOptions;
|
||
/**
|
||
* Parameter hint options.
|
||
*/
|
||
parameterHints?: IEditorParameterHintOptions;
|
||
/**
|
||
* Options for auto closing brackets.
|
||
* Defaults to language defined behavior.
|
||
*/
|
||
autoClosingBrackets?: EditorAutoClosingStrategy;
|
||
/**
|
||
* Options for auto closing quotes.
|
||
* Defaults to language defined behavior.
|
||
*/
|
||
autoClosingQuotes?: EditorAutoClosingStrategy;
|
||
/**
|
||
* Options for pressing backspace near quotes or bracket pairs.
|
||
*/
|
||
autoClosingDelete?: EditorAutoClosingEditStrategy;
|
||
/**
|
||
* Options for typing over closing quotes or brackets.
|
||
*/
|
||
autoClosingOvertype?: EditorAutoClosingEditStrategy;
|
||
/**
|
||
* Options for auto surrounding.
|
||
* Defaults to always allowing auto surrounding.
|
||
*/
|
||
autoSurround?: EditorAutoSurroundStrategy;
|
||
/**
|
||
* Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.
|
||
* Defaults to advanced.
|
||
*/
|
||
autoIndent?: 'none' | 'keep' | 'brackets' | 'advanced' | 'full';
|
||
/**
|
||
* Emulate selection behaviour of tab characters when using spaces for indentation.
|
||
* This means selection will stick to tab stops.
|
||
*/
|
||
stickyTabStops?: boolean;
|
||
/**
|
||
* Enable format on type.
|
||
* Defaults to false.
|
||
*/
|
||
formatOnType?: boolean;
|
||
/**
|
||
* Enable format on paste.
|
||
* Defaults to false.
|
||
*/
|
||
formatOnPaste?: boolean;
|
||
/**
|
||
* Controls if the editor should allow to move selections via drag and drop.
|
||
* Defaults to false.
|
||
*/
|
||
dragAndDrop?: boolean;
|
||
/**
|
||
* Enable the suggestion box to pop-up on trigger characters.
|
||
* Defaults to true.
|
||
*/
|
||
suggestOnTriggerCharacters?: boolean;
|
||
/**
|
||
* Accept suggestions on ENTER.
|
||
* Defaults to 'on'.
|
||
*/
|
||
acceptSuggestionOnEnter?: 'on' | 'smart' | 'off';
|
||
/**
|
||
* Accept suggestions on provider defined characters.
|
||
* Defaults to true.
|
||
*/
|
||
acceptSuggestionOnCommitCharacter?: boolean;
|
||
/**
|
||
* Enable snippet suggestions. Default to 'true'.
|
||
*/
|
||
snippetSuggestions?: 'top' | 'bottom' | 'inline' | 'none';
|
||
/**
|
||
* Copying without a selection copies the current line.
|
||
*/
|
||
emptySelectionClipboard?: boolean;
|
||
/**
|
||
* Syntax highlighting is copied.
|
||
*/
|
||
copyWithSyntaxHighlighting?: boolean;
|
||
/**
|
||
* The history mode for suggestions.
|
||
*/
|
||
suggestSelection?: 'first' | 'recentlyUsed' | 'recentlyUsedByPrefix';
|
||
/**
|
||
* The font size for the suggest widget.
|
||
* Defaults to the editor font size.
|
||
*/
|
||
suggestFontSize?: number;
|
||
/**
|
||
* The line height for the suggest widget.
|
||
* Defaults to the editor line height.
|
||
*/
|
||
suggestLineHeight?: number;
|
||
/**
|
||
* Enable tab completion.
|
||
*/
|
||
tabCompletion?: 'on' | 'off' | 'onlySnippets';
|
||
/**
|
||
* Enable selection highlight.
|
||
* Defaults to true.
|
||
*/
|
||
selectionHighlight?: boolean;
|
||
/**
|
||
* Enable semantic occurrences highlight.
|
||
* Defaults to true.
|
||
*/
|
||
occurrencesHighlight?: boolean;
|
||
/**
|
||
* Show code lens
|
||
* Defaults to true.
|
||
*/
|
||
codeLens?: boolean;
|
||
/**
|
||
* Code lens font family. Defaults to editor font family.
|
||
*/
|
||
codeLensFontFamily?: string;
|
||
/**
|
||
* Code lens font size. Default to 90% of the editor font size
|
||
*/
|
||
codeLensFontSize?: number;
|
||
/**
|
||
* Control the behavior and rendering of the code action lightbulb.
|
||
*/
|
||
lightbulb?: IEditorLightbulbOptions;
|
||
/**
|
||
* Timeout for running code actions on save.
|
||
*/
|
||
codeActionsOnSaveTimeout?: number;
|
||
/**
|
||
* Enable code folding.
|
||
* Defaults to true.
|
||
*/
|
||
folding?: boolean;
|
||
/**
|
||
* Selects the folding strategy. 'auto' uses the strategies contributed for the current document, 'indentation' uses the indentation based folding strategy.
|
||
* Defaults to 'auto'.
|
||
*/
|
||
foldingStrategy?: 'auto' | 'indentation';
|
||
/**
|
||
* Enable highlight for folded regions.
|
||
* Defaults to true.
|
||
*/
|
||
foldingHighlight?: boolean;
|
||
/**
|
||
* Controls whether the fold actions in the gutter stay always visible or hide unless the mouse is over the gutter.
|
||
* Defaults to 'mouseover'.
|
||
*/
|
||
showFoldingControls?: 'always' | 'mouseover';
|
||
/**
|
||
* Controls whether clicking on the empty content after a folded line will unfold the line.
|
||
* Defaults to false.
|
||
*/
|
||
unfoldOnClickAfterEndOfLine?: boolean;
|
||
/**
|
||
* Enable highlighting of matching brackets.
|
||
* Defaults to 'always'.
|
||
*/
|
||
matchBrackets?: 'never' | 'near' | 'always';
|
||
/**
|
||
* Enable rendering of whitespace.
|
||
* Defaults to none.
|
||
*/
|
||
renderWhitespace?: 'none' | 'boundary' | 'selection' | 'trailing' | 'all';
|
||
/**
|
||
* Enable rendering of control characters.
|
||
* Defaults to false.
|
||
*/
|
||
renderControlCharacters?: boolean;
|
||
/**
|
||
* Enable rendering of indent guides.
|
||
* Defaults to true.
|
||
*/
|
||
renderIndentGuides?: boolean;
|
||
/**
|
||
* Enable highlighting of the active indent guide.
|
||
* Defaults to true.
|
||
*/
|
||
highlightActiveIndentGuide?: boolean;
|
||
/**
|
||
* Enable rendering of current line highlight.
|
||
* Defaults to all.
|
||
*/
|
||
renderLineHighlight?: 'none' | 'gutter' | 'line' | 'all';
|
||
/**
|
||
* Control if the current line highlight should be rendered only the editor is focused.
|
||
* Defaults to false.
|
||
*/
|
||
renderLineHighlightOnlyWhenFocus?: boolean;
|
||
/**
|
||
* Inserting and deleting whitespace follows tab stops.
|
||
*/
|
||
useTabStops?: boolean;
|
||
/**
|
||
* The font family
|
||
*/
|
||
fontFamily?: string;
|
||
/**
|
||
* The font weight
|
||
*/
|
||
fontWeight?: string;
|
||
/**
|
||
* The font size
|
||
*/
|
||
fontSize?: number;
|
||
/**
|
||
* The line height
|
||
*/
|
||
lineHeight?: number;
|
||
/**
|
||
* The letter spacing
|
||
*/
|
||
letterSpacing?: number;
|
||
/**
|
||
* Controls fading out of unused variables.
|
||
*/
|
||
showUnused?: boolean;
|
||
/**
|
||
* Controls whether to focus the inline editor in the peek widget by default.
|
||
* Defaults to false.
|
||
*/
|
||
peekWidgetDefaultFocus?: 'tree' | 'editor';
|
||
/**
|
||
* Controls whether the definition link opens element in the peek widget.
|
||
* Defaults to false.
|
||
*/
|
||
definitionLinkOpensInPeek?: boolean;
|
||
/**
|
||
* Controls strikethrough deprecated variables.
|
||
*/
|
||
showDeprecated?: boolean;
|
||
/**
|
||
* Control the behavior and rendering of the inline hints.
|
||
*/
|
||
inlayHints?: IEditorInlayHintsOptions;
|
||
/**
|
||
* Control if the editor should use shadow DOM.
|
||
*/
|
||
useShadowDOM?: boolean;
|
||
}
|
||
|
||
/**
|
||
* Configuration options for the diff editor.
|
||
*/
|
||
export interface IDiffEditorOptions extends IEditorOptions {
|
||
/**
|
||
* Allow the user to resize the diff editor split view.
|
||
* Defaults to true.
|
||
*/
|
||
enableSplitViewResizing?: boolean;
|
||
/**
|
||
* Render the differences in two side-by-side editors.
|
||
* Defaults to true.
|
||
*/
|
||
renderSideBySide?: boolean;
|
||
/**
|
||
* Timeout in milliseconds after which diff computation is cancelled.
|
||
* Defaults to 5000.
|
||
*/
|
||
maxComputationTime?: number;
|
||
/**
|
||
* Compute the diff by ignoring leading/trailing whitespace
|
||
* Defaults to true.
|
||
*/
|
||
ignoreTrimWhitespace?: boolean;
|
||
/**
|
||
* Render +/- indicators for added/deleted changes.
|
||
* Defaults to true.
|
||
*/
|
||
renderIndicators?: boolean;
|
||
/**
|
||
* Original model should be editable?
|
||
* Defaults to false.
|
||
*/
|
||
originalEditable?: boolean;
|
||
/**
|
||
* Should the diff editor enable code lens?
|
||
* Defaults to false.
|
||
*/
|
||
diffCodeLens?: boolean;
|
||
/**
|
||
* Is the diff editor inside another editor
|
||
* Defaults to false
|
||
*/
|
||
isInEmbeddedEditor?: boolean;
|
||
/**
|
||
* Is the diff editor should render overview ruler
|
||
* Defaults to true
|
||
*/
|
||
renderOverviewRuler?: boolean;
|
||
/**
|
||
* Control the wrapping of the diff editor.
|
||
*/
|
||
diffWordWrap?: 'off' | 'on' | 'inherit';
|
||
/**
|
||
* Aria label for original editor.
|
||
*/
|
||
originalAriaLabel?: string;
|
||
/**
|
||
* Aria label for modifed editor.
|
||
*/
|
||
modifiedAriaLabel?: string;
|
||
}
|
||
|
||
/**
|
||
* An event describing that the configuration of the editor has changed.
|
||
*/
|
||
export class ConfigurationChangedEvent {
|
||
hasChanged(id: EditorOption): boolean;
|
||
}
|
||
|
||
/**
|
||
* All computed editor options.
|
||
*/
|
||
export interface IComputedEditorOptions {
|
||
get<T extends EditorOption>(id: T): FindComputedEditorOptionValueById<T>;
|
||
}
|
||
|
||
export interface IEditorOption<K1 extends EditorOption, V> {
|
||
readonly id: K1;
|
||
readonly name: string;
|
||
defaultValue: V;
|
||
}
|
||
|
||
/**
|
||
* Configuration options for editor comments
|
||
*/
|
||
export interface IEditorCommentsOptions {
|
||
/**
|
||
* Insert a space after the line comment token and inside the block comments tokens.
|
||
* Defaults to true.
|
||
*/
|
||
insertSpace?: boolean;
|
||
/**
|
||
* Ignore empty lines when inserting line comments.
|
||
* Defaults to true.
|
||
*/
|
||
ignoreEmptyLines?: boolean;
|
||
}
|
||
|
||
export type EditorCommentsOptions = Readonly<Required<IEditorCommentsOptions>>;
|
||
|
||
/**
|
||
* The kind of animation in which the editor's cursor should be rendered.
|
||
*/
|
||
export enum TextEditorCursorBlinkingStyle {
|
||
/**
|
||
* Hidden
|
||
*/
|
||
Hidden = 0,
|
||
/**
|
||
* Blinking
|
||
*/
|
||
Blink = 1,
|
||
/**
|
||
* Blinking with smooth fading
|
||
*/
|
||
Smooth = 2,
|
||
/**
|
||
* Blinking with prolonged filled state and smooth fading
|
||
*/
|
||
Phase = 3,
|
||
/**
|
||
* Expand collapse animation on the y axis
|
||
*/
|
||
Expand = 4,
|
||
/**
|
||
* No-Blinking
|
||
*/
|
||
Solid = 5
|
||
}
|
||
|
||
/**
|
||
* The style in which the editor's cursor should be rendered.
|
||
*/
|
||
export enum TextEditorCursorStyle {
|
||
/**
|
||
* As a vertical line (sitting between two characters).
|
||
*/
|
||
Line = 1,
|
||
/**
|
||
* As a block (sitting on top of a character).
|
||
*/
|
||
Block = 2,
|
||
/**
|
||
* As a horizontal line (sitting under a character).
|
||
*/
|
||
Underline = 3,
|
||
/**
|
||
* As a thin vertical line (sitting between two characters).
|
||
*/
|
||
LineThin = 4,
|
||
/**
|
||
* As an outlined block (sitting on top of a character).
|
||
*/
|
||
BlockOutline = 5,
|
||
/**
|
||
* As a thin horizontal line (sitting under a character).
|
||
*/
|
||
UnderlineThin = 6
|
||
}
|
||
|
||
/**
|
||
* Configuration options for editor find widget
|
||
*/
|
||
export interface IEditorFindOptions {
|
||
/**
|
||
* Controls whether the cursor should move to find matches while typing.
|
||
*/
|
||
cursorMoveOnType?: boolean;
|
||
/**
|
||
* Controls if we seed search string in the Find Widget with editor selection.
|
||
*/
|
||
seedSearchStringFromSelection?: boolean;
|
||
/**
|
||
* Controls if Find in Selection flag is turned on in the editor.
|
||
*/
|
||
autoFindInSelection?: 'never' | 'always' | 'multiline';
|
||
addExtraSpaceOnTop?: boolean;
|
||
/**
|
||
* Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found
|
||
*/
|
||
loop?: boolean;
|
||
}
|
||
|
||
export type EditorFindOptions = Readonly<Required<IEditorFindOptions>>;
|
||
|
||
export type GoToLocationValues = 'peek' | 'gotoAndPeek' | 'goto';
|
||
|
||
/**
|
||
* Configuration options for go to location
|
||
*/
|
||
export interface IGotoLocationOptions {
|
||
multiple?: GoToLocationValues;
|
||
multipleDefinitions?: GoToLocationValues;
|
||
multipleTypeDefinitions?: GoToLocationValues;
|
||
multipleDeclarations?: GoToLocationValues;
|
||
multipleImplementations?: GoToLocationValues;
|
||
multipleReferences?: GoToLocationValues;
|
||
alternativeDefinitionCommand?: string;
|
||
alternativeTypeDefinitionCommand?: string;
|
||
alternativeDeclarationCommand?: string;
|
||
alternativeImplementationCommand?: string;
|
||
alternativeReferenceCommand?: string;
|
||
}
|
||
|
||
export type GoToLocationOptions = Readonly<Required<IGotoLocationOptions>>;
|
||
|
||
/**
|
||
* Configuration options for editor hover
|
||
*/
|
||
export interface IEditorHoverOptions {
|
||
/**
|
||
* Enable the hover.
|
||
* Defaults to true.
|
||
*/
|
||
enabled?: boolean;
|
||
/**
|
||
* Delay for showing the hover.
|
||
* Defaults to 300.
|
||
*/
|
||
delay?: number;
|
||
/**
|
||
* Is the hover sticky such that it can be clicked and its contents selected?
|
||
* Defaults to true.
|
||
*/
|
||
sticky?: boolean;
|
||
}
|
||
|
||
export type EditorHoverOptions = Readonly<Required<IEditorHoverOptions>>;
|
||
|
||
/**
|
||
* A description for the overview ruler position.
|
||
*/
|
||
export interface OverviewRulerPosition {
|
||
/**
|
||
* Width of the overview ruler
|
||
*/
|
||
readonly width: number;
|
||
/**
|
||
* Height of the overview ruler
|
||
*/
|
||
readonly height: number;
|
||
/**
|
||
* Top position for the overview ruler
|
||
*/
|
||
readonly top: number;
|
||
/**
|
||
* Right position for the overview ruler
|
||
*/
|
||
readonly right: number;
|
||
}
|
||
|
||
export enum RenderMinimap {
|
||
None = 0,
|
||
Text = 1,
|
||
Blocks = 2
|
||
}
|
||
|
||
/**
|
||
* The internal layout details of the editor.
|
||
*/
|
||
export interface EditorLayoutInfo {
|
||
/**
|
||
* Full editor width.
|
||
*/
|
||
readonly width: number;
|
||
/**
|
||
* Full editor height.
|
||
*/
|
||
readonly height: number;
|
||
/**
|
||
* Left position for the glyph margin.
|
||
*/
|
||
readonly glyphMarginLeft: number;
|
||
/**
|
||
* The width of the glyph margin.
|
||
*/
|
||
readonly glyphMarginWidth: number;
|
||
/**
|
||
* Left position for the line numbers.
|
||
*/
|
||
readonly lineNumbersLeft: number;
|
||
/**
|
||
* The width of the line numbers.
|
||
*/
|
||
readonly lineNumbersWidth: number;
|
||
/**
|
||
* Left position for the line decorations.
|
||
*/
|
||
readonly decorationsLeft: number;
|
||
/**
|
||
* The width of the line decorations.
|
||
*/
|
||
readonly decorationsWidth: number;
|
||
/**
|
||
* Left position for the content (actual text)
|
||
*/
|
||
readonly contentLeft: number;
|
||
/**
|
||
* The width of the content (actual text)
|
||
*/
|
||
readonly contentWidth: number;
|
||
/**
|
||
* Layout information for the minimap
|
||
*/
|
||
readonly minimap: EditorMinimapLayoutInfo;
|
||
/**
|
||
* The number of columns (of typical characters) fitting on a viewport line.
|
||
*/
|
||
readonly viewportColumn: number;
|
||
readonly isWordWrapMinified: boolean;
|
||
readonly isViewportWrapping: boolean;
|
||
readonly wrappingColumn: number;
|
||
/**
|
||
* The width of the vertical scrollbar.
|
||
*/
|
||
readonly verticalScrollbarWidth: number;
|
||
/**
|
||
* The height of the horizontal scrollbar.
|
||
*/
|
||
readonly horizontalScrollbarHeight: number;
|
||
/**
|
||
* The position of the overview ruler.
|
||
*/
|
||
readonly overviewRuler: OverviewRulerPosition;
|
||
}
|
||
|
||
/**
|
||
* The internal layout details of the editor.
|
||
*/
|
||
export interface EditorMinimapLayoutInfo {
|
||
readonly renderMinimap: RenderMinimap;
|
||
readonly minimapLeft: number;
|
||
readonly minimapWidth: number;
|
||
readonly minimapHeightIsEditorHeight: boolean;
|
||
readonly minimapIsSampling: boolean;
|
||
readonly minimapScale: number;
|
||
readonly minimapLineHeight: number;
|
||
readonly minimapCanvasInnerWidth: number;
|
||
readonly minimapCanvasInnerHeight: number;
|
||
readonly minimapCanvasOuterWidth: number;
|
||
readonly minimapCanvasOuterHeight: number;
|
||
}
|
||
|
||
/**
|
||
* Configuration options for editor lightbulb
|
||
*/
|
||
export interface IEditorLightbulbOptions {
|
||
/**
|
||
* Enable the lightbulb code action.
|
||
* Defaults to true.
|
||
*/
|
||
enabled?: boolean;
|
||
}
|
||
|
||
export type EditorLightbulbOptions = Readonly<Required<IEditorLightbulbOptions>>;
|
||
|
||
/**
|
||
* Configuration options for editor inlayHints
|
||
*/
|
||
export interface IEditorInlayHintsOptions {
|
||
/**
|
||
* Enable the inline hints.
|
||
* Defaults to true.
|
||
*/
|
||
enabled?: boolean;
|
||
/**
|
||
* Font size of inline hints.
|
||
* Default to 90% of the editor font size.
|
||
*/
|
||
fontSize?: number;
|
||
/**
|
||
* Font family of inline hints.
|
||
* Defaults to editor font family.
|
||
*/
|
||
fontFamily?: string;
|
||
}
|
||
|
||
export type EditorInlayHintsOptions = Readonly<Required<IEditorInlayHintsOptions>>;
|
||
|
||
/**
|
||
* Configuration options for editor minimap
|
||
*/
|
||
export interface IEditorMinimapOptions {
|
||
/**
|
||
* Enable the rendering of the minimap.
|
||
* Defaults to true.
|
||
*/
|
||
enabled?: boolean;
|
||
/**
|
||
* Control the side of the minimap in editor.
|
||
* Defaults to 'right'.
|
||
*/
|
||
side?: 'right' | 'left';
|
||
/**
|
||
* Control the minimap rendering mode.
|
||
* Defaults to 'actual'.
|
||
*/
|
||
size?: 'proportional' | 'fill' | 'fit';
|
||
/**
|
||
* Control the rendering of the minimap slider.
|
||
* Defaults to 'mouseover'.
|
||
*/
|
||
showSlider?: 'always' | 'mouseover';
|
||
/**
|
||
* Render the actual text on a line (as opposed to color blocks).
|
||
* Defaults to true.
|
||
*/
|
||
renderCharacters?: boolean;
|
||
/**
|
||
* Limit the width of the minimap to render at most a certain number of columns.
|
||
* Defaults to 120.
|
||
*/
|
||
maxColumn?: number;
|
||
/**
|
||
* Relative size of the font in the minimap. Defaults to 1.
|
||
*/
|
||
scale?: number;
|
||
}
|
||
|
||
export type EditorMinimapOptions = Readonly<Required<IEditorMinimapOptions>>;
|
||
|
||
/**
|
||
* Configuration options for editor padding
|
||
*/
|
||
export interface IEditorPaddingOptions {
|
||
/**
|
||
* Spacing between top edge of editor and first line.
|
||
*/
|
||
top?: number;
|
||
/**
|
||
* Spacing between bottom edge of editor and last line.
|
||
*/
|
||
bottom?: number;
|
||
}
|
||
|
||
export interface InternalEditorPaddingOptions {
|
||
readonly top: number;
|
||
readonly bottom: number;
|
||
}
|
||
|
||
/**
|
||
* Configuration options for parameter hints
|
||
*/
|
||
export interface IEditorParameterHintOptions {
|
||
/**
|
||
* Enable parameter hints.
|
||
* Defaults to true.
|
||
*/
|
||
enabled?: boolean;
|
||
/**
|
||
* Enable cycling of parameter hints.
|
||
* Defaults to false.
|
||
*/
|
||
cycle?: boolean;
|
||
}
|
||
|
||
export type InternalParameterHintOptions = Readonly<Required<IEditorParameterHintOptions>>;
|
||
|
||
/**
|
||
* Configuration options for quick suggestions
|
||
*/
|
||
export interface IQuickSuggestionsOptions {
|
||
other?: boolean;
|
||
comments?: boolean;
|
||
strings?: boolean;
|
||
}
|
||
|
||
export type ValidQuickSuggestionsOptions = boolean | Readonly<Required<IQuickSuggestionsOptions>>;
|
||
|
||
export type LineNumbersType = 'on' | 'off' | 'relative' | 'interval' | ((lineNumber: number) => string);
|
||
|
||
export enum RenderLineNumbersType {
|
||
Off = 0,
|
||
On = 1,
|
||
Relative = 2,
|
||
Interval = 3,
|
||
Custom = 4
|
||
}
|
||
|
||
export interface InternalEditorRenderLineNumbersOptions {
|
||
readonly renderType: RenderLineNumbersType;
|
||
readonly renderFn: ((lineNumber: number) => string) | null;
|
||
}
|
||
|
||
export interface IRulerOption {
|
||
readonly column: number;
|
||
readonly color: string | null;
|
||
}
|
||
|
||
/**
|
||
* Configuration options for editor scrollbars
|
||
*/
|
||
export interface IEditorScrollbarOptions {
|
||
/**
|
||
* The size of arrows (if displayed).
|
||
* Defaults to 11.
|
||
*/
|
||
arrowSize?: number;
|
||
/**
|
||
* Render vertical scrollbar.
|
||
* Defaults to 'auto'.
|
||
*/
|
||
vertical?: 'auto' | 'visible' | 'hidden';
|
||
/**
|
||
* Render horizontal scrollbar.
|
||
* Defaults to 'auto'.
|
||
*/
|
||
horizontal?: 'auto' | 'visible' | 'hidden';
|
||
/**
|
||
* Cast horizontal and vertical shadows when the content is scrolled.
|
||
* Defaults to true.
|
||
*/
|
||
useShadows?: boolean;
|
||
/**
|
||
* Render arrows at the top and bottom of the vertical scrollbar.
|
||
* Defaults to false.
|
||
*/
|
||
verticalHasArrows?: boolean;
|
||
/**
|
||
* Render arrows at the left and right of the horizontal scrollbar.
|
||
* Defaults to false.
|
||
*/
|
||
horizontalHasArrows?: boolean;
|
||
/**
|
||
* Listen to mouse wheel events and react to them by scrolling.
|
||
* Defaults to true.
|
||
*/
|
||
handleMouseWheel?: boolean;
|
||
/**
|
||
* Always consume mouse wheel events (always call preventDefault() and stopPropagation() on the browser events).
|
||
* Defaults to true.
|
||
*/
|
||
alwaysConsumeMouseWheel?: boolean;
|
||
/**
|
||
* Height in pixels for the horizontal scrollbar.
|
||
* Defaults to 10 (px).
|
||
*/
|
||
horizontalScrollbarSize?: number;
|
||
/**
|
||
* Width in pixels for the vertical scrollbar.
|
||
* Defaults to 10 (px).
|
||
*/
|
||
verticalScrollbarSize?: number;
|
||
/**
|
||
* Width in pixels for the vertical slider.
|
||
* Defaults to `verticalScrollbarSize`.
|
||
*/
|
||
verticalSliderSize?: number;
|
||
/**
|
||
* Height in pixels for the horizontal slider.
|
||
* Defaults to `horizontalScrollbarSize`.
|
||
*/
|
||
horizontalSliderSize?: number;
|
||
/**
|
||
* Scroll gutter clicks move by page vs jump to position.
|
||
* Defaults to false.
|
||
*/
|
||
scrollByPage?: boolean;
|
||
}
|
||
|
||
export interface InternalEditorScrollbarOptions {
|
||
readonly arrowSize: number;
|
||
readonly vertical: ScrollbarVisibility;
|
||
readonly horizontal: ScrollbarVisibility;
|
||
readonly useShadows: boolean;
|
||
readonly verticalHasArrows: boolean;
|
||
readonly horizontalHasArrows: boolean;
|
||
readonly handleMouseWheel: boolean;
|
||
readonly alwaysConsumeMouseWheel: boolean;
|
||
readonly horizontalScrollbarSize: number;
|
||
readonly horizontalSliderSize: number;
|
||
readonly verticalScrollbarSize: number;
|
||
readonly verticalSliderSize: number;
|
||
readonly scrollByPage: boolean;
|
||
}
|
||
|
||
export interface IInlineSuggestOptions {
|
||
/**
|
||
* Enable or disable the rendering of automatic inline completions.
|
||
*/
|
||
enabled?: boolean;
|
||
}
|
||
|
||
export type InternalInlineSuggestOptions = Readonly<Required<IInlineSuggestOptions>>;
|
||
|
||
/**
|
||
* Configuration options for editor suggest widget
|
||
*/
|
||
export interface ISuggestOptions {
|
||
/**
|
||
* Overwrite word ends on accept. Default to false.
|
||
*/
|
||
insertMode?: 'insert' | 'replace';
|
||
/**
|
||
* Enable graceful matching. Defaults to true.
|
||
*/
|
||
filterGraceful?: boolean;
|
||
/**
|
||
* Prevent quick suggestions when a snippet is active. Defaults to true.
|
||
*/
|
||
snippetsPreventQuickSuggestions?: boolean;
|
||
/**
|
||
* Favors words that appear close to the cursor.
|
||
*/
|
||
localityBonus?: boolean;
|
||
/**
|
||
* Enable using global storage for remembering suggestions.
|
||
*/
|
||
shareSuggestSelections?: boolean;
|
||
/**
|
||
* Enable or disable icons in suggestions. Defaults to true.
|
||
*/
|
||
showIcons?: boolean;
|
||
/**
|
||
* Enable or disable the suggest status bar.
|
||
*/
|
||
showStatusBar?: boolean;
|
||
/**
|
||
* Enable or disable the rendering of the suggestion preview.
|
||
*/
|
||
preview?: boolean;
|
||
/**
|
||
* Show details inline with the label. Defaults to true.
|
||
*/
|
||
showInlineDetails?: boolean;
|
||
/**
|
||
* Show method-suggestions.
|
||
*/
|
||
showMethods?: boolean;
|
||
/**
|
||
* Show function-suggestions.
|
||
*/
|
||
showFunctions?: boolean;
|
||
/**
|
||
* Show constructor-suggestions.
|
||
*/
|
||
showConstructors?: boolean;
|
||
/**
|
||
* Show deprecated-suggestions.
|
||
*/
|
||
showDeprecated?: boolean;
|
||
/**
|
||
* Show field-suggestions.
|
||
*/
|
||
showFields?: boolean;
|
||
/**
|
||
* Show variable-suggestions.
|
||
*/
|
||
showVariables?: boolean;
|
||
/**
|
||
* Show class-suggestions.
|
||
*/
|
||
showClasses?: boolean;
|
||
/**
|
||
* Show struct-suggestions.
|
||
*/
|
||
showStructs?: boolean;
|
||
/**
|
||
* Show interface-suggestions.
|
||
*/
|
||
showInterfaces?: boolean;
|
||
/**
|
||
* Show module-suggestions.
|
||
*/
|
||
showModules?: boolean;
|
||
/**
|
||
* Show property-suggestions.
|
||
*/
|
||
showProperties?: boolean;
|
||
/**
|
||
* Show event-suggestions.
|
||
*/
|
||
showEvents?: boolean;
|
||
/**
|
||
* Show operator-suggestions.
|
||
*/
|
||
showOperators?: boolean;
|
||
/**
|
||
* Show unit-suggestions.
|
||
*/
|
||
showUnits?: boolean;
|
||
/**
|
||
* Show value-suggestions.
|
||
*/
|
||
showValues?: boolean;
|
||
/**
|
||
* Show constant-suggestions.
|
||
*/
|
||
showConstants?: boolean;
|
||
/**
|
||
* Show enum-suggestions.
|
||
*/
|
||
showEnums?: boolean;
|
||
/**
|
||
* Show enumMember-suggestions.
|
||
*/
|
||
showEnumMembers?: boolean;
|
||
/**
|
||
* Show keyword-suggestions.
|
||
*/
|
||
showKeywords?: boolean;
|
||
/**
|
||
* Show text-suggestions.
|
||
*/
|
||
showWords?: boolean;
|
||
/**
|
||
* Show color-suggestions.
|
||
*/
|
||
showColors?: boolean;
|
||
/**
|
||
* Show file-suggestions.
|
||
*/
|
||
showFiles?: boolean;
|
||
/**
|
||
* Show reference-suggestions.
|
||
*/
|
||
showReferences?: boolean;
|
||
/**
|
||
* Show folder-suggestions.
|
||
*/
|
||
showFolders?: boolean;
|
||
/**
|
||
* Show typeParameter-suggestions.
|
||
*/
|
||
showTypeParameters?: boolean;
|
||
/**
|
||
* Show issue-suggestions.
|
||
*/
|
||
showIssues?: boolean;
|
||
/**
|
||
* Show user-suggestions.
|
||
*/
|
||
showUsers?: boolean;
|
||
/**
|
||
* Show snippet-suggestions.
|
||
*/
|
||
showSnippets?: boolean;
|
||
}
|
||
|
||
export type InternalSuggestOptions = Readonly<Required<ISuggestOptions>>;
|
||
|
||
export interface ISmartSelectOptions {
|
||
selectLeadingAndTrailingWhitespace?: boolean;
|
||
}
|
||
|
||
export type SmartSelectOptions = Readonly<Required<ISmartSelectOptions>>;
|
||
|
||
/**
|
||
* Describes how to indent wrapped lines.
|
||
*/
|
||
export enum WrappingIndent {
|
||
/**
|
||
* No indentation => wrapped lines begin at column 1.
|
||
*/
|
||
None = 0,
|
||
/**
|
||
* Same => wrapped lines get the same indentation as the parent.
|
||
*/
|
||
Same = 1,
|
||
/**
|
||
* Indent => wrapped lines get +1 indentation toward the parent.
|
||
*/
|
||
Indent = 2,
|
||
/**
|
||
* DeepIndent => wrapped lines get +2 indentation toward the parent.
|
||
*/
|
||
DeepIndent = 3
|
||
}
|
||
|
||
export interface EditorWrappingInfo {
|
||
readonly isDominatedByLongLines: boolean;
|
||
readonly isWordWrapMinified: boolean;
|
||
readonly isViewportWrapping: boolean;
|
||
readonly wrappingColumn: number;
|
||
}
|
||
|
||
export enum EditorOption {
|
||
acceptSuggestionOnCommitCharacter = 0,
|
||
acceptSuggestionOnEnter = 1,
|
||
accessibilitySupport = 2,
|
||
accessibilityPageSize = 3,
|
||
ariaLabel = 4,
|
||
autoClosingBrackets = 5,
|
||
autoClosingDelete = 6,
|
||
autoClosingOvertype = 7,
|
||
autoClosingQuotes = 8,
|
||
autoIndent = 9,
|
||
automaticLayout = 10,
|
||
autoSurround = 11,
|
||
codeLens = 12,
|
||
codeLensFontFamily = 13,
|
||
codeLensFontSize = 14,
|
||
colorDecorators = 15,
|
||
columnSelection = 16,
|
||
comments = 17,
|
||
contextmenu = 18,
|
||
copyWithSyntaxHighlighting = 19,
|
||
cursorBlinking = 20,
|
||
cursorSmoothCaretAnimation = 21,
|
||
cursorStyle = 22,
|
||
cursorSurroundingLines = 23,
|
||
cursorSurroundingLinesStyle = 24,
|
||
cursorWidth = 25,
|
||
disableLayerHinting = 26,
|
||
disableMonospaceOptimizations = 27,
|
||
domReadOnly = 28,
|
||
dragAndDrop = 29,
|
||
emptySelectionClipboard = 30,
|
||
extraEditorClassName = 31,
|
||
fastScrollSensitivity = 32,
|
||
find = 33,
|
||
fixedOverflowWidgets = 34,
|
||
folding = 35,
|
||
foldingStrategy = 36,
|
||
foldingHighlight = 37,
|
||
unfoldOnClickAfterEndOfLine = 38,
|
||
fontFamily = 39,
|
||
fontInfo = 40,
|
||
fontLigatures = 41,
|
||
fontSize = 42,
|
||
fontWeight = 43,
|
||
formatOnPaste = 44,
|
||
formatOnType = 45,
|
||
glyphMargin = 46,
|
||
gotoLocation = 47,
|
||
hideCursorInOverviewRuler = 48,
|
||
highlightActiveIndentGuide = 49,
|
||
hover = 50,
|
||
inDiffEditor = 51,
|
||
inlineSuggest = 52,
|
||
letterSpacing = 53,
|
||
lightbulb = 54,
|
||
lineDecorationsWidth = 55,
|
||
lineHeight = 56,
|
||
lineNumbers = 57,
|
||
lineNumbersMinChars = 58,
|
||
linkedEditing = 59,
|
||
links = 60,
|
||
matchBrackets = 61,
|
||
minimap = 62,
|
||
mouseStyle = 63,
|
||
mouseWheelScrollSensitivity = 64,
|
||
mouseWheelZoom = 65,
|
||
multiCursorMergeOverlapping = 66,
|
||
multiCursorModifier = 67,
|
||
multiCursorPaste = 68,
|
||
occurrencesHighlight = 69,
|
||
overviewRulerBorder = 70,
|
||
overviewRulerLanes = 71,
|
||
padding = 72,
|
||
parameterHints = 73,
|
||
peekWidgetDefaultFocus = 74,
|
||
definitionLinkOpensInPeek = 75,
|
||
quickSuggestions = 76,
|
||
quickSuggestionsDelay = 77,
|
||
readOnly = 78,
|
||
renameOnType = 79,
|
||
renderControlCharacters = 80,
|
||
renderIndentGuides = 81,
|
||
renderFinalNewline = 82,
|
||
renderLineHighlight = 83,
|
||
renderLineHighlightOnlyWhenFocus = 84,
|
||
renderValidationDecorations = 85,
|
||
renderWhitespace = 86,
|
||
revealHorizontalRightPadding = 87,
|
||
roundedSelection = 88,
|
||
rulers = 89,
|
||
scrollbar = 90,
|
||
scrollBeyondLastColumn = 91,
|
||
scrollBeyondLastLine = 92,
|
||
scrollPredominantAxis = 93,
|
||
selectionClipboard = 94,
|
||
selectionHighlight = 95,
|
||
selectOnLineNumbers = 96,
|
||
showFoldingControls = 97,
|
||
showUnused = 98,
|
||
snippetSuggestions = 99,
|
||
smartSelect = 100,
|
||
smoothScrolling = 101,
|
||
stickyTabStops = 102,
|
||
stopRenderingLineAfter = 103,
|
||
suggest = 104,
|
||
suggestFontSize = 105,
|
||
suggestLineHeight = 106,
|
||
suggestOnTriggerCharacters = 107,
|
||
suggestSelection = 108,
|
||
tabCompletion = 109,
|
||
tabIndex = 110,
|
||
unusualLineTerminators = 111,
|
||
useShadowDOM = 112,
|
||
useTabStops = 113,
|
||
wordSeparators = 114,
|
||
wordWrap = 115,
|
||
wordWrapBreakAfterCharacters = 116,
|
||
wordWrapBreakBeforeCharacters = 117,
|
||
wordWrapColumn = 118,
|
||
wordWrapOverride1 = 119,
|
||
wordWrapOverride2 = 120,
|
||
wrappingIndent = 121,
|
||
wrappingStrategy = 122,
|
||
showDeprecated = 123,
|
||
inlayHints = 124,
|
||
editorClassName = 125,
|
||
pixelRatio = 126,
|
||
tabFocusMode = 127,
|
||
layoutInfo = 128,
|
||
wrappingInfo = 129
|
||
}
|
||
export const EditorOptions: {
|
||
acceptSuggestionOnCommitCharacter: IEditorOption<EditorOption.acceptSuggestionOnCommitCharacter, boolean>;
|
||
acceptSuggestionOnEnter: IEditorOption<EditorOption.acceptSuggestionOnEnter, 'on' | 'off' | 'smart'>;
|
||
accessibilitySupport: IEditorOption<EditorOption.accessibilitySupport, AccessibilitySupport>;
|
||
accessibilityPageSize: IEditorOption<EditorOption.accessibilityPageSize, number>;
|
||
ariaLabel: IEditorOption<EditorOption.ariaLabel, string>;
|
||
autoClosingBrackets: IEditorOption<EditorOption.autoClosingBrackets, 'always' | 'languageDefined' | 'beforeWhitespace' | 'never'>;
|
||
autoClosingDelete: IEditorOption<EditorOption.autoClosingDelete, 'always' | 'never' | 'auto'>;
|
||
autoClosingOvertype: IEditorOption<EditorOption.autoClosingOvertype, 'always' | 'never' | 'auto'>;
|
||
autoClosingQuotes: IEditorOption<EditorOption.autoClosingQuotes, 'always' | 'languageDefined' | 'beforeWhitespace' | 'never'>;
|
||
autoIndent: IEditorOption<EditorOption.autoIndent, EditorAutoIndentStrategy>;
|
||
automaticLayout: IEditorOption<EditorOption.automaticLayout, boolean>;
|
||
autoSurround: IEditorOption<EditorOption.autoSurround, 'languageDefined' | 'never' | 'quotes' | 'brackets'>;
|
||
stickyTabStops: IEditorOption<EditorOption.stickyTabStops, boolean>;
|
||
codeLens: IEditorOption<EditorOption.codeLens, boolean>;
|
||
codeLensFontFamily: IEditorOption<EditorOption.codeLensFontFamily, string>;
|
||
codeLensFontSize: IEditorOption<EditorOption.codeLensFontSize, number>;
|
||
colorDecorators: IEditorOption<EditorOption.colorDecorators, boolean>;
|
||
columnSelection: IEditorOption<EditorOption.columnSelection, boolean>;
|
||
comments: IEditorOption<EditorOption.comments, EditorCommentsOptions>;
|
||
contextmenu: IEditorOption<EditorOption.contextmenu, boolean>;
|
||
copyWithSyntaxHighlighting: IEditorOption<EditorOption.copyWithSyntaxHighlighting, boolean>;
|
||
cursorBlinking: IEditorOption<EditorOption.cursorBlinking, TextEditorCursorBlinkingStyle>;
|
||
cursorSmoothCaretAnimation: IEditorOption<EditorOption.cursorSmoothCaretAnimation, boolean>;
|
||
cursorStyle: IEditorOption<EditorOption.cursorStyle, TextEditorCursorStyle>;
|
||
cursorSurroundingLines: IEditorOption<EditorOption.cursorSurroundingLines, number>;
|
||
cursorSurroundingLinesStyle: IEditorOption<EditorOption.cursorSurroundingLinesStyle, 'default' | 'all'>;
|
||
cursorWidth: IEditorOption<EditorOption.cursorWidth, number>;
|
||
disableLayerHinting: IEditorOption<EditorOption.disableLayerHinting, boolean>;
|
||
disableMonospaceOptimizations: IEditorOption<EditorOption.disableMonospaceOptimizations, boolean>;
|
||
domReadOnly: IEditorOption<EditorOption.domReadOnly, boolean>;
|
||
dragAndDrop: IEditorOption<EditorOption.dragAndDrop, boolean>;
|
||
emptySelectionClipboard: IEditorOption<EditorOption.emptySelectionClipboard, boolean>;
|
||
extraEditorClassName: IEditorOption<EditorOption.extraEditorClassName, string>;
|
||
fastScrollSensitivity: IEditorOption<EditorOption.fastScrollSensitivity, number>;
|
||
find: IEditorOption<EditorOption.find, EditorFindOptions>;
|
||
fixedOverflowWidgets: IEditorOption<EditorOption.fixedOverflowWidgets, boolean>;
|
||
folding: IEditorOption<EditorOption.folding, boolean>;
|
||
foldingStrategy: IEditorOption<EditorOption.foldingStrategy, 'auto' | 'indentation'>;
|
||
foldingHighlight: IEditorOption<EditorOption.foldingHighlight, boolean>;
|
||
unfoldOnClickAfterEndOfLine: IEditorOption<EditorOption.unfoldOnClickAfterEndOfLine, boolean>;
|
||
fontFamily: IEditorOption<EditorOption.fontFamily, string>;
|
||
fontInfo: IEditorOption<EditorOption.fontInfo, FontInfo>;
|
||
fontLigatures2: IEditorOption<EditorOption.fontLigatures, string>;
|
||
fontSize: IEditorOption<EditorOption.fontSize, number>;
|
||
fontWeight: IEditorOption<EditorOption.fontWeight, string>;
|
||
formatOnPaste: IEditorOption<EditorOption.formatOnPaste, boolean>;
|
||
formatOnType: IEditorOption<EditorOption.formatOnType, boolean>;
|
||
glyphMargin: IEditorOption<EditorOption.glyphMargin, boolean>;
|
||
gotoLocation: IEditorOption<EditorOption.gotoLocation, GoToLocationOptions>;
|
||
hideCursorInOverviewRuler: IEditorOption<EditorOption.hideCursorInOverviewRuler, boolean>;
|
||
highlightActiveIndentGuide: IEditorOption<EditorOption.highlightActiveIndentGuide, boolean>;
|
||
hover: IEditorOption<EditorOption.hover, EditorHoverOptions>;
|
||
inDiffEditor: IEditorOption<EditorOption.inDiffEditor, boolean>;
|
||
letterSpacing: IEditorOption<EditorOption.letterSpacing, number>;
|
||
lightbulb: IEditorOption<EditorOption.lightbulb, EditorLightbulbOptions>;
|
||
lineDecorationsWidth: IEditorOption<EditorOption.lineDecorationsWidth, string | number>;
|
||
lineHeight: IEditorOption<EditorOption.lineHeight, number>;
|
||
lineNumbers: IEditorOption<EditorOption.lineNumbers, InternalEditorRenderLineNumbersOptions>;
|
||
lineNumbersMinChars: IEditorOption<EditorOption.lineNumbersMinChars, number>;
|
||
linkedEditing: IEditorOption<EditorOption.linkedEditing, boolean>;
|
||
links: IEditorOption<EditorOption.links, boolean>;
|
||
matchBrackets: IEditorOption<EditorOption.matchBrackets, 'always' | 'never' | 'near'>;
|
||
minimap: IEditorOption<EditorOption.minimap, EditorMinimapOptions>;
|
||
mouseStyle: IEditorOption<EditorOption.mouseStyle, 'default' | 'text' | 'copy'>;
|
||
mouseWheelScrollSensitivity: IEditorOption<EditorOption.mouseWheelScrollSensitivity, number>;
|
||
mouseWheelZoom: IEditorOption<EditorOption.mouseWheelZoom, boolean>;
|
||
multiCursorMergeOverlapping: IEditorOption<EditorOption.multiCursorMergeOverlapping, boolean>;
|
||
multiCursorModifier: IEditorOption<EditorOption.multiCursorModifier, 'altKey' | 'metaKey' | 'ctrlKey'>;
|
||
multiCursorPaste: IEditorOption<EditorOption.multiCursorPaste, 'spread' | 'full'>;
|
||
occurrencesHighlight: IEditorOption<EditorOption.occurrencesHighlight, boolean>;
|
||
overviewRulerBorder: IEditorOption<EditorOption.overviewRulerBorder, boolean>;
|
||
overviewRulerLanes: IEditorOption<EditorOption.overviewRulerLanes, number>;
|
||
padding: IEditorOption<EditorOption.padding, InternalEditorPaddingOptions>;
|
||
parameterHints: IEditorOption<EditorOption.parameterHints, InternalParameterHintOptions>;
|
||
peekWidgetDefaultFocus: IEditorOption<EditorOption.peekWidgetDefaultFocus, 'tree' | 'editor'>;
|
||
definitionLinkOpensInPeek: IEditorOption<EditorOption.definitionLinkOpensInPeek, boolean>;
|
||
quickSuggestions: IEditorOption<EditorOption.quickSuggestions, ValidQuickSuggestionsOptions>;
|
||
quickSuggestionsDelay: IEditorOption<EditorOption.quickSuggestionsDelay, number>;
|
||
readOnly: IEditorOption<EditorOption.readOnly, boolean>;
|
||
renameOnType: IEditorOption<EditorOption.renameOnType, boolean>;
|
||
renderControlCharacters: IEditorOption<EditorOption.renderControlCharacters, boolean>;
|
||
renderIndentGuides: IEditorOption<EditorOption.renderIndentGuides, boolean>;
|
||
renderFinalNewline: IEditorOption<EditorOption.renderFinalNewline, boolean>;
|
||
renderLineHighlight: IEditorOption<EditorOption.renderLineHighlight, 'all' | 'line' | 'none' | 'gutter'>;
|
||
renderLineHighlightOnlyWhenFocus: IEditorOption<EditorOption.renderLineHighlightOnlyWhenFocus, boolean>;
|
||
renderValidationDecorations: IEditorOption<EditorOption.renderValidationDecorations, 'on' | 'off' | 'editable'>;
|
||
renderWhitespace: IEditorOption<EditorOption.renderWhitespace, 'all' | 'none' | 'boundary' | 'selection' | 'trailing'>;
|
||
revealHorizontalRightPadding: IEditorOption<EditorOption.revealHorizontalRightPadding, number>;
|
||
roundedSelection: IEditorOption<EditorOption.roundedSelection, boolean>;
|
||
rulers: IEditorOption<EditorOption.rulers, {}>;
|
||
scrollbar: IEditorOption<EditorOption.scrollbar, InternalEditorScrollbarOptions>;
|
||
scrollBeyondLastColumn: IEditorOption<EditorOption.scrollBeyondLastColumn, number>;
|
||
scrollBeyondLastLine: IEditorOption<EditorOption.scrollBeyondLastLine, boolean>;
|
||
scrollPredominantAxis: IEditorOption<EditorOption.scrollPredominantAxis, boolean>;
|
||
selectionClipboard: IEditorOption<EditorOption.selectionClipboard, boolean>;
|
||
selectionHighlight: IEditorOption<EditorOption.selectionHighlight, boolean>;
|
||
selectOnLineNumbers: IEditorOption<EditorOption.selectOnLineNumbers, boolean>;
|
||
showFoldingControls: IEditorOption<EditorOption.showFoldingControls, 'always' | 'mouseover'>;
|
||
showUnused: IEditorOption<EditorOption.showUnused, boolean>;
|
||
showDeprecated: IEditorOption<EditorOption.showDeprecated, boolean>;
|
||
inlayHints: IEditorOption<EditorOption.inlayHints, any>;
|
||
snippetSuggestions: IEditorOption<EditorOption.snippetSuggestions, 'none' | 'top' | 'bottom' | 'inline'>;
|
||
smartSelect: IEditorOption<EditorOption.smartSelect, any>;
|
||
smoothScrolling: IEditorOption<EditorOption.smoothScrolling, boolean>;
|
||
stopRenderingLineAfter: IEditorOption<EditorOption.stopRenderingLineAfter, number>;
|
||
suggest: IEditorOption<EditorOption.suggest, InternalSuggestOptions>;
|
||
inlineSuggest: IEditorOption<EditorOption.inlineSuggest, any>;
|
||
suggestFontSize: IEditorOption<EditorOption.suggestFontSize, number>;
|
||
suggestLineHeight: IEditorOption<EditorOption.suggestLineHeight, number>;
|
||
suggestOnTriggerCharacters: IEditorOption<EditorOption.suggestOnTriggerCharacters, boolean>;
|
||
suggestSelection: IEditorOption<EditorOption.suggestSelection, 'first' | 'recentlyUsed' | 'recentlyUsedByPrefix'>;
|
||
tabCompletion: IEditorOption<EditorOption.tabCompletion, 'on' | 'off' | 'onlySnippets'>;
|
||
tabIndex: IEditorOption<EditorOption.tabIndex, number>;
|
||
unusualLineTerminators: IEditorOption<EditorOption.unusualLineTerminators, 'auto' | 'off' | 'prompt'>;
|
||
useShadowDOM: IEditorOption<EditorOption.useShadowDOM, boolean>;
|
||
useTabStops: IEditorOption<EditorOption.useTabStops, boolean>;
|
||
wordSeparators: IEditorOption<EditorOption.wordSeparators, string>;
|
||
wordWrap: IEditorOption<EditorOption.wordWrap, 'on' | 'off' | 'wordWrapColumn' | 'bounded'>;
|
||
wordWrapBreakAfterCharacters: IEditorOption<EditorOption.wordWrapBreakAfterCharacters, string>;
|
||
wordWrapBreakBeforeCharacters: IEditorOption<EditorOption.wordWrapBreakBeforeCharacters, string>;
|
||
wordWrapColumn: IEditorOption<EditorOption.wordWrapColumn, number>;
|
||
wordWrapOverride1: IEditorOption<EditorOption.wordWrapOverride1, 'on' | 'off' | 'inherit'>;
|
||
wordWrapOverride2: IEditorOption<EditorOption.wordWrapOverride2, 'on' | 'off' | 'inherit'>;
|
||
wrappingIndent: IEditorOption<EditorOption.wrappingIndent, WrappingIndent>;
|
||
wrappingStrategy: IEditorOption<EditorOption.wrappingStrategy, 'simple' | 'advanced'>;
|
||
editorClassName: IEditorOption<EditorOption.editorClassName, string>;
|
||
pixelRatio: IEditorOption<EditorOption.pixelRatio, number>;
|
||
tabFocusMode: IEditorOption<EditorOption.tabFocusMode, boolean>;
|
||
layoutInfo: IEditorOption<EditorOption.layoutInfo, EditorLayoutInfo>;
|
||
wrappingInfo: IEditorOption<EditorOption.wrappingInfo, EditorWrappingInfo>;
|
||
};
|
||
|
||
type EditorOptionsType = typeof EditorOptions;
|
||
|
||
type FindEditorOptionsKeyById<T extends EditorOption> = {
|
||
[K in keyof EditorOptionsType]: EditorOptionsType[K]['id'] extends T ? K : never;
|
||
}[keyof EditorOptionsType];
|
||
|
||
type ComputedEditorOptionValue<T extends IEditorOption<any, any>> = T extends IEditorOption<any, infer R> ? R : never;
|
||
|
||
export type FindComputedEditorOptionValueById<T extends EditorOption> = NonNullable<ComputedEditorOptionValue<EditorOptionsType[FindEditorOptionsKeyById<T>]>>;
|
||
|
||
/**
|
||
* A view zone is a full horizontal rectangle that 'pushes' text down.
|
||
* The editor reserves space for view zones when rendering.
|
||
*/
|
||
export interface IViewZone {
|
||
/**
|
||
* The line number after which this zone should appear.
|
||
* Use 0 to place a view zone before the first line number.
|
||
*/
|
||
afterLineNumber: number;
|
||
/**
|
||
* The column after which this zone should appear.
|
||
* If not set, the maxLineColumn of `afterLineNumber` will be used.
|
||
*/
|
||
afterColumn?: number;
|
||
/**
|
||
* Suppress mouse down events.
|
||
* If set, the editor will attach a mouse down listener to the view zone and .preventDefault on it.
|
||
* Defaults to false
|
||
*/
|
||
suppressMouseDown?: boolean;
|
||
/**
|
||
* The height in lines of the view zone.
|
||
* If specified, `heightInPx` will be used instead of this.
|
||
* If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen.
|
||
*/
|
||
heightInLines?: number;
|
||
/**
|
||
* The height in px of the view zone.
|
||
* If this is set, the editor will give preference to it rather than `heightInLines` above.
|
||
* If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen.
|
||
*/
|
||
heightInPx?: number;
|
||
/**
|
||
* The minimum width in px of the view zone.
|
||
* If this is set, the editor will ensure that the scroll width is >= than this value.
|
||
*/
|
||
minWidthInPx?: number;
|
||
/**
|
||
* The dom node of the view zone
|
||
*/
|
||
domNode: HTMLElement;
|
||
/**
|
||
* An optional dom node for the view zone that will be placed in the margin area.
|
||
*/
|
||
marginDomNode?: HTMLElement | null;
|
||
/**
|
||
* Callback which gives the relative top of the view zone as it appears (taking scrolling into account).
|
||
*/
|
||
onDomNodeTop?: (top: number) => void;
|
||
/**
|
||
* Callback which gives the height in pixels of the view zone.
|
||
*/
|
||
onComputedHeight?: (height: number) => void;
|
||
}
|
||
|
||
/**
|
||
* An accessor that allows for zones to be added or removed.
|
||
*/
|
||
export interface IViewZoneChangeAccessor {
|
||
/**
|
||
* Create a new view zone.
|
||
* @param zone Zone to create
|
||
* @return A unique identifier to the view zone.
|
||
*/
|
||
addZone(zone: IViewZone): string;
|
||
/**
|
||
* Remove a zone
|
||
* @param id A unique identifier to the view zone, as returned by the `addZone` call.
|
||
*/
|
||
removeZone(id: string): void;
|
||
/**
|
||
* Change a zone's position.
|
||
* The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone.
|
||
*/
|
||
layoutZone(id: string): void;
|
||
}
|
||
|
||
/**
|
||
* A positioning preference for rendering content widgets.
|
||
*/
|
||
export enum ContentWidgetPositionPreference {
|
||
/**
|
||
* Place the content widget exactly at a position
|
||
*/
|
||
EXACT = 0,
|
||
/**
|
||
* Place the content widget above a position
|
||
*/
|
||
ABOVE = 1,
|
||
/**
|
||
* Place the content widget below a position
|
||
*/
|
||
BELOW = 2
|
||
}
|
||
|
||
/**
|
||
* A position for rendering content widgets.
|
||
*/
|
||
export interface IContentWidgetPosition {
|
||
/**
|
||
* Desired position for the content widget.
|
||
* `preference` will also affect the placement.
|
||
*/
|
||
position: IPosition | null;
|
||
/**
|
||
* Optionally, a range can be provided to further
|
||
* define the position of the content widget.
|
||
*/
|
||
range?: IRange | null;
|
||
/**
|
||
* Placement preference for position, in order of preference.
|
||
*/
|
||
preference: ContentWidgetPositionPreference[];
|
||
}
|
||
|
||
/**
|
||
* A content widget renders inline with the text and can be easily placed 'near' an editor position.
|
||
*/
|
||
export interface IContentWidget {
|
||
/**
|
||
* Render this content widget in a location where it could overflow the editor's view dom node.
|
||
*/
|
||
allowEditorOverflow?: boolean;
|
||
suppressMouseDown?: boolean;
|
||
/**
|
||
* Get a unique identifier of the content widget.
|
||
*/
|
||
getId(): string;
|
||
/**
|
||
* Get the dom node of the content widget.
|
||
*/
|
||
getDomNode(): HTMLElement;
|
||
/**
|
||
* Get the placement of the content widget.
|
||
* If null is returned, the content widget will be placed off screen.
|
||
*/
|
||
getPosition(): IContentWidgetPosition | null;
|
||
/**
|
||
* Optional function that is invoked before rendering
|
||
* the content widget. If a dimension is returned the editor will
|
||
* attempt to use it.
|
||
*/
|
||
beforeRender?(): IDimension | null;
|
||
/**
|
||
* Optional function that is invoked after rendering the content
|
||
* widget. Is being invoked with the selected position preference
|
||
* or `null` if not rendered.
|
||
*/
|
||
afterRender?(position: ContentWidgetPositionPreference | null): void;
|
||
}
|
||
|
||
/**
|
||
* A positioning preference for rendering overlay widgets.
|
||
*/
|
||
export enum OverlayWidgetPositionPreference {
|
||
/**
|
||
* Position the overlay widget in the top right corner
|
||
*/
|
||
TOP_RIGHT_CORNER = 0,
|
||
/**
|
||
* Position the overlay widget in the bottom right corner
|
||
*/
|
||
BOTTOM_RIGHT_CORNER = 1,
|
||
/**
|
||
* Position the overlay widget in the top center
|
||
*/
|
||
TOP_CENTER = 2
|
||
}
|
||
|
||
/**
|
||
* A position for rendering overlay widgets.
|
||
*/
|
||
export interface IOverlayWidgetPosition {
|
||
/**
|
||
* The position preference for the overlay widget.
|
||
*/
|
||
preference: OverlayWidgetPositionPreference | null;
|
||
}
|
||
|
||
/**
|
||
* An overlay widgets renders on top of the text.
|
||
*/
|
||
export interface IOverlayWidget {
|
||
/**
|
||
* Get a unique identifier of the overlay widget.
|
||
*/
|
||
getId(): string;
|
||
/**
|
||
* Get the dom node of the overlay widget.
|
||
*/
|
||
getDomNode(): HTMLElement;
|
||
/**
|
||
* Get the placement of the overlay widget.
|
||
* If null is returned, the overlay widget is responsible to place itself.
|
||
*/
|
||
getPosition(): IOverlayWidgetPosition | null;
|
||
}
|
||
|
||
/**
|
||
* Type of hit element with the mouse in the editor.
|
||
*/
|
||
export enum MouseTargetType {
|
||
/**
|
||
* Mouse is on top of an unknown element.
|
||
*/
|
||
UNKNOWN = 0,
|
||
/**
|
||
* Mouse is on top of the textarea used for input.
|
||
*/
|
||
TEXTAREA = 1,
|
||
/**
|
||
* Mouse is on top of the glyph margin
|
||
*/
|
||
GUTTER_GLYPH_MARGIN = 2,
|
||
/**
|
||
* Mouse is on top of the line numbers
|
||
*/
|
||
GUTTER_LINE_NUMBERS = 3,
|
||
/**
|
||
* Mouse is on top of the line decorations
|
||
*/
|
||
GUTTER_LINE_DECORATIONS = 4,
|
||
/**
|
||
* Mouse is on top of the whitespace left in the gutter by a view zone.
|
||
*/
|
||
GUTTER_VIEW_ZONE = 5,
|
||
/**
|
||
* Mouse is on top of text in the content.
|
||
*/
|
||
CONTENT_TEXT = 6,
|
||
/**
|
||
* Mouse is on top of empty space in the content (e.g. after line text or below last line)
|
||
*/
|
||
CONTENT_EMPTY = 7,
|
||
/**
|
||
* Mouse is on top of a view zone in the content.
|
||
*/
|
||
CONTENT_VIEW_ZONE = 8,
|
||
/**
|
||
* Mouse is on top of a content widget.
|
||
*/
|
||
CONTENT_WIDGET = 9,
|
||
/**
|
||
* Mouse is on top of the decorations overview ruler.
|
||
*/
|
||
OVERVIEW_RULER = 10,
|
||
/**
|
||
* Mouse is on top of a scrollbar.
|
||
*/
|
||
SCROLLBAR = 11,
|
||
/**
|
||
* Mouse is on top of an overlay widget.
|
||
*/
|
||
OVERLAY_WIDGET = 12,
|
||
/**
|
||
* Mouse is outside of the editor.
|
||
*/
|
||
OUTSIDE_EDITOR = 13
|
||
}
|
||
|
||
/**
|
||
* Target hit with the mouse in the editor.
|
||
*/
|
||
export interface IMouseTarget {
|
||
/**
|
||
* The target element
|
||
*/
|
||
readonly element: Element | null;
|
||
/**
|
||
* The target type
|
||
*/
|
||
readonly type: MouseTargetType;
|
||
/**
|
||
* The 'approximate' editor position
|
||
*/
|
||
readonly position: Position | null;
|
||
/**
|
||
* Desired mouse column (e.g. when position.column gets clamped to text length -- clicking after text on a line).
|
||
*/
|
||
readonly mouseColumn: number;
|
||
/**
|
||
* The 'approximate' editor range
|
||
*/
|
||
readonly range: Range | null;
|
||
/**
|
||
* Some extra detail.
|
||
*/
|
||
readonly detail: any;
|
||
}
|
||
|
||
/**
|
||
* A mouse event originating from the editor.
|
||
*/
|
||
export interface IEditorMouseEvent {
|
||
readonly event: IMouseEvent;
|
||
readonly target: IMouseTarget;
|
||
}
|
||
|
||
export interface IPartialEditorMouseEvent {
|
||
readonly event: IMouseEvent;
|
||
readonly target: IMouseTarget | null;
|
||
}
|
||
|
||
/**
|
||
* A paste event originating from the editor.
|
||
*/
|
||
export interface IPasteEvent {
|
||
readonly range: Range;
|
||
readonly mode: string | null;
|
||
}
|
||
|
||
export interface IEditorConstructionOptions extends IEditorOptions {
|
||
/**
|
||
* The initial editor dimension (to avoid measuring the container).
|
||
*/
|
||
dimension?: IDimension;
|
||
/**
|
||
* Place overflow widgets inside an external DOM node.
|
||
* Defaults to an internal DOM node.
|
||
*/
|
||
overflowWidgetsDomNode?: HTMLElement;
|
||
}
|
||
|
||
export interface IDiffEditorConstructionOptions extends IDiffEditorOptions {
|
||
/**
|
||
* The initial editor dimension (to avoid measuring the container).
|
||
*/
|
||
dimension?: IDimension;
|
||
/**
|
||
* Place overflow widgets inside an external DOM node.
|
||
* Defaults to an internal DOM node.
|
||
*/
|
||
overflowWidgetsDomNode?: HTMLElement;
|
||
}
|
||
|
||
/**
|
||
* A rich code editor.
|
||
*/
|
||
export interface ICodeEditor extends IEditor {
|
||
/**
|
||
* An event emitted when the content of the current model has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeModelContent(listener: (e: IModelContentChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the language of the current model has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeModelLanguage(listener: (e: IModelLanguageChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the language configuration of the current model has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeModelLanguageConfiguration(listener: (e: IModelLanguageConfigurationChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the options of the current model has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`)
|
||
* @event
|
||
*/
|
||
onDidChangeConfiguration(listener: (e: ConfigurationChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the cursor position has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the cursor selection has changed.
|
||
* @event
|
||
*/
|
||
onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the model of this editor has changed (e.g. `editor.setModel()`).
|
||
* @event
|
||
*/
|
||
onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the decorations of the current model have changed.
|
||
* @event
|
||
*/
|
||
onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the text inside this editor gained focus (i.e. cursor starts blinking).
|
||
* @event
|
||
*/
|
||
onDidFocusEditorText(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted when the text inside this editor lost focus (i.e. cursor stops blinking).
|
||
* @event
|
||
*/
|
||
onDidBlurEditorText(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted when the text inside this editor or an editor widget gained focus.
|
||
* @event
|
||
*/
|
||
onDidFocusEditorWidget(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted when the text inside this editor or an editor widget lost focus.
|
||
* @event
|
||
*/
|
||
onDidBlurEditorWidget(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted after composition has started.
|
||
*/
|
||
onDidCompositionStart(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted after composition has ended.
|
||
*/
|
||
onDidCompositionEnd(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted when editing failed because the editor is read-only.
|
||
* @event
|
||
*/
|
||
onDidAttemptReadOnlyEdit(listener: () => void): IDisposable;
|
||
/**
|
||
* An event emitted when users paste text in the editor.
|
||
* @event
|
||
*/
|
||
onDidPaste(listener: (e: IPasteEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "mouseup".
|
||
* @event
|
||
*/
|
||
onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "mousedown".
|
||
* @event
|
||
*/
|
||
onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "contextmenu".
|
||
* @event
|
||
*/
|
||
onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "mousemove".
|
||
* @event
|
||
*/
|
||
onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "mouseleave".
|
||
* @event
|
||
*/
|
||
onMouseLeave(listener: (e: IPartialEditorMouseEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "keyup".
|
||
* @event
|
||
*/
|
||
onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted on a "keydown".
|
||
* @event
|
||
*/
|
||
onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the layout of the editor has changed.
|
||
* @event
|
||
*/
|
||
onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the content width or content height in the editor has changed.
|
||
* @event
|
||
*/
|
||
onDidContentSizeChange(listener: (e: IContentSizeChangedEvent) => void): IDisposable;
|
||
/**
|
||
* An event emitted when the scroll in the editor has changed.
|
||
* @event
|
||
*/
|
||
onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable;
|
||
/**
|
||
* Saves current view state of the editor in a serializable object.
|
||
*/
|
||
saveViewState(): ICodeEditorViewState | null;
|
||
/**
|
||
* Restores the view state of the editor from a serializable object generated by `saveViewState`.
|
||
*/
|
||
restoreViewState(state: ICodeEditorViewState): void;
|
||
/**
|
||
* Returns true if the text inside this editor or an editor widget has focus.
|
||
*/
|
||
hasWidgetFocus(): boolean;
|
||
/**
|
||
* Get a contribution of this editor.
|
||
* @id Unique identifier of the contribution.
|
||
* @return The contribution or null if contribution not found.
|
||
*/
|
||
getContribution<T extends IEditorContribution>(id: string): T;
|
||
/**
|
||
* Type the getModel() of IEditor.
|
||
*/
|
||
getModel(): ITextModel | null;
|
||
/**
|
||
* Sets the current model attached to this editor.
|
||
* If the previous model was created by the editor via the value key in the options
|
||
* literal object, it will be destroyed. Otherwise, if the previous model was set
|
||
* via setModel, or the model key in the options literal object, the previous model
|
||
* will not be destroyed.
|
||
* It is safe to call setModel(null) to simply detach the current model from the editor.
|
||
*/
|
||
setModel(model: ITextModel | null): void;
|
||
/**
|
||
* Gets all the editor computed options.
|
||
*/
|
||
getOptions(): IComputedEditorOptions;
|
||
/**
|
||
* Gets a specific editor option.
|
||
*/
|
||
getOption<T extends EditorOption>(id: T): FindComputedEditorOptionValueById<T>;
|
||
/**
|
||
* Returns the editor's configuration (without any validation or defaults).
|
||
*/
|
||
getRawOptions(): IEditorOptions;
|
||
/**
|
||
* Get value of the current model attached to this editor.
|
||
* @see {@link ITextModel.getValue}
|
||
*/
|
||
getValue(options?: {
|
||
preserveBOM: boolean;
|
||
lineEnding: string;
|
||
}): string;
|
||
/**
|
||
* Set the value of the current model attached to this editor.
|
||
* @see {@link ITextModel.setValue}
|
||
*/
|
||
setValue(newValue: string): void;
|
||
/**
|
||
* Get the width of the editor's content.
|
||
* This is information that is "erased" when computing `scrollWidth = Math.max(contentWidth, width)`
|
||
*/
|
||
getContentWidth(): number;
|
||
/**
|
||
* Get the scrollWidth of the editor's viewport.
|
||
*/
|
||
getScrollWidth(): number;
|
||
/**
|
||
* Get the scrollLeft of the editor's viewport.
|
||
*/
|
||
getScrollLeft(): number;
|
||
/**
|
||
* Get the height of the editor's content.
|
||
* This is information that is "erased" when computing `scrollHeight = Math.max(contentHeight, height)`
|
||
*/
|
||
getContentHeight(): number;
|
||
/**
|
||
* Get the scrollHeight of the editor's viewport.
|
||
*/
|
||
getScrollHeight(): number;
|
||
/**
|
||
* Get the scrollTop of the editor's viewport.
|
||
*/
|
||
getScrollTop(): number;
|
||
/**
|
||
* Change the scrollLeft of the editor's viewport.
|
||
*/
|
||
setScrollLeft(newScrollLeft: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Change the scrollTop of the editor's viewport.
|
||
*/
|
||
setScrollTop(newScrollTop: number, scrollType?: ScrollType): void;
|
||
/**
|
||
* Change the scroll position of the editor's viewport.
|
||
*/
|
||
setScrollPosition(position: INewScrollPosition, scrollType?: ScrollType): void;
|
||
/**
|
||
* Get an action that is a contribution to this editor.
|
||
* @id Unique identifier of the contribution.
|
||
* @return The action or null if action not found.
|
||
*/
|
||
getAction(id: string): IEditorAction;
|
||
/**
|
||
* Execute a command on the editor.
|
||
* The edits will land on the undo-redo stack, but no "undo stop" will be pushed.
|
||
* @param source The source of the call.
|
||
* @param command The command to execute
|
||
*/
|
||
executeCommand(source: string | null | undefined, command: ICommand): void;
|
||
/**
|
||
* Create an "undo stop" in the undo-redo stack.
|
||
*/
|
||
pushUndoStop(): boolean;
|
||
/**
|
||
* Remove the "undo stop" in the undo-redo stack.
|
||
*/
|
||
popUndoStop(): boolean;
|
||
/**
|
||
* Execute edits on the editor.
|
||
* The edits will land on the undo-redo stack, but no "undo stop" will be pushed.
|
||
* @param source The source of the call.
|
||
* @param edits The edits to execute.
|
||
* @param endCursorState Cursor state after the edits were applied.
|
||
*/
|
||
executeEdits(source: string | null | undefined, edits: IIdentifiedSingleEditOperation[], endCursorState?: ICursorStateComputer | Selection[]): boolean;
|
||
/**
|
||
* Execute multiple (concomitant) commands on the editor.
|
||
* @param source The source of the call.
|
||
* @param command The commands to execute
|
||
*/
|
||
executeCommands(source: string | null | undefined, commands: (ICommand | null)[]): void;
|
||
/**
|
||
* Get all the decorations on a line (filtering out decorations from other editors).
|
||
*/
|
||
getLineDecorations(lineNumber: number): IModelDecoration[] | null;
|
||
/**
|
||
* All decorations added through this call will get the ownerId of this editor.
|
||
* @see {@link ITextModel.deltaDecorations}
|
||
*/
|
||
deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[]): string[];
|
||
/**
|
||
* Get the layout info for the editor.
|
||
*/
|
||
getLayoutInfo(): EditorLayoutInfo;
|
||
/**
|
||
* Returns the ranges that are currently visible.
|
||
* Does not account for horizontal scrolling.
|
||
*/
|
||
getVisibleRanges(): Range[];
|
||
/**
|
||
* Get the vertical position (top offset) for the line w.r.t. to the first line.
|
||
*/
|
||
getTopForLineNumber(lineNumber: number): number;
|
||
/**
|
||
* Get the vertical position (top offset) for the position w.r.t. to the first line.
|
||
*/
|
||
getTopForPosition(lineNumber: number, column: number): number;
|
||
/**
|
||
* Returns the editor's container dom node
|
||
*/
|
||
getContainerDomNode(): HTMLElement;
|
||
/**
|
||
* Returns the editor's dom node
|
||
*/
|
||
getDomNode(): HTMLElement | null;
|
||
/**
|
||
* Add a content widget. Widgets must have unique ids, otherwise they will be overwritten.
|
||
*/
|
||
addContentWidget(widget: IContentWidget): void;
|
||
/**
|
||
* Layout/Reposition a content widget. This is a ping to the editor to call widget.getPosition()
|
||
* and update appropriately.
|
||
*/
|
||
layoutContentWidget(widget: IContentWidget): void;
|
||
/**
|
||
* Remove a content widget.
|
||
*/
|
||
removeContentWidget(widget: IContentWidget): void;
|
||
/**
|
||
* Add an overlay widget. Widgets must have unique ids, otherwise they will be overwritten.
|
||
*/
|
||
addOverlayWidget(widget: IOverlayWidget): void;
|
||
/**
|
||
* Layout/Reposition an overlay widget. This is a ping to the editor to call widget.getPosition()
|
||
* and update appropriately.
|
||
*/
|
||
layoutOverlayWidget(widget: IOverlayWidget): void;
|
||
/**
|
||
* Remove an overlay widget.
|
||
*/
|
||
removeOverlayWidget(widget: IOverlayWidget): void;
|
||
/**
|
||
* Change the view zones. View zones are lost when a new model is attached to the editor.
|
||
*/
|
||
changeViewZones(callback: (accessor: IViewZoneChangeAccessor) => void): void;
|
||
/**
|
||
* Get the horizontal position (left offset) for the column w.r.t to the beginning of the line.
|
||
* This method works only if the line `lineNumber` is currently rendered (in the editor's viewport).
|
||
* Use this method with caution.
|
||
*/
|
||
getOffsetForColumn(lineNumber: number, column: number): number;
|
||
/**
|
||
* Force an editor render now.
|
||
*/
|
||
render(forceRedraw?: boolean): void;
|
||
/**
|
||
* Get the hit test target at coordinates `clientX` and `clientY`.
|
||
* The coordinates are relative to the top-left of the viewport.
|
||
*
|
||
* @returns Hit test target or null if the coordinates fall outside the editor or the editor has no model.
|
||
*/
|
||
getTargetAtClientPoint(clientX: number, clientY: number): IMouseTarget | null;
|
||
/**
|
||
* Get the visible position for `position`.
|
||
* The result position takes scrolling into account and is relative to the top left corner of the editor.
|
||
* Explanation 1: the results of this method will change for the same `position` if the user scrolls the editor.
|
||
* Explanation 2: the results of this method will not change if the container of the editor gets repositioned.
|
||
* Warning: the results of this method are inaccurate for positions that are outside the current editor viewport.
|
||
*/
|
||
getScrolledVisiblePosition(position: IPosition): {
|
||
top: number;
|
||
left: number;
|
||
height: number;
|
||
} | null;
|
||
/**
|
||
* Apply the same font settings as the editor to `target`.
|
||
*/
|
||
applyFontInfo(target: HTMLElement): void;
|
||
}
|
||
|
||
/**
|
||
* Information about a line in the diff editor
|
||
*/
|
||
export interface IDiffLineInformation {
|
||
readonly equivalentLineNumber: number;
|
||
}
|
||
|
||
/**
|
||
* A rich diff editor.
|
||
*/
|
||
export interface IDiffEditor extends IEditor {
|
||
/**
|
||
* @see {@link ICodeEditor.getDomNode}
|
||
*/
|
||
getDomNode(): HTMLElement;
|
||
/**
|
||
* An event emitted when the diff information computed by this diff editor has been updated.
|
||
* @event
|
||
*/
|
||
onDidUpdateDiff(listener: () => void): IDisposable;
|
||
/**
|
||
* Saves current view state of the editor in a serializable object.
|
||
*/
|
||
saveViewState(): IDiffEditorViewState | null;
|
||
/**
|
||
* Restores the view state of the editor from a serializable object generated by `saveViewState`.
|
||
*/
|
||
restoreViewState(state: IDiffEditorViewState): void;
|
||
/**
|
||
* Type the getModel() of IEditor.
|
||
*/
|
||
getModel(): IDiffEditorModel | null;
|
||
/**
|
||
* Sets the current model attached to this editor.
|
||
* If the previous model was created by the editor via the value key in the options
|
||
* literal object, it will be destroyed. Otherwise, if the previous model was set
|
||
* via setModel, or the model key in the options literal object, the previous model
|
||
* will not be destroyed.
|
||
* It is safe to call setModel(null) to simply detach the current model from the editor.
|
||
*/
|
||
setModel(model: IDiffEditorModel | null): void;
|
||
/**
|
||
* Get the `original` editor.
|
||
*/
|
||
getOriginalEditor(): ICodeEditor;
|
||
/**
|
||
* Get the `modified` editor.
|
||
*/
|
||
getModifiedEditor(): ICodeEditor;
|
||
/**
|
||
* Get the computed diff information.
|
||
*/
|
||
getLineChanges(): ILineChange[] | null;
|
||
/**
|
||
* Get information based on computed diff about a line number from the original model.
|
||
* If the diff computation is not finished or the model is missing, will return null.
|
||
*/
|
||
getDiffLineInformationForOriginal(lineNumber: number): IDiffLineInformation | null;
|
||
/**
|
||
* Get information based on computed diff about a line number from the modified model.
|
||
* If the diff computation is not finished or the model is missing, will return null.
|
||
*/
|
||
getDiffLineInformationForModified(lineNumber: number): IDiffLineInformation | null;
|
||
/**
|
||
* Update the editor's options after the editor has been created.
|
||
*/
|
||
updateOptions(newOptions: IDiffEditorOptions): void;
|
||
}
|
||
|
||
export class FontInfo extends BareFontInfo {
|
||
readonly _editorStylingBrand: void;
|
||
readonly version: number;
|
||
readonly isTrusted: boolean;
|
||
readonly isMonospace: boolean;
|
||
readonly typicalHalfwidthCharacterWidth: number;
|
||
readonly typicalFullwidthCharacterWidth: number;
|
||
readonly canUseHalfwidthRightwardsArrow: boolean;
|
||
readonly spaceWidth: number;
|
||
readonly middotWidth: number;
|
||
readonly wsmiddotWidth: number;
|
||
readonly maxDigitWidth: number;
|
||
}
|
||
|
||
export class BareFontInfo {
|
||
readonly _bareFontInfoBrand: void;
|
||
readonly zoomLevel: number;
|
||
readonly pixelRatio: number;
|
||
readonly fontFamily: string;
|
||
readonly fontWeight: string;
|
||
readonly fontSize: number;
|
||
readonly fontFeatureSettings: string;
|
||
readonly lineHeight: number;
|
||
readonly letterSpacing: number;
|
||
}
|
||
|
||
//compatibility:
|
||
export type IReadOnlyModel = ITextModel;
|
||
export type IModel = ITextModel;
|
||
}
|
||
|
||
declare namespace monaco.languages {
|
||
|
||
|
||
/**
|
||
* Register information about a new language.
|
||
*/
|
||
export function register(language: ILanguageExtensionPoint): void;
|
||
|
||
/**
|
||
* Get the information of all the registered languages.
|
||
*/
|
||
export function getLanguages(): ILanguageExtensionPoint[];
|
||
|
||
export function getEncodedLanguageId(languageId: string): number;
|
||
|
||
/**
|
||
* An event emitted when a language is first time needed (e.g. a model has it set).
|
||
* @event
|
||
*/
|
||
export function onLanguage(languageId: string, callback: () => void): IDisposable;
|
||
|
||
/**
|
||
* Set the editing configuration for a language.
|
||
*/
|
||
export function setLanguageConfiguration(languageId: string, configuration: LanguageConfiguration): IDisposable;
|
||
|
||
/**
|
||
* A token.
|
||
*/
|
||
export interface IToken {
|
||
startIndex: number;
|
||
scopes: string;
|
||
}
|
||
|
||
/**
|
||
* The result of a line tokenization.
|
||
*/
|
||
export interface ILineTokens {
|
||
/**
|
||
* The list of tokens on the line.
|
||
*/
|
||
tokens: IToken[];
|
||
/**
|
||
* The tokenization end state.
|
||
* A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned.
|
||
*/
|
||
endState: IState;
|
||
}
|
||
|
||
/**
|
||
* The result of a line tokenization.
|
||
*/
|
||
export interface IEncodedLineTokens {
|
||
/**
|
||
* The tokens on the line in a binary, encoded format. Each token occupies two array indices. For token i:
|
||
* - at offset 2*i => startIndex
|
||
* - at offset 2*i + 1 => metadata
|
||
* Meta data is in binary format:
|
||
* - -------------------------------------------
|
||
* 3322 2222 2222 1111 1111 1100 0000 0000
|
||
* 1098 7654 3210 9876 5432 1098 7654 3210
|
||
* - -------------------------------------------
|
||
* bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL
|
||
* - -------------------------------------------
|
||
* - L = EncodedLanguageId (8 bits): Use `getEncodedLanguageId` to get the encoded ID of a language.
|
||
* - T = StandardTokenType (3 bits): Other = 0, Comment = 1, String = 2, RegEx = 4.
|
||
* - F = FontStyle (3 bits): None = 0, Italic = 1, Bold = 2, Underline = 4.
|
||
* - f = foreground ColorId (9 bits)
|
||
* - b = background ColorId (9 bits)
|
||
* - The color value for each colorId is defined in IStandaloneThemeData.customTokenColors:
|
||
* e.g. colorId = 1 is stored in IStandaloneThemeData.customTokenColors[1]. Color id = 0 means no color,
|
||
* id = 1 is for the default foreground color, id = 2 for the default background.
|
||
*/
|
||
tokens: Uint32Array;
|
||
/**
|
||
* The tokenization end state.
|
||
* A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned.
|
||
*/
|
||
endState: IState;
|
||
}
|
||
|
||
/**
|
||
* A "manual" provider of tokens.
|
||
*/
|
||
export interface TokensProvider {
|
||
/**
|
||
* The initial state of a language. Will be the state passed in to tokenize the first line.
|
||
*/
|
||
getInitialState(): IState;
|
||
/**
|
||
* Tokenize a line given the state at the beginning of the line.
|
||
*/
|
||
tokenize(line: string, state: IState): ILineTokens;
|
||
}
|
||
|
||
/**
|
||
* A "manual" provider of tokens, returning tokens in a binary form.
|
||
*/
|
||
export interface EncodedTokensProvider {
|
||
/**
|
||
* The initial state of a language. Will be the state passed in to tokenize the first line.
|
||
*/
|
||
getInitialState(): IState;
|
||
/**
|
||
* Tokenize a line given the state at the beginning of the line.
|
||
*/
|
||
tokenizeEncoded(line: string, state: IState): IEncodedLineTokens;
|
||
/**
|
||
* Tokenize a line given the state at the beginning of the line.
|
||
*/
|
||
tokenize?(line: string, state: IState): ILineTokens;
|
||
}
|
||
|
||
/**
|
||
* Change the color map that is used for token colors.
|
||
* Supported formats (hex): #RRGGBB, $RRGGBBAA, #RGB, #RGBA
|
||
*/
|
||
export function setColorMap(colorMap: string[] | null): void;
|
||
|
||
/**
|
||
* Set the tokens provider for a language (manual implementation).
|
||
*/
|
||
export function setTokensProvider(languageId: string, provider: TokensProvider | EncodedTokensProvider | Thenable<TokensProvider | EncodedTokensProvider>): IDisposable;
|
||
|
||
/**
|
||
* Set the tokens provider for a language (monarch implementation).
|
||
*/
|
||
export function setMonarchTokensProvider(languageId: string, languageDef: IMonarchLanguage | Thenable<IMonarchLanguage>): IDisposable;
|
||
|
||
/**
|
||
* Register a reference provider (used by e.g. reference search).
|
||
*/
|
||
export function registerReferenceProvider(languageId: string, provider: ReferenceProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a rename provider (used by e.g. rename symbol).
|
||
*/
|
||
export function registerRenameProvider(languageId: string, provider: RenameProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a signature help provider (used by e.g. parameter hints).
|
||
*/
|
||
export function registerSignatureHelpProvider(languageId: string, provider: SignatureHelpProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a hover provider (used by e.g. editor hover).
|
||
*/
|
||
export function registerHoverProvider(languageId: string, provider: HoverProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a document symbol provider (used by e.g. outline).
|
||
*/
|
||
export function registerDocumentSymbolProvider(languageId: string, provider: DocumentSymbolProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a document highlight provider (used by e.g. highlight occurrences).
|
||
*/
|
||
export function registerDocumentHighlightProvider(languageId: string, provider: DocumentHighlightProvider): IDisposable;
|
||
|
||
/**
|
||
* Register an linked editing range provider.
|
||
*/
|
||
export function registerLinkedEditingRangeProvider(languageId: string, provider: LinkedEditingRangeProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a definition provider (used by e.g. go to definition).
|
||
*/
|
||
export function registerDefinitionProvider(languageId: string, provider: DefinitionProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a implementation provider (used by e.g. go to implementation).
|
||
*/
|
||
export function registerImplementationProvider(languageId: string, provider: ImplementationProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a type definition provider (used by e.g. go to type definition).
|
||
*/
|
||
export function registerTypeDefinitionProvider(languageId: string, provider: TypeDefinitionProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a code lens provider (used by e.g. inline code lenses).
|
||
*/
|
||
export function registerCodeLensProvider(languageId: string, provider: CodeLensProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a code action provider (used by e.g. quick fix).
|
||
*/
|
||
export function registerCodeActionProvider(languageId: string, provider: CodeActionProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a formatter that can handle only entire models.
|
||
*/
|
||
export function registerDocumentFormattingEditProvider(languageId: string, provider: DocumentFormattingEditProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a formatter that can handle a range inside a model.
|
||
*/
|
||
export function registerDocumentRangeFormattingEditProvider(languageId: string, provider: DocumentRangeFormattingEditProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a formatter than can do formatting as the user types.
|
||
*/
|
||
export function registerOnTypeFormattingEditProvider(languageId: string, provider: OnTypeFormattingEditProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a link provider that can find links in text.
|
||
*/
|
||
export function registerLinkProvider(languageId: string, provider: LinkProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a completion item provider (use by e.g. suggestions).
|
||
*/
|
||
export function registerCompletionItemProvider(languageId: string, provider: CompletionItemProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a document color provider (used by Color Picker, Color Decorator).
|
||
*/
|
||
export function registerColorProvider(languageId: string, provider: DocumentColorProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a folding range provider
|
||
*/
|
||
export function registerFoldingRangeProvider(languageId: string, provider: FoldingRangeProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a declaration provider
|
||
*/
|
||
export function registerDeclarationProvider(languageId: string, provider: DeclarationProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a selection range provider
|
||
*/
|
||
export function registerSelectionRangeProvider(languageId: string, provider: SelectionRangeProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a document semantic tokens provider
|
||
*/
|
||
export function registerDocumentSemanticTokensProvider(languageId: string, provider: DocumentSemanticTokensProvider): IDisposable;
|
||
|
||
/**
|
||
* Register a document range semantic tokens provider
|
||
*/
|
||
export function registerDocumentRangeSemanticTokensProvider(languageId: string, provider: DocumentRangeSemanticTokensProvider): IDisposable;
|
||
|
||
/**
|
||
* Register an inline completions provider.
|
||
*/
|
||
export function registerInlineCompletionsProvider(languageId: string, provider: InlineCompletionsProvider): IDisposable;
|
||
|
||
/**
|
||
* Contains additional diagnostic information about the context in which
|
||
* a [code action](#CodeActionProvider.provideCodeActions) is run.
|
||
*/
|
||
export interface CodeActionContext {
|
||
/**
|
||
* An array of diagnostics.
|
||
*/
|
||
readonly markers: editor.IMarkerData[];
|
||
/**
|
||
* Requested kind of actions to return.
|
||
*/
|
||
readonly only?: string;
|
||
}
|
||
|
||
/**
|
||
* The code action interface defines the contract between extensions and
|
||
* the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature.
|
||
*/
|
||
export interface CodeActionProvider {
|
||
/**
|
||
* Provide commands for the given document and range.
|
||
*/
|
||
provideCodeActions(model: editor.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): ProviderResult<CodeActionList>;
|
||
}
|
||
|
||
/**
|
||
* Describes how comments for a language work.
|
||
*/
|
||
export interface CommentRule {
|
||
/**
|
||
* The line comment token, like `// this is a comment`
|
||
*/
|
||
lineComment?: string | null;
|
||
/**
|
||
* The block comment character pair, like `/* block comment */`
|
||
*/
|
||
blockComment?: CharacterPair | null;
|
||
}
|
||
|
||
/**
|
||
* The language configuration interface defines the contract between extensions and
|
||
* various editor features, like automatic bracket insertion, automatic indentation etc.
|
||
*/
|
||
export interface LanguageConfiguration {
|
||
/**
|
||
* The language's comment settings.
|
||
*/
|
||
comments?: CommentRule;
|
||
/**
|
||
* The language's brackets.
|
||
* This configuration implicitly affects pressing Enter around these brackets.
|
||
*/
|
||
brackets?: CharacterPair[];
|
||
/**
|
||
* The language's word definition.
|
||
* If the language supports Unicode identifiers (e.g. JavaScript), it is preferable
|
||
* to provide a word definition that uses exclusion of known separators.
|
||
* e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number):
|
||
* /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g
|
||
*/
|
||
wordPattern?: RegExp;
|
||
/**
|
||
* The language's indentation settings.
|
||
*/
|
||
indentationRules?: IndentationRule;
|
||
/**
|
||
* The language's rules to be evaluated when pressing Enter.
|
||
*/
|
||
onEnterRules?: OnEnterRule[];
|
||
/**
|
||
* The language's auto closing pairs. The 'close' character is automatically inserted with the
|
||
* 'open' character is typed. If not set, the configured brackets will be used.
|
||
*/
|
||
autoClosingPairs?: IAutoClosingPairConditional[];
|
||
/**
|
||
* The language's surrounding pairs. When the 'open' character is typed on a selection, the
|
||
* selected string is surrounded by the open and close characters. If not set, the autoclosing pairs
|
||
* settings will be used.
|
||
*/
|
||
surroundingPairs?: IAutoClosingPair[];
|
||
/**
|
||
* Defines what characters must be after the cursor for bracket or quote autoclosing to occur when using the \'languageDefined\' autoclosing setting.
|
||
*
|
||
* This is typically the set of characters which can not start an expression, such as whitespace, closing brackets, non-unary operators, etc.
|
||
*/
|
||
autoCloseBefore?: string;
|
||
/**
|
||
* The language's folding rules.
|
||
*/
|
||
folding?: FoldingRules;
|
||
/**
|
||
* **Deprecated** Do not use.
|
||
*
|
||
* @deprecated Will be replaced by a better API soon.
|
||
*/
|
||
__electricCharacterSupport?: {
|
||
docComment?: IDocComment;
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Describes indentation rules for a language.
|
||
*/
|
||
export interface IndentationRule {
|
||
/**
|
||
* If a line matches this pattern, then all the lines after it should be unindented once (until another rule matches).
|
||
*/
|
||
decreaseIndentPattern: RegExp;
|
||
/**
|
||
* If a line matches this pattern, then all the lines after it should be indented once (until another rule matches).
|
||
*/
|
||
increaseIndentPattern: RegExp;
|
||
/**
|
||
* If a line matches this pattern, then **only the next line** after it should be indented once.
|
||
*/
|
||
indentNextLinePattern?: RegExp | null;
|
||
/**
|
||
* If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules.
|
||
*/
|
||
unIndentedLinePattern?: RegExp | null;
|
||
}
|
||
|
||
/**
|
||
* Describes language specific folding markers such as '#region' and '#endregion'.
|
||
* The start and end regexes will be tested against the contents of all lines and must be designed efficiently:
|
||
* - the regex should start with '^'
|
||
* - regexp flags (i, g) are ignored
|
||
*/
|
||
export interface FoldingMarkers {
|
||
start: RegExp;
|
||
end: RegExp;
|
||
}
|
||
|
||
/**
|
||
* Describes folding rules for a language.
|
||
*/
|
||
export interface FoldingRules {
|
||
/**
|
||
* Used by the indentation based strategy to decide whether empty lines belong to the previous or the next block.
|
||
* A language adheres to the off-side rule if blocks in that language are expressed by their indentation.
|
||
* See [wikipedia](https://en.wikipedia.org/wiki/Off-side_rule) for more information.
|
||
* If not set, `false` is used and empty lines belong to the previous block.
|
||
*/
|
||
offSide?: boolean;
|
||
/**
|
||
* Region markers used by the language.
|
||
*/
|
||
markers?: FoldingMarkers;
|
||
}
|
||
|
||
/**
|
||
* Describes a rule to be evaluated when pressing Enter.
|
||
*/
|
||
export interface OnEnterRule {
|
||
/**
|
||
* This rule will only execute if the text before the cursor matches this regular expression.
|
||
*/
|
||
beforeText: RegExp;
|
||
/**
|
||
* This rule will only execute if the text after the cursor matches this regular expression.
|
||
*/
|
||
afterText?: RegExp;
|
||
/**
|
||
* This rule will only execute if the text above the this line matches this regular expression.
|
||
*/
|
||
previousLineText?: RegExp;
|
||
/**
|
||
* The action to execute.
|
||
*/
|
||
action: EnterAction;
|
||
}
|
||
|
||
/**
|
||
* Definition of documentation comments (e.g. Javadoc/JSdoc)
|
||
*/
|
||
export interface IDocComment {
|
||
/**
|
||
* The string that starts a doc comment (e.g. '/**')
|
||
*/
|
||
open: string;
|
||
/**
|
||
* The string that appears on the last line and closes the doc comment (e.g. ' * /').
|
||
*/
|
||
close?: string;
|
||
}
|
||
|
||
/**
|
||
* A tuple of two characters, like a pair of
|
||
* opening and closing brackets.
|
||
*/
|
||
export type CharacterPair = [string, string];
|
||
|
||
export interface IAutoClosingPair {
|
||
open: string;
|
||
close: string;
|
||
}
|
||
|
||
export interface IAutoClosingPairConditional extends IAutoClosingPair {
|
||
notIn?: string[];
|
||
}
|
||
|
||
/**
|
||
* Describes what to do with the indentation when pressing Enter.
|
||
*/
|
||
export enum IndentAction {
|
||
/**
|
||
* Insert new line and copy the previous line's indentation.
|
||
*/
|
||
None = 0,
|
||
/**
|
||
* Insert new line and indent once (relative to the previous line's indentation).
|
||
*/
|
||
Indent = 1,
|
||
/**
|
||
* Insert two new lines:
|
||
* - the first one indented which will hold the cursor
|
||
* - the second one at the same indentation level
|
||
*/
|
||
IndentOutdent = 2,
|
||
/**
|
||
* Insert new line and outdent once (relative to the previous line's indentation).
|
||
*/
|
||
Outdent = 3
|
||
}
|
||
|
||
/**
|
||
* Describes what to do when pressing Enter.
|
||
*/
|
||
export interface EnterAction {
|
||
/**
|
||
* Describe what to do with the indentation.
|
||
*/
|
||
indentAction: IndentAction;
|
||
/**
|
||
* Describes text to be appended after the new line and after the indentation.
|
||
*/
|
||
appendText?: string;
|
||
/**
|
||
* Describes the number of characters to remove from the new line's indentation.
|
||
*/
|
||
removeText?: number;
|
||
}
|
||
|
||
/**
|
||
* The state of the tokenizer between two lines.
|
||
* It is useful to store flags such as in multiline comment, etc.
|
||
* The model will clone the previous line's state and pass it in to tokenize the next line.
|
||
*/
|
||
export interface IState {
|
||
clone(): IState;
|
||
equals(other: IState): boolean;
|
||
}
|
||
|
||
/**
|
||
* A provider result represents the values a provider, like the {@link HoverProvider},
|
||
* may return. For once this is the actual result type `T`, like `Hover`, or a thenable that resolves
|
||
* to that type `T`. In addition, `null` and `undefined` can be returned - either directly or from a
|
||
* thenable.
|
||
*/
|
||
export type ProviderResult<T> = T | undefined | null | Thenable<T | undefined | null>;
|
||
|
||
/**
|
||
* A hover represents additional information for a symbol or word. Hovers are
|
||
* rendered in a tooltip-like widget.
|
||
*/
|
||
export interface Hover {
|
||
/**
|
||
* The contents of this hover.
|
||
*/
|
||
contents: IMarkdownString[];
|
||
/**
|
||
* The range to which this hover applies. When missing, the
|
||
* editor will use the range at the current position or the
|
||
* current position itself.
|
||
*/
|
||
range?: IRange;
|
||
}
|
||
|
||
/**
|
||
* The hover provider interface defines the contract between extensions and
|
||
* the [hover](https://code.visualstudio.com/docs/editor/intellisense)-feature.
|
||
*/
|
||
export interface HoverProvider {
|
||
/**
|
||
* Provide a hover for the given position and document. Multiple hovers at the same
|
||
* position will be merged by the editor. A hover can have a range which defaults
|
||
* to the word range at the position when omitted.
|
||
*/
|
||
provideHover(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Hover>;
|
||
}
|
||
|
||
export enum CompletionItemKind {
|
||
Method = 0,
|
||
Function = 1,
|
||
Constructor = 2,
|
||
Field = 3,
|
||
Variable = 4,
|
||
Class = 5,
|
||
Struct = 6,
|
||
Interface = 7,
|
||
Module = 8,
|
||
Property = 9,
|
||
Event = 10,
|
||
Operator = 11,
|
||
Unit = 12,
|
||
Value = 13,
|
||
Constant = 14,
|
||
Enum = 15,
|
||
EnumMember = 16,
|
||
Keyword = 17,
|
||
Text = 18,
|
||
Color = 19,
|
||
File = 20,
|
||
Reference = 21,
|
||
Customcolor = 22,
|
||
Folder = 23,
|
||
TypeParameter = 24,
|
||
User = 25,
|
||
Issue = 26,
|
||
Snippet = 27
|
||
}
|
||
|
||
export interface CompletionItemLabel {
|
||
/**
|
||
* The function or variable. Rendered leftmost.
|
||
*/
|
||
name: string;
|
||
/**
|
||
* The parameters without the return type. Render after `name`.
|
||
*/
|
||
parameters?: string;
|
||
/**
|
||
* The fully qualified name, like package name or file path. Rendered after `signature`.
|
||
*/
|
||
qualifier?: string;
|
||
/**
|
||
* The return-type of a function or type of a property/variable. Rendered rightmost.
|
||
*/
|
||
type?: string;
|
||
}
|
||
|
||
export enum CompletionItemTag {
|
||
Deprecated = 1
|
||
}
|
||
|
||
export enum CompletionItemInsertTextRule {
|
||
/**
|
||
* Adjust whitespace/indentation of multiline insert texts to
|
||
* match the current line indentation.
|
||
*/
|
||
KeepWhitespace = 1,
|
||
/**
|
||
* `insertText` is a snippet.
|
||
*/
|
||
InsertAsSnippet = 4
|
||
}
|
||
|
||
/**
|
||
* A completion item represents a text snippet that is
|
||
* proposed to complete text that is being typed.
|
||
*/
|
||
export interface CompletionItem {
|
||
/**
|
||
* The label of this completion item. By default
|
||
* this is also the text that is inserted when selecting
|
||
* this completion.
|
||
*/
|
||
label: string | CompletionItemLabel;
|
||
/**
|
||
* The kind of this completion item. Based on the kind
|
||
* an icon is chosen by the editor.
|
||
*/
|
||
kind: CompletionItemKind;
|
||
/**
|
||
* A modifier to the `kind` which affect how the item
|
||
* is rendered, e.g. Deprecated is rendered with a strikeout
|
||
*/
|
||
tags?: ReadonlyArray<CompletionItemTag>;
|
||
/**
|
||
* A human-readable string with additional information
|
||
* about this item, like type or symbol information.
|
||
*/
|
||
detail?: string;
|
||
/**
|
||
* A human-readable string that represents a doc-comment.
|
||
*/
|
||
documentation?: string | IMarkdownString;
|
||
/**
|
||
* A string that should be used when comparing this item
|
||
* with other items. When `falsy` the {@link CompletionItem.label label}
|
||
* is used.
|
||
*/
|
||
sortText?: string;
|
||
/**
|
||
* A string that should be used when filtering a set of
|
||
* completion items. When `falsy` the {@link CompletionItem.label label}
|
||
* is used.
|
||
*/
|
||
filterText?: string;
|
||
/**
|
||
* Select this item when showing. *Note* that only one completion item can be selected and
|
||
* that the editor decides which item that is. The rule is that the *first* item of those
|
||
* that match best is selected.
|
||
*/
|
||
preselect?: boolean;
|
||
/**
|
||
* A string or snippet that should be inserted in a document when selecting
|
||
* this completion.
|
||
* is used.
|
||
*/
|
||
insertText: string;
|
||
/**
|
||
* Addition rules (as bitmask) that should be applied when inserting
|
||
* this completion.
|
||
*/
|
||
insertTextRules?: CompletionItemInsertTextRule;
|
||
/**
|
||
* A range of text that should be replaced by this completion item.
|
||
*
|
||
* Defaults to a range from the start of the {@link TextDocument.getWordRangeAtPosition current word} to the
|
||
* current position.
|
||
*
|
||
* *Note:* The range must be a {@link Range.isSingleLine single line} and it must
|
||
* {@link Range.contains contain} the position at which completion has been {@link CompletionItemProvider.provideCompletionItems requested}.
|
||
*/
|
||
range: IRange | {
|
||
insert: IRange;
|
||
replace: IRange;
|
||
};
|
||
/**
|
||
* An optional set of characters that when pressed while this completion is active will accept it first and
|
||
* then type that character. *Note* that all commit characters should have `length=1` and that superfluous
|
||
* characters will be ignored.
|
||
*/
|
||
commitCharacters?: string[];
|
||
/**
|
||
* An optional array of additional text edits that are applied when
|
||
* selecting this completion. Edits must not overlap with the main edit
|
||
* nor with themselves.
|
||
*/
|
||
additionalTextEdits?: editor.ISingleEditOperation[];
|
||
/**
|
||
* A command that should be run upon acceptance of this item.
|
||
*/
|
||
command?: Command;
|
||
}
|
||
|
||
export interface CompletionList {
|
||
suggestions: CompletionItem[];
|
||
incomplete?: boolean;
|
||
dispose?(): void;
|
||
}
|
||
|
||
/**
|
||
* How a suggest provider was triggered.
|
||
*/
|
||
export enum CompletionTriggerKind {
|
||
Invoke = 0,
|
||
TriggerCharacter = 1,
|
||
TriggerForIncompleteCompletions = 2
|
||
}
|
||
|
||
/**
|
||
* Contains additional information about the context in which
|
||
* {@link CompletionItemProvider.provideCompletionItems completion provider} is triggered.
|
||
*/
|
||
export interface CompletionContext {
|
||
/**
|
||
* How the completion was triggered.
|
||
*/
|
||
triggerKind: CompletionTriggerKind;
|
||
/**
|
||
* Character that triggered the completion item provider.
|
||
*
|
||
* `undefined` if provider was not triggered by a character.
|
||
*/
|
||
triggerCharacter?: string;
|
||
}
|
||
|
||
/**
|
||
* The completion item provider interface defines the contract between extensions and
|
||
* the [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense).
|
||
*
|
||
* When computing *complete* completion items is expensive, providers can optionally implement
|
||
* the `resolveCompletionItem`-function. In that case it is enough to return completion
|
||
* items with a {@link CompletionItem.label label} from the
|
||
* {@link CompletionItemProvider.provideCompletionItems provideCompletionItems}-function. Subsequently,
|
||
* when a completion item is shown in the UI and gains focus this provider is asked to resolve
|
||
* the item, like adding {@link CompletionItem.documentation doc-comment} or {@link CompletionItem.detail details}.
|
||
*/
|
||
export interface CompletionItemProvider {
|
||
triggerCharacters?: string[];
|
||
/**
|
||
* Provide completion items for the given position and document.
|
||
*/
|
||
provideCompletionItems(model: editor.ITextModel, position: Position, context: CompletionContext, token: CancellationToken): ProviderResult<CompletionList>;
|
||
/**
|
||
* Given a completion item fill in more data, like {@link CompletionItem.documentation doc-comment}
|
||
* or {@link CompletionItem.detail details}.
|
||
*
|
||
* The editor will only resolve a completion item once.
|
||
*/
|
||
resolveCompletionItem?(item: CompletionItem, token: CancellationToken): ProviderResult<CompletionItem>;
|
||
}
|
||
|
||
/**
|
||
* How an {@link InlineCompletionsProvider inline completion provider} was triggered.
|
||
*/
|
||
export enum InlineCompletionTriggerKind {
|
||
/**
|
||
* Completion was triggered automatically while editing.
|
||
* It is sufficient to return a single completion item in this case.
|
||
*/
|
||
Automatic = 0,
|
||
/**
|
||
* Completion was triggered explicitly by a user gesture.
|
||
* Return multiple completion items to enable cycling through them.
|
||
*/
|
||
Explicit = 1
|
||
}
|
||
|
||
export interface InlineCompletionContext {
|
||
/**
|
||
* How the completion was triggered.
|
||
*/
|
||
readonly triggerKind: InlineCompletionTriggerKind;
|
||
}
|
||
|
||
export interface InlineCompletion {
|
||
/**
|
||
* The text to insert.
|
||
* If the text contains a line break, the range must end at the end of a line.
|
||
* If existing text should be replaced, the existing text must be a prefix of the text to insert.
|
||
*/
|
||
readonly text: string;
|
||
/**
|
||
* The range to replace.
|
||
* Must begin and end on the same line.
|
||
*/
|
||
readonly range?: IRange;
|
||
readonly command?: Command;
|
||
}
|
||
|
||
export interface InlineCompletions<TItem extends InlineCompletion = InlineCompletion> {
|
||
readonly items: readonly TItem[];
|
||
}
|
||
|
||
export interface InlineCompletionsProvider<T extends InlineCompletions = InlineCompletions> {
|
||
provideInlineCompletions(model: editor.ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<T>;
|
||
/**
|
||
* Will be called when an item is shown.
|
||
*/
|
||
handleItemDidShow?(completions: T, item: T['items'][number]): void;
|
||
/**
|
||
* Will be called when a completions list is no longer in use and can be garbage-collected.
|
||
*/
|
||
freeInlineCompletions(completions: T): void;
|
||
}
|
||
|
||
export interface CodeAction {
|
||
title: string;
|
||
command?: Command;
|
||
edit?: WorkspaceEdit;
|
||
diagnostics?: editor.IMarkerData[];
|
||
kind?: string;
|
||
isPreferred?: boolean;
|
||
disabled?: string;
|
||
}
|
||
|
||
export interface CodeActionList extends IDisposable {
|
||
readonly actions: ReadonlyArray<CodeAction>;
|
||
}
|
||
|
||
/**
|
||
* Represents a parameter of a callable-signature. A parameter can
|
||
* have a label and a doc-comment.
|
||
*/
|
||
export interface ParameterInformation {
|
||
/**
|
||
* The label of this signature. Will be shown in
|
||
* the UI.
|
||
*/
|
||
label: string | [number, number];
|
||
/**
|
||
* The human-readable doc-comment of this signature. Will be shown
|
||
* in the UI but can be omitted.
|
||
*/
|
||
documentation?: string | IMarkdownString;
|
||
}
|
||
|
||
/**
|
||
* Represents the signature of something callable. A signature
|
||
* can have a label, like a function-name, a doc-comment, and
|
||
* a set of parameters.
|
||
*/
|
||
export interface SignatureInformation {
|
||
/**
|
||
* The label of this signature. Will be shown in
|
||
* the UI.
|
||
*/
|
||
label: string;
|
||
/**
|
||
* The human-readable doc-comment of this signature. Will be shown
|
||
* in the UI but can be omitted.
|
||
*/
|
||
documentation?: string | IMarkdownString;
|
||
/**
|
||
* The parameters of this signature.
|
||
*/
|
||
parameters: ParameterInformation[];
|
||
/**
|
||
* Index of the active parameter.
|
||
*
|
||
* If provided, this is used in place of `SignatureHelp.activeSignature`.
|
||
*/
|
||
activeParameter?: number;
|
||
}
|
||
|
||
/**
|
||
* Signature help represents the signature of something
|
||
* callable. There can be multiple signatures but only one
|
||
* active and only one active parameter.
|
||
*/
|
||
export interface SignatureHelp {
|
||
/**
|
||
* One or more signatures.
|
||
*/
|
||
signatures: SignatureInformation[];
|
||
/**
|
||
* The active signature.
|
||
*/
|
||
activeSignature: number;
|
||
/**
|
||
* The active parameter of the active signature.
|
||
*/
|
||
activeParameter: number;
|
||
}
|
||
|
||
export interface SignatureHelpResult extends IDisposable {
|
||
value: SignatureHelp;
|
||
}
|
||
|
||
export enum SignatureHelpTriggerKind {
|
||
Invoke = 1,
|
||
TriggerCharacter = 2,
|
||
ContentChange = 3
|
||
}
|
||
|
||
export interface SignatureHelpContext {
|
||
readonly triggerKind: SignatureHelpTriggerKind;
|
||
readonly triggerCharacter?: string;
|
||
readonly isRetrigger: boolean;
|
||
readonly activeSignatureHelp?: SignatureHelp;
|
||
}
|
||
|
||
/**
|
||
* The signature help provider interface defines the contract between extensions and
|
||
* the [parameter hints](https://code.visualstudio.com/docs/editor/intellisense)-feature.
|
||
*/
|
||
export interface SignatureHelpProvider {
|
||
readonly signatureHelpTriggerCharacters?: ReadonlyArray<string>;
|
||
readonly signatureHelpRetriggerCharacters?: ReadonlyArray<string>;
|
||
/**
|
||
* Provide help for the signature at the given position and document.
|
||
*/
|
||
provideSignatureHelp(model: editor.ITextModel, position: Position, token: CancellationToken, context: SignatureHelpContext): ProviderResult<SignatureHelpResult>;
|
||
}
|
||
|
||
/**
|
||
* A document highlight kind.
|
||
*/
|
||
export enum DocumentHighlightKind {
|
||
/**
|
||
* A textual occurrence.
|
||
*/
|
||
Text = 0,
|
||
/**
|
||
* Read-access of a symbol, like reading a variable.
|
||
*/
|
||
Read = 1,
|
||
/**
|
||
* Write-access of a symbol, like writing to a variable.
|
||
*/
|
||
Write = 2
|
||
}
|
||
|
||
/**
|
||
* A document highlight is a range inside a text document which deserves
|
||
* special attention. Usually a document highlight is visualized by changing
|
||
* the background color of its range.
|
||
*/
|
||
export interface DocumentHighlight {
|
||
/**
|
||
* The range this highlight applies to.
|
||
*/
|
||
range: IRange;
|
||
/**
|
||
* The highlight kind, default is {@link DocumentHighlightKind.Text text}.
|
||
*/
|
||
kind?: DocumentHighlightKind;
|
||
}
|
||
|
||
/**
|
||
* The document highlight provider interface defines the contract between extensions and
|
||
* the word-highlight-feature.
|
||
*/
|
||
export interface DocumentHighlightProvider {
|
||
/**
|
||
* Provide a set of document highlights, like all occurrences of a variable or
|
||
* all exit-points of a function.
|
||
*/
|
||
provideDocumentHighlights(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<DocumentHighlight[]>;
|
||
}
|
||
|
||
/**
|
||
* The linked editing range provider interface defines the contract between extensions and
|
||
* the linked editing feature.
|
||
*/
|
||
export interface LinkedEditingRangeProvider {
|
||
/**
|
||
* Provide a list of ranges that can be edited together.
|
||
*/
|
||
provideLinkedEditingRanges(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<LinkedEditingRanges>;
|
||
}
|
||
|
||
/**
|
||
* Represents a list of ranges that can be edited together along with a word pattern to describe valid contents.
|
||
*/
|
||
export interface LinkedEditingRanges {
|
||
/**
|
||
* A list of ranges that can be edited together. The ranges must have
|
||
* identical length and text content. The ranges cannot overlap
|
||
*/
|
||
ranges: IRange[];
|
||
/**
|
||
* An optional word pattern that describes valid contents for the given ranges.
|
||
* If no pattern is provided, the language configuration's word pattern will be used.
|
||
*/
|
||
wordPattern?: RegExp;
|
||
}
|
||
|
||
/**
|
||
* Value-object that contains additional information when
|
||
* requesting references.
|
||
*/
|
||
export interface ReferenceContext {
|
||
/**
|
||
* Include the declaration of the current symbol.
|
||
*/
|
||
includeDeclaration: boolean;
|
||
}
|
||
|
||
/**
|
||
* The reference provider interface defines the contract between extensions and
|
||
* the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature.
|
||
*/
|
||
export interface ReferenceProvider {
|
||
/**
|
||
* Provide a set of project-wide references for the given position and document.
|
||
*/
|
||
provideReferences(model: editor.ITextModel, position: Position, context: ReferenceContext, token: CancellationToken): ProviderResult<Location[]>;
|
||
}
|
||
|
||
/**
|
||
* Represents a location inside a resource, such as a line
|
||
* inside a text file.
|
||
*/
|
||
export interface Location {
|
||
/**
|
||
* The resource identifier of this location.
|
||
*/
|
||
uri: Uri;
|
||
/**
|
||
* The document range of this locations.
|
||
*/
|
||
range: IRange;
|
||
}
|
||
|
||
export interface LocationLink {
|
||
/**
|
||
* A range to select where this link originates from.
|
||
*/
|
||
originSelectionRange?: IRange;
|
||
/**
|
||
* The target uri this link points to.
|
||
*/
|
||
uri: Uri;
|
||
/**
|
||
* The full range this link points to.
|
||
*/
|
||
range: IRange;
|
||
/**
|
||
* A range to select this link points to. Must be contained
|
||
* in `LocationLink.range`.
|
||
*/
|
||
targetSelectionRange?: IRange;
|
||
}
|
||
|
||
export type Definition = Location | Location[] | LocationLink[];
|
||
|
||
/**
|
||
* The definition provider interface defines the contract between extensions and
|
||
* the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition)
|
||
* and peek definition features.
|
||
*/
|
||
export interface DefinitionProvider {
|
||
/**
|
||
* Provide the definition of the symbol at the given position and document.
|
||
*/
|
||
provideDefinition(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;
|
||
}
|
||
|
||
/**
|
||
* The definition provider interface defines the contract between extensions and
|
||
* the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition)
|
||
* and peek definition features.
|
||
*/
|
||
export interface DeclarationProvider {
|
||
/**
|
||
* Provide the declaration of the symbol at the given position and document.
|
||
*/
|
||
provideDeclaration(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;
|
||
}
|
||
|
||
/**
|
||
* The implementation provider interface defines the contract between extensions and
|
||
* the go to implementation feature.
|
||
*/
|
||
export interface ImplementationProvider {
|
||
/**
|
||
* Provide the implementation of the symbol at the given position and document.
|
||
*/
|
||
provideImplementation(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;
|
||
}
|
||
|
||
/**
|
||
* The type definition provider interface defines the contract between extensions and
|
||
* the go to type definition feature.
|
||
*/
|
||
export interface TypeDefinitionProvider {
|
||
/**
|
||
* Provide the type definition of the symbol at the given position and document.
|
||
*/
|
||
provideTypeDefinition(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;
|
||
}
|
||
|
||
/**
|
||
* A symbol kind.
|
||
*/
|
||
export enum SymbolKind {
|
||
File = 0,
|
||
Module = 1,
|
||
Namespace = 2,
|
||
Package = 3,
|
||
Class = 4,
|
||
Method = 5,
|
||
Property = 6,
|
||
Field = 7,
|
||
Constructor = 8,
|
||
Enum = 9,
|
||
Interface = 10,
|
||
Function = 11,
|
||
Variable = 12,
|
||
Constant = 13,
|
||
String = 14,
|
||
Number = 15,
|
||
Boolean = 16,
|
||
Array = 17,
|
||
Object = 18,
|
||
Key = 19,
|
||
Null = 20,
|
||
EnumMember = 21,
|
||
Struct = 22,
|
||
Event = 23,
|
||
Operator = 24,
|
||
TypeParameter = 25
|
||
}
|
||
|
||
export enum SymbolTag {
|
||
Deprecated = 1
|
||
}
|
||
|
||
export interface DocumentSymbol {
|
||
name: string;
|
||
detail: string;
|
||
kind: SymbolKind;
|
||
tags: ReadonlyArray<SymbolTag>;
|
||
containerName?: string;
|
||
range: IRange;
|
||
selectionRange: IRange;
|
||
children?: DocumentSymbol[];
|
||
}
|
||
|
||
/**
|
||
* The document symbol provider interface defines the contract between extensions and
|
||
* the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-symbol)-feature.
|
||
*/
|
||
export interface DocumentSymbolProvider {
|
||
displayName?: string;
|
||
/**
|
||
* Provide symbol information for the given document.
|
||
*/
|
||
provideDocumentSymbols(model: editor.ITextModel, token: CancellationToken): ProviderResult<DocumentSymbol[]>;
|
||
}
|
||
|
||
export type TextEdit = {
|
||
range: IRange;
|
||
text: string;
|
||
eol?: editor.EndOfLineSequence;
|
||
};
|
||
|
||
/**
|
||
* Interface used to format a model
|
||
*/
|
||
export interface FormattingOptions {
|
||
/**
|
||
* Size of a tab in spaces.
|
||
*/
|
||
tabSize: number;
|
||
/**
|
||
* Prefer spaces over tabs.
|
||
*/
|
||
insertSpaces: boolean;
|
||
}
|
||
|
||
/**
|
||
* The document formatting provider interface defines the contract between extensions and
|
||
* the formatting-feature.
|
||
*/
|
||
export interface DocumentFormattingEditProvider {
|
||
readonly displayName?: string;
|
||
/**
|
||
* Provide formatting edits for a whole document.
|
||
*/
|
||
provideDocumentFormattingEdits(model: editor.ITextModel, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;
|
||
}
|
||
|
||
/**
|
||
* The document formatting provider interface defines the contract between extensions and
|
||
* the formatting-feature.
|
||
*/
|
||
export interface DocumentRangeFormattingEditProvider {
|
||
readonly displayName?: string;
|
||
/**
|
||
* Provide formatting edits for a range in a document.
|
||
*
|
||
* The given range is a hint and providers can decide to format a smaller
|
||
* or larger range. Often this is done by adjusting the start and end
|
||
* of the range to full syntax nodes.
|
||
*/
|
||
provideDocumentRangeFormattingEdits(model: editor.ITextModel, range: Range, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;
|
||
}
|
||
|
||
/**
|
||
* The document formatting provider interface defines the contract between extensions and
|
||
* the formatting-feature.
|
||
*/
|
||
export interface OnTypeFormattingEditProvider {
|
||
autoFormatTriggerCharacters: string[];
|
||
/**
|
||
* Provide formatting edits after a character has been typed.
|
||
*
|
||
* The given position and character should hint to the provider
|
||
* what range the position to expand to, like find the matching `{`
|
||
* when `}` has been entered.
|
||
*/
|
||
provideOnTypeFormattingEdits(model: editor.ITextModel, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;
|
||
}
|
||
|
||
/**
|
||
* A link inside the editor.
|
||
*/
|
||
export interface ILink {
|
||
range: IRange;
|
||
url?: Uri | string;
|
||
tooltip?: string;
|
||
}
|
||
|
||
export interface ILinksList {
|
||
links: ILink[];
|
||
dispose?(): void;
|
||
}
|
||
|
||
/**
|
||
* A provider of links.
|
||
*/
|
||
export interface LinkProvider {
|
||
provideLinks(model: editor.ITextModel, token: CancellationToken): ProviderResult<ILinksList>;
|
||
resolveLink?: (link: ILink, token: CancellationToken) => ProviderResult<ILink>;
|
||
}
|
||
|
||
/**
|
||
* A color in RGBA format.
|
||
*/
|
||
export interface IColor {
|
||
/**
|
||
* The red component in the range [0-1].
|
||
*/
|
||
readonly red: number;
|
||
/**
|
||
* The green component in the range [0-1].
|
||
*/
|
||
readonly green: number;
|
||
/**
|
||
* The blue component in the range [0-1].
|
||
*/
|
||
readonly blue: number;
|
||
/**
|
||
* The alpha component in the range [0-1].
|
||
*/
|
||
readonly alpha: number;
|
||
}
|
||
|
||
/**
|
||
* String representations for a color
|
||
*/
|
||
export interface IColorPresentation {
|
||
/**
|
||
* The label of this color presentation. It will be shown on the color
|
||
* picker header. By default this is also the text that is inserted when selecting
|
||
* this color presentation.
|
||
*/
|
||
label: string;
|
||
/**
|
||
* An {@link TextEdit edit} which is applied to a document when selecting
|
||
* this presentation for the color.
|
||
*/
|
||
textEdit?: TextEdit;
|
||
/**
|
||
* An optional array of additional {@link TextEdit text edits} that are applied when
|
||
* selecting this color presentation.
|
||
*/
|
||
additionalTextEdits?: TextEdit[];
|
||
}
|
||
|
||
/**
|
||
* A color range is a range in a text model which represents a color.
|
||
*/
|
||
export interface IColorInformation {
|
||
/**
|
||
* The range within the model.
|
||
*/
|
||
range: IRange;
|
||
/**
|
||
* The color represented in this range.
|
||
*/
|
||
color: IColor;
|
||
}
|
||
|
||
/**
|
||
* A provider of colors for editor models.
|
||
*/
|
||
export interface DocumentColorProvider {
|
||
/**
|
||
* Provides the color ranges for a specific model.
|
||
*/
|
||
provideDocumentColors(model: editor.ITextModel, token: CancellationToken): ProviderResult<IColorInformation[]>;
|
||
/**
|
||
* Provide the string representations for a color.
|
||
*/
|
||
provideColorPresentations(model: editor.ITextModel, colorInfo: IColorInformation, token: CancellationToken): ProviderResult<IColorPresentation[]>;
|
||
}
|
||
|
||
export interface SelectionRange {
|
||
range: IRange;
|
||
}
|
||
|
||
export interface SelectionRangeProvider {
|
||
/**
|
||
* Provide ranges that should be selected from the given position.
|
||
*/
|
||
provideSelectionRanges(model: editor.ITextModel, positions: Position[], token: CancellationToken): ProviderResult<SelectionRange[][]>;
|
||
}
|
||
|
||
export interface FoldingContext {
|
||
}
|
||
|
||
/**
|
||
* A provider of folding ranges for editor models.
|
||
*/
|
||
export interface FoldingRangeProvider {
|
||
/**
|
||
* An optional event to signal that the folding ranges from this provider have changed.
|
||
*/
|
||
onDidChange?: IEvent<this>;
|
||
/**
|
||
* Provides the folding ranges for a specific model.
|
||
*/
|
||
provideFoldingRanges(model: editor.ITextModel, context: FoldingContext, token: CancellationToken): ProviderResult<FoldingRange[]>;
|
||
}
|
||
|
||
export interface FoldingRange {
|
||
/**
|
||
* The one-based start line of the range to fold. The folded area starts after the line's last character.
|
||
*/
|
||
start: number;
|
||
/**
|
||
* The one-based end line of the range to fold. The folded area ends with the line's last character.
|
||
*/
|
||
end: number;
|
||
/**
|
||
* Describes the {@link FoldingRangeKind Kind} of the folding range such as {@link FoldingRangeKind.Comment Comment} or
|
||
* {@link FoldingRangeKind.Region Region}. The kind is used to categorize folding ranges and used by commands
|
||
* like 'Fold all comments'. See
|
||
* {@link FoldingRangeKind} for an enumeration of standardized kinds.
|
||
*/
|
||
kind?: FoldingRangeKind;
|
||
}
|
||
|
||
export class FoldingRangeKind {
|
||
value: string;
|
||
/**
|
||
* Kind for folding range representing a comment. The value of the kind is 'comment'.
|
||
*/
|
||
static readonly Comment: FoldingRangeKind;
|
||
/**
|
||
* Kind for folding range representing a import. The value of the kind is 'imports'.
|
||
*/
|
||
static readonly Imports: FoldingRangeKind;
|
||
/**
|
||
* Kind for folding range representing regions (for example marked by `#region`, `#endregion`).
|
||
* The value of the kind is 'region'.
|
||
*/
|
||
static readonly Region: FoldingRangeKind;
|
||
/**
|
||
* Creates a new {@link FoldingRangeKind}.
|
||
*
|
||
* @param value of the kind.
|
||
*/
|
||
constructor(value: string);
|
||
}
|
||
|
||
export interface WorkspaceEditMetadata {
|
||
needsConfirmation: boolean;
|
||
label: string;
|
||
description?: string;
|
||
}
|
||
|
||
export interface WorkspaceFileEditOptions {
|
||
overwrite?: boolean;
|
||
ignoreIfNotExists?: boolean;
|
||
ignoreIfExists?: boolean;
|
||
recursive?: boolean;
|
||
copy?: boolean;
|
||
folder?: boolean;
|
||
skipTrashBin?: boolean;
|
||
maxSize?: number;
|
||
}
|
||
|
||
export interface WorkspaceFileEdit {
|
||
oldUri?: Uri;
|
||
newUri?: Uri;
|
||
options?: WorkspaceFileEditOptions;
|
||
metadata?: WorkspaceEditMetadata;
|
||
}
|
||
|
||
export interface WorkspaceTextEdit {
|
||
resource: Uri;
|
||
edit: TextEdit;
|
||
modelVersionId?: number;
|
||
metadata?: WorkspaceEditMetadata;
|
||
}
|
||
|
||
export interface WorkspaceEdit {
|
||
edits: Array<WorkspaceTextEdit | WorkspaceFileEdit>;
|
||
}
|
||
|
||
export interface Rejection {
|
||
rejectReason?: string;
|
||
}
|
||
|
||
export interface RenameLocation {
|
||
range: IRange;
|
||
text: string;
|
||
}
|
||
|
||
export interface RenameProvider {
|
||
provideRenameEdits(model: editor.ITextModel, position: Position, newName: string, token: CancellationToken): ProviderResult<WorkspaceEdit & Rejection>;
|
||
resolveRenameLocation?(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<RenameLocation & Rejection>;
|
||
}
|
||
|
||
export interface Command {
|
||
id: string;
|
||
title: string;
|
||
tooltip?: string;
|
||
arguments?: any[];
|
||
}
|
||
|
||
export interface CodeLens {
|
||
range: IRange;
|
||
id?: string;
|
||
command?: Command;
|
||
}
|
||
|
||
export interface CodeLensList {
|
||
lenses: CodeLens[];
|
||
dispose(): void;
|
||
}
|
||
|
||
export interface CodeLensProvider {
|
||
onDidChange?: IEvent<this>;
|
||
provideCodeLenses(model: editor.ITextModel, token: CancellationToken): ProviderResult<CodeLensList>;
|
||
resolveCodeLens?(model: editor.ITextModel, codeLens: CodeLens, token: CancellationToken): ProviderResult<CodeLens>;
|
||
}
|
||
|
||
export enum InlayHintKind {
|
||
Other = 0,
|
||
Type = 1,
|
||
Parameter = 2
|
||
}
|
||
|
||
export interface InlayHint {
|
||
text: string;
|
||
position: IPosition;
|
||
kind: InlayHintKind;
|
||
whitespaceBefore?: boolean;
|
||
whitespaceAfter?: boolean;
|
||
}
|
||
|
||
export interface InlayHintsProvider {
|
||
onDidChangeInlayHints?: IEvent<void> | undefined;
|
||
provideInlayHints(model: editor.ITextModel, range: Range, token: CancellationToken): ProviderResult<InlayHint[]>;
|
||
}
|
||
|
||
export interface SemanticTokensLegend {
|
||
readonly tokenTypes: string[];
|
||
readonly tokenModifiers: string[];
|
||
}
|
||
|
||
export interface SemanticTokens {
|
||
readonly resultId?: string;
|
||
readonly data: Uint32Array;
|
||
}
|
||
|
||
export interface SemanticTokensEdit {
|
||
readonly start: number;
|
||
readonly deleteCount: number;
|
||
readonly data?: Uint32Array;
|
||
}
|
||
|
||
export interface SemanticTokensEdits {
|
||
readonly resultId?: string;
|
||
readonly edits: SemanticTokensEdit[];
|
||
}
|
||
|
||
export interface DocumentSemanticTokensProvider {
|
||
onDidChange?: IEvent<void>;
|
||
getLegend(): SemanticTokensLegend;
|
||
provideDocumentSemanticTokens(model: editor.ITextModel, lastResultId: string | null, token: CancellationToken): ProviderResult<SemanticTokens | SemanticTokensEdits>;
|
||
releaseDocumentSemanticTokens(resultId: string | undefined): void;
|
||
}
|
||
|
||
export interface DocumentRangeSemanticTokensProvider {
|
||
getLegend(): SemanticTokensLegend;
|
||
provideDocumentRangeSemanticTokens(model: editor.ITextModel, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>;
|
||
}
|
||
|
||
export interface ILanguageExtensionPoint {
|
||
id: string;
|
||
extensions?: string[];
|
||
filenames?: string[];
|
||
filenamePatterns?: string[];
|
||
firstLine?: string;
|
||
aliases?: string[];
|
||
mimetypes?: string[];
|
||
configuration?: Uri;
|
||
}
|
||
/**
|
||
* A Monarch language definition
|
||
*/
|
||
export interface IMonarchLanguage {
|
||
/**
|
||
* map from string to ILanguageRule[]
|
||
*/
|
||
tokenizer: {
|
||
[name: string]: IMonarchLanguageRule[];
|
||
};
|
||
/**
|
||
* is the language case insensitive?
|
||
*/
|
||
ignoreCase?: boolean;
|
||
/**
|
||
* is the language unicode-aware? (i.e., /\u{1D306}/)
|
||
*/
|
||
unicode?: boolean;
|
||
/**
|
||
* if no match in the tokenizer assign this token class (default 'source')
|
||
*/
|
||
defaultToken?: string;
|
||
/**
|
||
* for example [['{','}','delimiter.curly']]
|
||
*/
|
||
brackets?: IMonarchLanguageBracket[];
|
||
/**
|
||
* start symbol in the tokenizer (by default the first entry is used)
|
||
*/
|
||
start?: string;
|
||
/**
|
||
* attach this to every token class (by default '.' + name)
|
||
*/
|
||
tokenPostfix?: string;
|
||
/**
|
||
* include line feeds (in the form of a \n character) at the end of lines
|
||
* Defaults to false
|
||
*/
|
||
includeLF?: boolean;
|
||
/**
|
||
* Other keys that can be referred to by the tokenizer.
|
||
*/
|
||
[key: string]: any;
|
||
}
|
||
|
||
/**
|
||
* A rule is either a regular expression and an action
|
||
* shorthands: [reg,act] == { regex: reg, action: act}
|
||
* and : [reg,act,nxt] == { regex: reg, action: act{ next: nxt }}
|
||
*/
|
||
export type IShortMonarchLanguageRule1 = [string | RegExp, IMonarchLanguageAction];
|
||
|
||
export type IShortMonarchLanguageRule2 = [string | RegExp, IMonarchLanguageAction, string];
|
||
|
||
export interface IExpandedMonarchLanguageRule {
|
||
/**
|
||
* match tokens
|
||
*/
|
||
regex?: string | RegExp;
|
||
/**
|
||
* action to take on match
|
||
*/
|
||
action?: IMonarchLanguageAction;
|
||
/**
|
||
* or an include rule. include all rules from the included state
|
||
*/
|
||
include?: string;
|
||
}
|
||
|
||
export type IMonarchLanguageRule = IShortMonarchLanguageRule1 | IShortMonarchLanguageRule2 | IExpandedMonarchLanguageRule;
|
||
|
||
/**
|
||
* An action is either an array of actions...
|
||
* ... or a case statement with guards...
|
||
* ... or a basic action with a token value.
|
||
*/
|
||
export type IShortMonarchLanguageAction = string;
|
||
|
||
export interface IExpandedMonarchLanguageAction {
|
||
/**
|
||
* array of actions for each parenthesized match group
|
||
*/
|
||
group?: IMonarchLanguageAction[];
|
||
/**
|
||
* map from string to ILanguageAction
|
||
*/
|
||
cases?: Object;
|
||
/**
|
||
* token class (ie. css class) (or "@brackets" or "@rematch")
|
||
*/
|
||
token?: string;
|
||
/**
|
||
* the next state to push, or "@push", "@pop", "@popall"
|
||
*/
|
||
next?: string;
|
||
/**
|
||
* switch to this state
|
||
*/
|
||
switchTo?: string;
|
||
/**
|
||
* go back n characters in the stream
|
||
*/
|
||
goBack?: number;
|
||
/**
|
||
* @open or @close
|
||
*/
|
||
bracket?: string;
|
||
/**
|
||
* switch to embedded language (using the mimetype) or get out using "@pop"
|
||
*/
|
||
nextEmbedded?: string;
|
||
/**
|
||
* log a message to the browser console window
|
||
*/
|
||
log?: string;
|
||
}
|
||
|
||
export type IMonarchLanguageAction = IShortMonarchLanguageAction | IExpandedMonarchLanguageAction | IShortMonarchLanguageAction[] | IExpandedMonarchLanguageAction[];
|
||
|
||
/**
|
||
* This interface can be shortened as an array, ie. ['{','}','delimiter.curly']
|
||
*/
|
||
export interface IMonarchLanguageBracket {
|
||
/**
|
||
* open bracket
|
||
*/
|
||
open: string;
|
||
/**
|
||
* closing bracket
|
||
*/
|
||
close: string;
|
||
/**
|
||
* token class
|
||
*/
|
||
token: string;
|
||
}
|
||
|
||
}
|
||
|
||
declare namespace monaco.worker {
|
||
|
||
|
||
export interface IMirrorTextModel {
|
||
readonly version: number;
|
||
}
|
||
|
||
export interface IMirrorModel extends IMirrorTextModel {
|
||
readonly uri: Uri;
|
||
readonly version: number;
|
||
getValue(): string;
|
||
}
|
||
|
||
export interface IWorkerContext<H = undefined> {
|
||
/**
|
||
* A proxy to the main thread host object.
|
||
*/
|
||
host: H;
|
||
/**
|
||
* Get all available mirror models in this worker.
|
||
*/
|
||
getMirrorModels(): IMirrorModel[];
|
||
}
|
||
|
||
}
|
||
|
||
//dtsv=3
|