801aed9320
ead2c2ab0f5 Merge pull request #120858 from microsoft/alex/1-55-2 bfb2654224e Pick up new distro version and bump version 08a217c4d27 Merge pull request #120733 from microsoft/joao/release/1.55/fix-build 6b89f1aaa2e Don't call node-gyp anymore (#120673) 6e3220a31a9 Merge shellEnv into process.env (#120332) 5dee7d559ff Update to vscode-proxy-agent 0.8.2 (#120354) 91fa7f030d2 Merge pull request #120519 from microsoft/misolori/icon-updates c5e030273bf Merge branch 'release/1.55' into misolori/icon-updates 8be12407ad0 bump version to 1.55.1 (#120379) d6e72b493ce debug: update js-debug (#120358) b7d152d5b2f Update distro c185983a683 Fix table list height. Fixes #120062 (#120102) (#120168) c71be15869a fix powershell profile source (#120138) 4c2a1fa6306 handle error when wsl is not installed (#120128) e3297826776 Merge pull request #120107 from microsoft/aeschli/120103 c7f963cb27d Moves extension prop out of proposed 55f4c2ec1e2 update typescript-vscode-sh-plugin 26a60dbecac Merge pull request #120081 from microsoft/sandy081/fix119975 5753889f2d1 remove overflow action when there are no overflows be363080a36 fixes #120066 (#120080) 554774c21d6 Merge pull request #119983 from microsoft/lramos15/notebookViewType 428daa3650c Merge pull request #119990 from microsoft/tyriar/r155_wsl_compile 64876cb88e2 Fix test compilation 00296950306 [Getting Started] new file => new untitled file rather than explorer's new file (#119981) 2a8113f7231 Enable terminal event batching from ptyHost (#117268) aefdd723bd0 Merge pull request #119987 from microsoft/tyriar/r155_wsl_setting 98aeda8479a Remove RemoteHub from desktop stable (#119972) 981a2b53abc Merge pull request #119977 from microsoft/digitarald/fix-115327 a3514cd1481 allow terminal profiles w a source to have args (#119967) 78636f2c133 Fixes #115327 with HC images for GS setup/beginners. b72964aaace iPad OS ctrl + c in terminal (#119979) a84f17acbbf displayDetectedWslProfiles -> useWslProfiles 1b0b1c67f35 Merge pull request #119973 from microsoft/digitarald-ces-distro-update c97d55a2131 debug: fix stop on entry not working after launch.json change (#119980) c7068ae9331 Respect viewtype for reopen with in notebooks 59b2869bdb1 Distro update 7208128b818 Merge pull request #119377 from microsoft/digitarald/ces 522cb113395 Ignore extension that is being installed d06d2f1d624 Update distro 80c9c2bfdd8 Adopt writeSync maxSubsequentCalls dd8ce595220 xterm@4.12.0-beta.7 1eb987f85f1 LocalizationService.update no longer needed. Fixes https://github.com/microsoft/vssaas-planning/issues/3290 70aab480c5a update labels for break commands 49ad7ad4f53 fix optional service typing a0aea2c02ab Fix counting executing cells incorrectly Fix #119921 961935482ff Fix build 33c5dbf0407 Force internal execution metadata to be transient Fix #119853 0865813de51 showQuickLaunchWslProfiles -> displayDetectedWslProfiles 91b6bcd2cce Fix spelling error 5bf977258c5 Slide to first category for new users 72bb797593f Don't scroll to first category if already have Fix #119842 Fix #119339 0a7dde45706 Update distro 9be5cb7f482 Fixes #118772: Remove a disconnected remote extension host from `extensionHostManagers` c9829c32d11 Surface pwsh as a profile on mac/linux if it's installed b59b0c5051e update distro 647f8724320 Roll back to `vscode-textmate@5.2.0` a564f58b13f Fixes #119065: Also listen for EPIPE errors on the socket 99c8eb69942 Fixes regex - codespaces remotes are missing .git ab39731a1e6 Avoid rolling back `vscode-textmate` 9b564ad40db update distro 85d03e9c382 Fixes #119915: Go back to `vscode-oniguruma@1.3.1` f4f1bdb9265 update distro e15a185f6ee Merge branch 'main' into notebook/dev a6cef60b50f notebook toolbar init display be none. fix #119910. 654b5e80469 update to latest `vscode-oniguruma` 5a92084faeb Use ThrottledDelayer per review feedback. 357c13ac467 localize info message 5dcccb92e38 fix #119854 1ca4e703ba8 Optimizing newly add getting started images. 71d2102d7d0 fix #119803 c5d901812cd Merge pull request #119883 from microsoft/tyriar/webgl_fix f7cc0f2c79d Adding light and hc getting started images. Closes #115325 and #115327 64256f22d66 Merge pull request #119895 from gregvanl/settingTypos ad659fb25aa Allow null in profiles config 3e6f65a3acd Merge branch 'main' of https://github.com/microsoft/vscode into main a30b6bfdc3b remove default value for overrideName 19bbe2edbee Remove extra space from error message 7ac7d4438a9 fix #119672 975115a2cb4 Setting descriptions typos and formatting fe6b3e258b6 Re-enable measuring c5a8eed0334 Accept array or single item for output items methods #119601 996391b87d3 Move proposed api piece into stable typings 6ebe2a14f37 fix #119852. 3d1d01690df Fix canvas -> dom fallback da992a171e2 fix scroll cells from bottom view. 9ab0fb227ee use app scope 81a08478ef1 updated notebooks ff869cd3581 Merge pull request #119878 from microsoft/isidorn/notificationVisible 1a184f9e9dc add visible flag to notification b70c4fee0d8 Fix default webgl renderer ad026f8130c ces: use ThrottledDelayer 755cbf5412a Merge branch 'main' into notebook/dev 08c4cd87e3c Reenable localization tests. 5064fae294b Fix #118134 e8111f76b5b Fix #119855 5b636c4a7b2 Revert "Fixes #111814 (#119475)" 6f726bcdf6a fix #118442 557c4b56995 update verification members 63f1721ed85 don't store output in GH issue notebooks 05ce54df77c testing: remove unused contributions ce9298464e4 bring notebook actions back to editor title bar menu static. ceff50539f0 re #119706. ef80780f632 fix #118996. 383fb64cc58 remove displayOrder and fix #119830 81ba1dae860 Fix #117540 1a425eacb83 Accept single outputs or arrays in execution task output edit methods Fix #119601 75ed057885c fix #117937 1e6697ed77d fix #119561. f0eacf87700 fix #119767. 1d3cbad0102 Wait for extension registration when resolving notebook viewType Fix #119686 ab317a2280e Hide select terminal profile in yarn web a0e8b01ec49 testing: polish wording of testing.autoRun.mode 189fb15df90 Check PATH when validating non-absolute paths 5c6836eb44d Fix #119699 b63cfb3a8b6 skip test and remove unused code 8d6c2a23888 Make drop shadow much more subtle Closes #119633 23713de2bee don't emit events when splices are empty, fixes https://github.com/microsoft/vscode/issues/119608 5a241c767a9 fix https://github.com/microsoft/vscode/issues/119363 22212f5de84 use APIs over commands, fixes (?) https://github.com/microsoft/vscode/issues/119437 bd2402a6e8e Add double-click to collapse Fix #113248 c45540033a5 Aadd messge when getting started empty closes #119496 d115bb2a977 clean up statProvider, use existsFile, fix #119807 008e91bd7c9 contribute editor toolbar actions by checking active editor other than focus/blur. fix #119706 38160c823c8 Fixes codespaces fork on push d765f3a43c7 testing: fix list view not working 0fb1882984e fix: items from results being added to collections and breaking decorations ab94ad2b8f5 clean-up validateProfilePaths 46d5d38dd28 fix #119672 ebec68bc3d9 fix #119728. 2616ee94f38 fix #119775. 6384c7462f8 fix #119677 abaa23cdf39 fix #119774 09f43fd6aa4 testing: fix exclusion filter in view e4bb4c1b77f testing: fix results disappearing or not showing for new files cd31f2cdfac testing: fix test appearing on first line, remove location from TestItems 60849897630 fix #119773. 15ba6b4c957 Revert "extract _assertWebviewForMarkdownPreview" 2c232fed6af Update README.md e3e7fb0b2ab Set explicit mode for markdown preview code addf2d6d9e9 Fix spelling for gitignore f8c1ffbb0cf Build simple-browser media during watch 68e582380d7 Maybe fix bug where sync task doesn't get checked d087b5cf4f1 Add back old getting started flow as "walkthroughs" e5afd670959 extract _assertWebviewForMarkdownPreview d13e68e6cf5 avoid markdown preview removal when it is disabled. 8a960081e55 fix #119771. f1334e055c8 Polish select default profile quick pick 563a617ca2a Applied review feedback and tweaked heuristics 8aac8643d77 Use 'terminal profile' instead of quick launch profile, change icon 64b4f5b934d use final DAP 1.46.0 f04acbd22a4 node-debug@1.44.19 0db170025e4 Fix terminal dropdown rebuilding itself 8ceb8b96153 Rename "expand cell content" to "input" Fix #119762 9e2e6cded21 Change cell pending indicator to clock codicon Fix #119739 ddb7709cbf3 Fix #119700 fix #119731 fix #119701 Co-authored-by: Daniel Imms <daimms@microsoft.com> 51c403193b6 do no change selections if the action is from toolbar. 7d19db7ad9b fix #119769. f934e058c75 Fix profile permissions prompt on linux/mac 6dbb3800c5a Fix #116424 b8f5fd7f1b6 debug: update js-debug c88146514ca debug: bump node-debug 8387a46298e snap-build-linux.yml: use "snap pack" to get LZO (#119478) 792c2318898 fixes #118660 eb135ec46e8 Fix #119626 e353502fb9d fixes #118045 f9d92f0fc6c Fix #119723 948839aa445 Fix #119660 6aa6260a843 fixes #118852 da1ed96b6a8 fix code-cli.bat aeedd850ac4 fix #119073 2d9069014eb Add a placeholder for already forwarded root ports (#119792) 74cf3fb2021 Fixes #119529: Wait for eager extensions to activate before launching extension tests 5fbba30c046 Better Fix #119573 9a646e1967c fixes #119487 f91c464f1e1 Merge pull request #119784 from microsoft/tyriar/profile_schema 9f37f3f04ee Pull common unix/win parts into shared function ac74acadddf Only set when win profile is non-null f4fbc4abd78 Merge remote-tracking branch 'origin/main' into tyriar/profile_schema a83eb44ecd5 fixes #119488 301e9ac1db8 fixes #119580 a34297a6085 fix #119384 47f0413ea29 window indicator: based on workspace config file location. For #119752 40d104ad84a Add schema to profiles settings 771b0192f43 window listeners handling 27fc3b41ed4 scm: add trace logs for #113803 08d5310eb18 update verifications notebook 8933c1564d0 Don't create a terminal on panel show without proc support c55aff63798 API feedback (WorkspaceTrustRequest -> WorkspaceTrustRequestOptions) (#119658) 3eb6fec8cd6 Be more specific when listening for marker events 4ad88afc1f2 Fix #119573 42b8129c64e don't emit events when splices are empty, fixes https://github.com/microsoft/vscode/issues/119608 4dedb019f85 Clear data written flag on manual relaunch 1c3990938b8 Fix #119572 443b6f71bf8 fix https://github.com/microsoft/vscode/issues/119363 c6a8cb7f091 Fix #119698 8437d38d364 Fix #119753 a1ecc83a5d3 Merge branch 'main' into notebook/dev a233c8683a2 workspaces history - proper check for untitled 7a1302a2b6c remote indicator - fix npe 90484dda2b2 shared process - also log if window visible 5245290dc56 file working copy - update test to account for events 2b66dfe0218 skip flaky tests. d5abce78ab7 Remove unsued var ff42bf46511 Disable markdown renders by default 279b4d92317 fix #119724. 514eefb789e Don't send execute request for markdown cells Fix #119734 91939fb9e7d handle invalid ignore options and avoid early dispose. fix #119638 548de3ac8ba fix #119708 85770c31911 hide all outputs (builtin and renderers) fix #119690. a8b8e7bd483 Fixes #118979: Reduce find widget's z-index 11c0904a568 Don't enable the new markdown renderer if accessibility mode is enabled 376b25645be Only show selection if there multiple cells selected 31987b11c6f Merge pull request #117758 from conwnet/main 02b394a1a5c Add a special editor option to control the readonly textarea attribute a9aebe3bce0 Merge remote-tracking branch 'origin/main' into pr/conwnet/117758 07eb4d9e076 Fix #114965 d7e1da38b17 Fix Linux referring to osx 8d3d8e0cd04 html: add vscode-languageserver-textdocument as dependency bd18fe9bcec Fixes #119632: Handle `undefined` when validating a range 8c7a3d8f6ca html: fix compile errors c099b873de7 update distro 0f65e64c2a3 Fixes #119636 - 🤦 76c5d1707cb RunOneScheduler and code cleanup for CES b3058d60df4 update distro 7b7e3d9e1e5 Fixes #118041: Add workaround for `UTF16` `TextDecoder` eating up `0xFEFF` and `0xFFFE` c7ad1b9020d Add sequences to type ahead comment 97b2514ca71 include source.id for progress notifications 6349f37d80f Merge pull request #119373 from wdesgardin/fix/replace-pattern-preserve-case cca8a48b17a Restore notebook smoketests, Fix #113882 3225cf3037a update distro 3b44bb422d3 Only set detected profile if value is non-null 75f796dfb48 notificationTelemetry: id should always be a string 4eb625f0cf0 [html] update service a53ce8af3b5 update remote indicator on workspace change 11e79c76d89 Merge pull request #119607 from NotWearingPants/patch-3 a780b76b9d5 Keep text from jumping when showing port input Fixes microsoft/vscode-remote-release#4729 61eb66d6c4b Fixed recent typo from afca445 64381abea97 unconfiguredPortsAttributes -> otherPortsAttributes Fixes microsoft/vscode-remote-release#4732 73b9e6679d5 Update README.md a535549d893 update distro f600cd9ef21 Fix compilation errors: update to latest `vscode-textmate` 684a4526059 Improve resolveTask documentation ab12e39334e update distro 788c9dfdc48 update deps afca44535df Add a trace statement to be able to track down which implementation handles a `MultiCommand` 9089e0cbd9f Update endgame notebooks b28d8ca9fe0 use APIs over commands, fixes (?) https://github.com/microsoft/vscode/issues/119437 2bc5e538923 Merge branch 'main' into notebook/dev ebe56205433 fix(search): preserve case when match start with lowercase char a6f6b4aa8e3 Add feature flags to control availablity of getting started extension contributions 735e998fca0 update distro 10a74ff5c51 Open to getting started page on extension install 194c37b4cf2 Fix test for latestExecutionSummary init 9fa49ba9415 ignore optional dependencies when webpacking 7a8b665f25a Fix missing prop on cell data 808266d4dec Allow tests to be loaded asynchronously (#119537) 6e2cb85e207 debug: update js-debug fdc4f23b108 Add double-click to collapse Fix #113248 35ae55affde diff editor output decorations fix. aac461a3124 Improves behavior for #114945 851a849d2ce Don't validate non-absolute paths 2cde743fe21 Pass event modifier data when clicking on markdown cell 4cb75127664 add quick launch profiles for unix 9c00242866c updating telemetry module for built-in exts 3d987fdc5b3 fixes #117782 084fd5171a1 Terminal profile fixes (#119352) 7483058a0ab update distro 1f5dd686c8f Disable select for notebook preview cells in webviews a685b5976ba Exclude DSR from type ahead 4b3ba3ea44c Removes proposed api check 44ffe526ffe auto layout for editors in output container, fix #119048. d4a0fa9ca6d Build getting started service at startup in order to init event listeners d657779c014 Improve getting started response to slow network conditions for content overrides efb75d7262e Move override delay to conver all exp service usage 018eca5246f fix #118615 'scm/resourceXXX/context' extension point descriptions were muddled 0179466adac Move getting started service to workbench/contrib Closes #118603 e8290f52f4f run oss tool for 1.55 db670f1002c Use shellEnv (#108804) 64042213ed2 Bumps RemoteHub to 0.1.2 f201f7bc68a Fix notebook test 08cf8038dfd Merge pull request #95882 from jeanp413/fix-95671 4977db85c01 update tas-client-umd 7e719d3f046 Merge branch 'notebook/dev' into main 03e1ce6524d Fix getting started items appearing out of order 4a83a80aa7b update diff output height properly (using closure) on resize. 2949009de61 move more logic into abstractRenderer. 55e56ef9153 add options for controlling outputs/metadata in the diff editor. 0089ba3ae1d Bump vscode-emmet-helper, fixes #112675 c95389a7b2d Fix emmet completions in scss (#118666) 7b96cc4c8ba Implement Execution API (#116416) 4b0118871f0 Adds codespaces lookup via command for desktop d46eca3d2dd Merge pull request #119385 from microsoft/merogge/fix 7176a40fc74 Add notebook.inactiveSelectedCellBorder (refs #114156) 64a8be3fa24 fix #117691 a2044cbd78d tweak d909932d240 Fix #118104 33c11ec866f Bumps RemoteHub to 0.1.1 26cdfad1cd0 Fixes #118521 e79b88daadb handle view in terminalView 66961037cc3 Fixes #111814 (#119475) 57aada6cca9 Fix test 5efebbd4c4c Fixes #118270: Add new option to control deleting character pairs and delete by default only auto-inserted closing characters 91e41167e52 file working copy - clarify onDidChangeContent 8cfc30d5741 Fixes #118461: Don't show Open Workspace in the diff editor c148f9a70bf Show error when port is already forwarded Fixes #117571 d239450d9b1 Ensure relaunched processes get shutdown 76b1ad1d1dc Improve profile order, remove profileName from config 6bac57decf7 file working copy - better document resolve() method 0ddc091edc6 some code 💄 a02448d6852 Ensure config service is optional in external terminal 917edde164f Fixes #117534: Allow to mark command args as optional 2cd8246a94b Fixes #118062 4c29fa41c6d Fixes #119416: Use control pictures for NULL and DEL when renderControlCharacters is on cc8748a2397 notificationsTelemetry: change id to be string bbe333f8782 Add tsec exemptions 42c9e63a7ed file working copy - resolve returns void d9d0879741f file working copy - add save as support and a lot of tests 469e4f6e275 chore: bump distro 67eebf8ac58 avoid duplication. 0ab3c62ca2a fix action context detection. 5a0fe1f6a89 remove todo tag d6a0bf700cd Merge branch 'main' into notebook/dev 5a66c91c029 Fixes #117935 a3415e669a8 Fixes #119383: Use `fetch` instead of `importScripts` to avoid deadlock in Safari 4a10c93b2d6 Remove unused argument 307ed64376a Adds RemoteHub as built-in 8290994dbbe Fix localization strings and typo 4995ce93673 More tweaks to geting started category 13ec92fe360 Update getting started category styling e380c34cac7 Fix typos a1c114aa9e6 replace more pathOrPaths with path 1aa0c31b55b pathOrPaths -> path e7aedd975c8 Adjust notebook cell multi-select colors 4bcf96223a7 Fix some getting started crashes 0d83680d528 More CES heuristics work d222e20941c Merge pull request #119328 from microsoft/tyriar/wsl_encoding e92a80bb641 Merge remote-tracking branch 'origin/main' into tyriar/wsl_encoding ee4b50aaa43 Allow creation of quick launch profiles via select default shell command 194f43025f6 Remove log da7c7d1efea Merge branch 'main' into digitarald/ces 4b5354c5f98 alternative version for notebook document. ff3c423cf3f alternative version for notebook document. 6480a6f20ea feat: add option to control scm font size (#115494) d60cac30195 Fix a typo f8acb0d6f63 Adding the 'delete branch...' function to the source control > branch section 6c0c77926ff Improve GitHub repository search 64ebc978e76 Revert "Use rmdirSync instead of rimraf" 0eff78fc42e Merge branch 'notebook/dev' into main 7f9ea9411c8 Reduce default tas override delay to 0 5c0c637a043 Make sure we ignore compiled media files f5146529508 Automatically relaunch terminals when pty host is restarted 7727e93b22e Rename experiment override settings Log when experiments have been overridden for purposes of excluding data from scorecards 07879df53d9 update the layout since editor toolbar height changes 13ceef289f0 experiment service for nb toolbar position 1cd067471e8 Trims url to avoid issues 022d823577a Fixes #110904 - adjusts error regex c2b6d30e9ef Fix input placeholders from 2275dba01afe2b8814d4ebdd67d1027fa51bdcb4 b1770e6ad8a Prompt within 1-8hrs heuristics df3953996da notifications: send telemetry for silent notificatinos, smarter spot for hide event f7f2f08eec5 Update distro 1b7470b25db Try to find ports with a root process (#119341) 421d67ec41a notifications: add source to notification:hide and also send events for silent notificatinos 2275dba01af Change files to include/exclude placeholder to tooltip 3d87801cb0c Merge pull request #119091 from microsoft/joh/nbSerialize 9734ab15dd6 💄 88e87f02bd6 file working copy - make resolve not return "this" b74bae8ced6 refine NotebookCellData converter d6c74de1f5c Merge branch 'main' into notebook/dev 61b73024053 Merge branch 'main' into joh/nbSerialize 3a6c54fb14e no more file watching in notebook diff editor, remove lastResolvedFileStat from notebook editor model 39ea9cac052 Make UI progress indicator clearly visible in the quickpick (#119293) 8cf7c12fd33 fixes #119331 d10866cca54 Fire onExit for feature terminals that lost pty host connection 7fa2b715ef0 Merge branch 'main' into joh/nbSerialize b33801c2c66 file working copy - first cut tests 8736be196db Properly join string[] profile args f68f1845d23 Move comment to the right place 2b2ff3e5e08 exec with the right encoding ede3632a560 pimp up workbench-web.html 85cf30ab517 Properly decode wsl.exe -l output 163aeeedac7 Prevent seamless relaunch triggering multiple times c64a8d59270 file working copy - use IDisposable not Disposable bae75adfb41 no more double dispose needed in _onWillDisposeDocument af10c8f65b5 Fixes #119051: Prefer fewer diff hunks 3271248da68 Merge branch 'main' into joh/nbSerialize 7902c6edcd1 remove NotebookService#destory c8dc60adac6 Use widget.shadow for custom hover contrast a07a508be8b Update distro a02fabb6d64 file working copy - dispose model when working copy disposes dfe12887da0 xterm@4.12.0-beta.3 06901e67a38 remove todo 3fd2415c9f7 Show args in profile selector 46d1ea3a2c8 fire event only when save succeeded 8410aa8f2e6 adopt name change fee37f32af6 Merge branch 'main' into joh/nbSerialize 3f71de52eef Also exclude docker-desktop terminal profile 7d99c47b755 move notebook save event into notebook editor model service, remove resolve/save/backup from notebook service and let editor model use content provider directly 06e8814b29b Merge branch 'main' into fix-95671 5dad121bcb1 Merge pull request #119315 from gjsjohnmurray/fix-119261 a255250be89 Add a user setting for "workbench.hover.delay" Fixes #117894 156fed280ac fix #119261 filter also by description in Insert Snippet 1dbcde0f1fc Fixes #119065: Handle errors also using the socket.write() callback 958171a700d Fix port process finding starting even when using output 56b55c26070 #38607 Handle uninstalling extensions a27b6f74497 implement load of the notebook model f841a70b0c0 file working copy - rename `forceReadFromDisk` => `forceReadFromFile` c8975ceaecd file working copy - remove getStat() that is only used in tests 8595f6f5d03 Update to align log level constants 23fa2860d3e add withNotebookDataProvider as strict variant of getXYZ, sends activation event, throws when no provider found c17a5ca80f7 Merge pull request #100027 from matthew-haines/master bed126ce9d7 #38607 Separete installing & installed state 6608083a3d4 💄 window error telemetry ce3ebc9f5a6 add test 391b1a6b576 Add support for `"log": "<level>"` to the argv.json (fixes #118824) d96f34c867b Fix #38607 e800c205df8 Merge branch 'main' into pr/matthew-haines/100027 b4fb4d8c2ff recognize .axaml as xml language Fixes #117298 abd1e0166e9 Merge pull request #119250 from noahbliss/patch-1 414a7eb7e06 Fixes #113614: Catch potential errors thrown when searching in the extension gallery 9710ecf1c66 Merge branch 'main' into notebook/dev af8d8116eec Merge branch 'main' into joh/nbSerialize 9b5eceb1f66 💄 4f1cdb7aa0d flaky suite for #118969 d0f2d7eee63 build e4b1e9ac57a Give room for border 0932039e138 Allow for exp modifications of getting started content 22c40603121 Extensions => Command Palette 5e0602716fe Small tweaks to styling. fb8811e513b Add "copy cell down" to toolbar 7a9844238d8 terminal profile fixes (#119267) c0885dd0c4d Add task to build extension media (#119294) b0f4dba5d29 handle blur from other browser events. 3eae316f513 more padding for global toolbar. 99dd29307d1 no layout if not visible. 6d654b9bc9e polish css. a99306b4871 Update padding for notebook toolbar & folding icon fbcd54712ef fix duplicated actions on reload. 41ecc1eda5a cell output domNode npe. c37f743a99e schedule task should check disposable again. b814edf4735 keybindings for actions. ece0761b33f swap notebook toolbar and editor toolbar. 1b52d828711 Revert "fix profile tests, path -> pathOrPaths, and exception" a5219a9350c path -> pathOrPaths in terminalConfig e9e112a6483 fix profile tests, path -> pathOrPaths, and exception 859edd7f4f0 Merge pull request #119292 from microsoft/misolori/get-started-polish 89135921788 Increase bottom padding for card 45ef6493842 Adds support for fork on push for Codespaces f8b50611060 Polish getting started items 3b3b9be7062 Fixes #113811 746c323a55a Merge pull request #118830 from microsoft:aeschli/testsinwebworker 242ddc4bdf0 Merge pull request #118400 from thebinarysearchtree/main c576cad0912 #38607 make renaming extension aware of other sources 89d8eed14f0 Allow extension authors to set the title of a QuickPick/InputBox in Options (#119144) 31a9b8f8158 Fixes #62307 14c4257e75d Fix background for markdown cells 651f0ee28a1 Simplify removal of (Default) from distro name aef8a2af5c6 Improve encoding workaround for wsl.exe 9d2478b6259 Don't name quick launched terminals a7bafc2a9a5 Add logging around port notification Part of #117790 342a55d10d7 worker eh: wrap console and send to renderer 7c4b2b09de1 add workbench-web 2ace42b0cc1 Don't attempt to create term in yarn web 9cd4712b352 file working copy - update todos 6bea69b5e2d Fix break 3a39aa41f5b Fix hiding tree hovers Fixes #118755 65fb4037a39 adopt latest working copy changes 59ee7787595 Merge branch 'main' into joh/nbSerialize 232266aaf22 first cut of IFileWorkingCopy adoption, misses saveAs and backsnapshot are improper... 2d7b64d423d add notification:hide event 9c204017ffc file working copy - remove _backupSnapshot be93116b735 Replace "Favours" with "Favors" 9f773417714 Replace "Favours" with "Favors" a23d2d40f31 Merge pull request #117994 from GitMensch/patch-1 4c9d23c8f57 file working copy 💄 adf6e065194 Fix ugly selection border on Add Port button Fixes microsoft/vscode-remote-release#4689 0b758c4e0d6 Unix profile selector (#119213) abbd77d0188 Merge pull request #119075 from microsoft/isidorn/notificationsTelemetry 99d2cb82e59 pick up notification source ID properly 5804f7dd83a Merge branch 'main' into aeschli/testsinwebworker 8af8a869dc8 Merge branch 'main' into joh/nbSerialize 3da9f36645d Cancel packagejson search in npm after 1 second c359effab04 Fix unconfiguredPortsAttributes in devcontainer.json abb6ff6d93e file working copy - dispose working copy when model disposes 733f9323a46 Initial file working copies (#119233) 970d1916421 file working copy - self register to working copy service 1902dcddd8a file working copy - add onDispose 6d02fe2cb75 fix #118945 validationMessage on extension InputBox lacked Severity.Error 943ab428d72 file working copy - more cleanup and alignments d2afd69d310 file working copy - some cleanup in working copy 111a6cec70f Don't include build files in repo 3e4c057624b Make sure we exclude ts files from published build 043a0ee0d94 Try cache busting on reload in simple browser b9f33fc242d Rename CodeActionKind.Manual -> Invoke 52201359920 Scroll the notebook while dragging a markdown cell e7f3b77a9c8 Remove typings for unused package a7ae58f4dbb Use rmdirSync instead of rimraf 05e970086cd Add missing change session events to ms auth provider b0bbf9c19ee improve pwsh logic e01b60782ae Exclude compiled notebook files from hygine 42af2c38dd2 Merge pull request #117835 from yannickowow/master 7ccf0b03c60 debug: stepOver should be alt+F11 on windows browsers 8a095f4d233 Update test associated to DataBreakpoints cf7e6f31f9c Support for DataBreakpointAccessType condition #117835 82cf09af92e file working copy - first cut manager c332b6bea79 tweak grammar 31f3f2e6195 Add placeholder text to include/exclude boxes Fix #119107 547312993f8 provide extensions sync state version api in web - reset the resource sync state when the version changes 6f0d3d5c9f5 debug: do not de-dupe same named variables fbc577e6f04 Double click to set port label Fixes #117573 Fixes microsoft/vscode-remote-release#4624 5b21b951ecf Fix Add Port row click Fixes microsoft/vscode-remote-release#4687 fc1d49f95ed file working copy - make sure to bubble up errors 03e3fce973e file working copy - first cut extraction from text file model world b335d9eaf10 Make "Set Port Label" an inline action only Part of microsoft/vscode-remote-release#4624 fdb91e27d3d Add new unconfiguredPortsAttributes to config edit a268122729d Add more docs to PortAttributesProvider Part of #115616 1c6fcca5710 Fix #115039 c9fd3403447 fix https://github.com/microsoft/vscode/issues/119157 b12279b40c5 Get correct candidate for checking port attributes providers fd57115d52c Allow for manually/programmatically checking/unchecking tasks b353f063393 comment out failing notebook smoke tests, https://github.com/microsoft/vscode/issues/119164 06ee68d4bbf api notebook update 5bb215e893b Increase spacing between tasks 26a77fb7fb8 Clean up formatting 08877abd68a Relocate keybinding rendering closes #119113 970bcad11a4 Fix bug where expanded tasks did not adjust height on layout 1bcf2a3f1dd Tweak getting started to look more like welcome 9e470ce1efc chore: update distro 0585c2e05a6 Remove experiment (#110330) ff1ce589e73 fix #119130 fc8d7681c4a Make sure katex styles are shipped under root of 581a659d427 Update markdown notebook scripts 806c22dcc91 Skip multiple tabs test for now a7006f93215 Fix potential null access f6f51117008 Update walkthrough contribution api to single object model Ref #119097 e8e6d64105b Terminal profiles (#118790) e5fc49d8af8 Fix markdown editing code cells not having top margin c09b3d2358f typescript: enable built-in 2020 semantic token support 1b695635457 Enable markdown renderer by default on desktop 83d80e8bcaf Don't try to relayout markdown cells if their height has not been set yet 772effc6e6c bind mimetype switcher later. 9063d4ac766 finalize InlineValuesProvider API; fixes #105690 9205c8bd920 Improve terminal key dispatch message 5615bb9eee4 Merge pull request #118725 from microsoft/joh/117273 a6b7fccdaab support appending per mimetype. 7af7449a295 add extension id to source of notification a294694b583 Fix padding in webview based markdown cells a7bbb5502dd notifications.test add tests for service add and remove events 99597e3974a delete cell handles multi select. b3e7d37b8df clipboard actions handle selections around the target. 562962afc9e move copy,cut,paste into clipboard contrib. 30845ba2037 Include community in README.md (#119105) 19ac5d4a5c5 Merge pull request #119114 from microsoft/tyriar/118804 9ed0aa6c914 Fix type ahead issue in relaunched terminals 7243e13db16 Fix #118818 8303d03545a aria alert for cell index changes. 5f4e9a55f5a join with next cells through multi selections 4f488a7cf21 support both selections and ui actions. 4d3df5cd983 join cells with multi cells (single selection) 881e370539e add tests for joining single cell. 3f7651fed04 move join/split cells out of coreActions. 184560bb0ce tests for moving and duplicating cells. 4855eb46a0a make notebook unit test easier. 3ee43778c50 Merge pull request #119092 from microsoft/tyriar/118066 29abc8f3499 Merge pull request #119024 from microsoft/tyriar/116022 3e05837735a Merge pull request #119084 from microsoft/tyriar/118256_test 143f4e6fa2b Merge remote-tracking branch 'origin/main' into tyriar/118066 7a6944d2d0d Add unit tests for TerminalRecorder 5141aba1941 polish 7c0e20ca4c0 Allow terminal recorder to avoid initial resize event b6921c2f2d6 api notebook snapshot 9a7366de9bd Prevent process ready log firing multiple times 32406c3f6ab Recalculate trust when workspace folders change b1359b271c5 Fix focus + keybinding issue causing input box in Ports Fixes #microsoft/vscode-remote-release#4678 0cd2ba8bddb Merge remote-tracking branch 'origin/main' into tyriar/118066 df97bc32ada Tactical fix for watching problem matcher and closed documents Fixes #116760 508b6cc7864 💄 f56b5cf7cef react to feedback b38200cf0a3 Ignore testWorkspace tasks.json 2d536914ea1 Await task config updates f0ee79acfd1 Update src/vs/editor/standalone/browser/simpleServices.ts 846917d51fd Update src/vs/platform/notification/test/common/testNotificationService.ts 77e2397c121 Update src/vs/platform/notification/test/common/testNotificationService.ts 3765294bb11 Update src/vs/editor/standalone/browser/simpleServices.ts 5da95f0e11d Merge remote-tracking branch 'origin/main' into tyriar/116022 31283f32b2c keep notebook serializer locally d1e5c8cddf4 Fix portsAttributes.unconfigured setting name And fix setting update not read Fixes #118991 e8f5186722f Improve task test layout 76cd8a00b37 Fixes #119011: Wait for the vscode API to become available before launching extension tests 1b9a61662a3 Regression test for #118256 b8476ece198 Fix task start firing with invalid process ID in dependsOn task 6fd693ec9e9 more deprecations f2761b584a4 ignore file events while saving, more logging, https://github.com/microsoft/vscode/issues/118992 9426cea171e Ports: service -> application, defaults ->unconfigured b33ce0ff5d9 Update types 2de06d768bf add INotebookSerializer interfaces and wire up IPC calls 3014c755cd7 Pick up fix for #117054 21d20148ee5 new debug setting for clearing a terminal before reusing; fixes #116699 70abcfc7689 add notification:actionExecuted telemetry event 66045febfe4 add notificationsTelemetry 45ea71d8c37 notificationsService: onDidAddNotification, onDidRemoveNotification 149a8b71c53 Workspace trust changes (#119017) e787d6e3843 custom editors - make conflict resolution actions appear (#118949) 5060cbe7bc0 Merge pull request #119012 from Daniel-Knights/patch-1 537c648fb57 mark APIs as deprecated b5eff84359d fix build b89cf5c0aff Adds RemoteHub to api allow list 4222a0981e2 debt - use product quality instead of probing for name a7f5a101589 debt - some more process and platform 💄 892a1083cb2 Fix border overlap in quick pick UI (#119039) 405d2cfbda4 Merge remote-tracking branch 'origin/main' into tyriar/116022 70a47bb275d Enable vscode.Pseudoterminals in web worker ext host 813bb397b01 update list item height on markdown cell ctor as we might already warm up the viewport. fbf1e77578d adopt multi select in drag and drop. drag the focus or selection around the focus. 84f16040107 share drag impl for builtin and custom md renderer. 12adb0178f6 test view/model range convertion with hidden cells. 51a15dee0a2 update seti theme. fixes #118912 7f43e5c846c unHidePreview should also update dimensions d949fd3bc09 Don't create markdown previews if cell is in edit mode 2f8d4892884 fix: typo d7c0ea59d23 Rename setting gettingStarted.hiddenCategories => workbench.welcomePage.hiddenCategories Fixes #118990 8e2fc51526a Remove only f390023d7e6 Remove unused 385cb56165e Fix #118953 5e09ecb9ab2 Fix #118958 83b6cdc6107 better aria label for the remote host status bar item ad428ea8910 untitledHint: introduce default for workbench.editor.untitled.hint 98d129e8b9f firefox: do not use ctrl+shift+P for show all commands since it is taken, make sure F1 is rendered 3cca5540aa8 Do no install repo on Raspberry Pi OS (#118826) c4fbdc32275 accessibility: 1000 page size as default 393adbd3971 fix #118970 61e44238a28 💄 process use 393cc7f4a22 debt - consolidate process usage cf439681f6f multicursor aria polish ae510aec2a7 no indent after 'source' tag: for #118902 fe1264b0f2f explorerModel: add toString to explorerItem for more precise error message 094274f0d1b Don't show select default shell when proc support not registered d1bffb783a5 Merge remote-tracking branch 'origin/main' into tyriar/118066 a4adb60e883 Add "Copy As..." core submenu to editor context and Edit titlebar menu (#118212) 11b1f937eb1 Prioritize port label from setting Fixes microsoft/vscode-remote-release#4542 2ac67ce84c4 fixes #118951 7a55f6fed7a skip failing notebook test 3f81fd64303 🆙 distro e8c71c048fa use %~1 in bat files c7a86c07979 🆙 distro 68a252ea778 environment - depend on product service eb90b1c59c6 sandbox - extract IPC based file service (client) and improve runtime behaviour f241e2e26ac debt - inline deprecated amd.ts methods into tests 8f1b7a36def sandbox - allow to reuse environment service in sandbox 1441ba91f0e environment - consistently handle VSCODE_CWD in all our node.js processes 56ee90e32e3 path - never use fs.promises.realpath 3d626dd868e Use "%~1" instead of "%1" in bat argument parsing. 640fa1af29d debt - use product service in more places 0e05a1f21a1 fix integration test 819cb01e0e0 make notebook integration test more stable, fixes https://github.com/microsoft/vscode/issues/118889 84fe402d655 Improve getting started page - Allow clicking checks to dismiss items - Allow hiding categories e05ab31f373 Clean up styling when contrast borders are defined a90759b5395 fix build 3006ac8e940 try out multiline extension view 5ad7633c4e9 fix scrolling body for workspace trust editor 809e11134c1 fix css for extensions grid view and settings 1a5d7f4f8ed Merge pull request #118482 from microsoft/rebornix/nb-list-focus b81cea2a350 Fix Emmet abbreviation for Handlebars style blocks (#118832) 257fbae3f34 Ensure editorContextKeyService on markdown cell gets disposed Related to #118782 e1f84e38ab2 Ensure markdown cell editor is disposed Fix #118782 216bff57715 Merge remote-tracking branch 'origin/main' into rebornix/nb-list-focus eac163c0611 fix tests. c1f954ce48b optimize scroll view from bottom. 5af4ccb87be copy cells with multi select. ad7983834af extract clone cell. 34a537bb732 sort numbers. 162d08892db Clean up 569aedce014 Mostly working seamless relaunch 7806efac02a tests in webworker EH ffdef6b9be7 Fixes #118759: Render a separate span for each inline decoration 458904ed7a3 move cells with multi select e545c0750b8 copy paste with hidden cells. 17beaf29fd5 Fixes #118614: Clear any outstanding state / requests and fetch semantic tokens when the language mode changes 8ca6a56d467 Try restoring ports more often Part of microsoft/vscode-remote-release#4551 d7622d392b4 change back untitled hint default to be hidden edf387a2e8f run filename through realpath because it seems nodejs isn't always doing that, https://github.com/microsoft/vscode/issues/118812 1c9e7eb296e 💄 5a8936ae639 Lift native text file service to electron-sandbox (#118815) 1bb87db91d3 debt - provide groups merging from service and add test 0b4915dcea2 Change portsAttributes others to be its own setting 61fe79db654 Remote indicator for folders and workspaces from contributed file systems. Fixes#118813 55bfe8c2167 Merge pull request #118766 from microsoft/aeschli/extensionDevelopmentKindSimple 5109a52b2a6 explorer: use findClosesRoot in select() 3aca77c0161 Merge pull request #118777 from jeanp413/fix-118557 3eae8534747 fix #117093 update Filter on Type indicator after 'list.toggleFilterOnType' command (#117099) 9d220a95c1c Fixes #110885: Have `--max-memory` also be applied to the extension host bd74e2fb6a0 replace openOnFocus with selectionNavigation 5f451c6670d Merge branch 'main' into aeschli/extensionDevelopmentKindSimple 1f22e55badd sandbox - share most desktop.main code d6d2910b96b sandbox - use actual workspace and config service 1dce5d35536 replaceCells as a single edit. ebc6eade483 update prefix sum always when edits happen fe9466a6e1d false negative hidden ranges test 4f5824ea28b enable async tests. 3dff030ea14 delete folded cell would not change other folding states. 5e2f573d1dd cut multi cells w/ folding. 06b54543d66 Comment out a few error logs for now 498449fa8c1 Remove content version logic from webview 02d3ca91dc7 Make sure we update cached version when cell changes 544b117130a createMarkdownPreview should only create previews, not also update them 1e92de9921e Log errors and remove unused method 574740fed37 NotebookEditorWidget should not have to know if a markdown preview already exists or not b5e22e7ed43 Remove extra log 6ea4b1cdc1a Add version to MarkdownCellViewModel 97314005fca Revert move change and disable debug flag aeb8f3811d6 Avoid re-rendering markdown cells if they have not changed 4b9d29ae6b4 more polish and re-use extension grid d5f47dfb885 Notebook custom markdown renderer optimization (#118288) 3635f113876 💄 b4ebf03316c selection tests. 0dcf9300ddf Fixes #118557 e9b7b5d25b8 configure extension kind of extensions under development 63d6e0c008a adopt selectionNavigation. 46fd12b0a91 align selection and focus if they were both empty d31566b57f4 Don't include css in main katex bundle 8627fd1f883 Merge pull request #118753 from microsoft/alex/extension-test-running a97990c9713 sort indexes in cellIndexesToRanges 919292a6742 Merge remote-tracking branch 'origin/main' into rebornix/nb-list-focus ae4ffb1b81e Handle extension test execution on the UI 52ab2fe123f add Education extension to category constants (#118589) ac0008a25b8 Remove waiting for welcome page while we are experimenting with what the welcome page will be Fixes #118748 8f8321d638d Smooth relaunch poc d574f8e9163 remove duplicate code 63460db67ea Fix #118741 d5e4525830e Add comments to add java workspace tags to GDPR inventory (#117740) 1ad8c467972 Merge pull request #118574 from microsoft/tyriar/100709 5afac656035 Prevent double attach to pty host listeners ba8f0fff7ca Remove logs b92b610e861 mark isEmpty as readonly f2515c57a4d Fix repository link for vscode-references-view bc405e936fd Try new CSS grammar Fixes #115480 244428dfa7a sash: workbench.sash.hoverDelay setting 10fc457d699 💄 sash f8ce2745c05 add stdout and stderr mimetype, add renderer for stderr 97efcde244f Merge pull request #118664 from microsoft/aeschli/extensionKindController 3fb39ad72d6 fixes #118694 bd84f143797 Merge remote-tracking branch 'origin/main' into tyriar/100709 37a826fe75d Open Recent goes to wrong workspace from remote. Fixes #118683 6af126bb3ce Move to writeSync instead of writePromise 49cad9a1c0d Fixes microsoft/monaco-editor#2382 0740b4a3134 sandbox - move platform limits to common fdd57917f30 don't mixin default metadata when "replacing" notebook metadata 9a982d0049f fix configuration caches - respect scopes d7854c3914c Remove unused 8788d628814 First cut of moving to hybrid getting started/welcome editor 9b2ee7fb7d9 Reduce size of Katex bundle da3cbe74dce Avoid extra postMessage call for iframe based webviews 8fefa6aff22 Speed up mac builds (#116984) 984479d1792 Fix not being able to run a cell when it is in the Success or Error state 07d02d3e2b1 use new icons 638926d5b5d CES experiment treatment 2d7fdd82ec8 update connection state before reconnections f3f1c131385 Update Codicons: add trusted workspace icons1f495f5857
b1b80801806 Avoid some calls to `.then` for iframe based webview post message 5b5dd906551 Fix manually providing PAT for GitHub auth, fixes #118675 11d5e82c80c Fix any key causing shift+tab focus change c72d7612b41 Add an untitled document data property (#115790) 371562f630b move trust color tokens and update values e679983a3fc remove border, use color icon, use link button 1f2313b4a2d Add back custom editor test workspace 0f6d7c41eb5 introduce customEndpointTelemetryService 268c0d04a66 fix #118578. offsetHeight to include padding and scrollbar. d1db6f0efef notebooks: update output to match NodebookCellOutputItem api 7cae7b5cedf add ExtensionKindController a2b5e58b091 remote authority - update comments 75da06499c2 #101995 extend tooltip of menu item that defines 'alt' command (#116211) 3ac310d1cf9 Remove icon from input row in ports view 3dc05e36e15 list: anchor trait 913a5949445 cleanup debugHelperService f1f830aefa2 Fix User tasks only working once without folder Fixes #118370 27ce1eb630f list, table: selectionNavigation option 6be4a142367 fix https://github.com/microsoft/vscode/issues/118609 8fd24025701 :liptstick: deep freeze notebook events before emitting them 6c6db188b7a polish, avoid classname.split('') f0c44394d11 Merge pull request #118433 from microsoft/aeschli/openWindowsWithAuthority 637b659e4ad refine NotebookCell API afe0e2b9a77 Fix regex port attributes over applying 278a41c349b Show Open Preview in Ports view for public ports a6d7d86e857 remove `viewType` from openNotebookDocument call da562fa27c5 Add regular expressions and "others" to portsAttributes Fixes microsoft/vscode-remote-release#4623 b3e6307430d polish 1422de11110 sandbox - move performance.contrib to sandbox abea343c10e fix https://github.com/microsoft/vscode/issues/118369 b0f0b6125dc implement review comments 23e0d141edf Update src/vs/platform/windows/electron-main/windows.ts d383642ba20 Update src/vs/platform/windows/common/windows.ts 78224b9b9e9 refactor perf contribution so that they can be inside electron-sandbox, https://github.com/microsoft/vscode/issues/111211, fyi @bpasero f83b2f46dee shell env: add more logging 1d6241a8a08 prefer ReadonlyArray<T> over readonly T[] 94303f8e574 build 256ce60286b Bump elliptic from 6.5.3 to 6.5.4 (#118478) 623075e0962 update distro a713ca6204c Merge pull request #118596 from alienvspredator/main 420f8dde79f debt - more layering fixes f0321e30875 debt - layering fixes 9d8042db309 more jsdoc around workspace concept a19fac2442c better docs for #118566 96fabf5cf95 fix #118591. 6d079845776 fix(typescript-snippet): fixed "newpromise" snippet 1d686afe81c reduce grace time of remote terminals (#118571) a9087e9d0a9 Try to avoid extra promise chaining for posting into a webview cbacbe647c3 Fix markdown preview still being rendered while in edit mode 54f30ed19ce Lock to commit rather than tag for Azure login action 3244facbbbe wt editor stepping stone - make extensions list better - centered header style d4ee684c8de testing: show progress in status bar, minor refactors and cleanup 80112e79ffb testing: show total number of tests to run 5b41604444b testing: add more logical default autorun behavior 7a9e144ee15 Fixes a listener leak with ILanguageSelection 57155e84203 Fixes #118195 - avoids update if already set bcb8c8a4f4b Remove notebook document runnable metadata #106747 8454701b67c Update test for api 225a8c2b89d Infer cell "runnable" from notebook kernel state Fix #106747 7a19d09047d Begin eliminating cell runnable metadata d1164661d29 Fix markdown edited cell height on reload c77e5ccd947 Add back top margin for webview cells d299be88ea6 Updates proposal for #116906 556e6d8310f Fixup search smoke tests 58bd8e075a3 Fix spelling in comment ba54c76164b Use TS replacement span if returned 724bc08f906 Remove log f2d687752c9 Create a new pty ready promise on relaunch 65e4309c0d9 Directly expose environmentVariableInfo 37c54c79e0d Fix compile 7f94f0d97c2 Move some ptyProcessReady usage inside proc manager 3cc479953ca fix #117718 fire onDidChangeResources event after unregistering group a7c9230fb33 Update distro d6f4353fae4 bump distro 9eceb504987 Move label about for #115244 after more tests are failing f8a6f90dea7 Revert "chore: bump distro" e5a10ca55d6 Skip search tests while diagnosing flakeyness 88655de6104 Adds logging 6922f6150d8 xterm@4.11.0 Diff: https://github.com/xtermjs/xterm.js/compare/a73fe62...4.11.0 79e2119c5e6 Revert "snap: set compression to lzo, #117852 (#118116)" 43ced8a10a3 chore: bump distro 0f042b2c856 fix https://github.com/microsoft/vscode/issues/118569 0e43220113c finalize telemetry enablement api refs #110267 95d3c1e63b7 finalize isNewAppInstall api refs #117058 e60b94d6e9c Merge branch 'main' into digitarald/ces 6438e0564af Add 'Marketplace' as option for file on and remove as top-level type, #118473 17c67963f32 api work snapshot 112bd090027 Queue file operations 4ee2ef41e5b update cache on reprocess 0f64ef1b655 remove NotebookDocument#contentOptions f0cf34e073b debug: do not bind F10 to step over when on web eaf4a6a91b7 Fix debug console URI being decoded (#118226) 417b7803a18 Update distro 2c11dafcc2f Merge pull request #118252 from microsoft/tyriar/116467_2 dc92ff53548 Set distro back to that in main 4bb960ade60 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 b02e102f480 untitleHint: use expereiment service 90efd0a81aa Update README.md 449158a1aa7 Some Ports view cleanup b8a320867e5 allow null for remoteAuthority in IBaseOpenWindowsOptions to force local window 637497076ac Update distro 1e7fbfa7674 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 e7b0596d89a Revert "Comment out notebook compile error" aaf6287eccc remove skipped test e96f0ea3700 todo-tag 7bcec044268 Comment out notebook compile error 878526839a3 Update distro 364b9e98e83 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 ab9e11f38e6 Remove resolved comments e2ba7c6ae30 Breakpoint inline edit button should be a submenu 27efd88041d Remove preconnection terminal concept 4db71714ebd Properly dispose everything in tunnel view cells Part of #118544 9cc276648eb remove onDidChangeCellLanguage-event in favor of the existing document closed/opened event sequence 55af8021a12 Simplify RemotePty, revive shell config cwd e373b9c59e2 Focus row when escaping input on Ports view Fixes #117771 3c96cb6254a Merge branch 'main' into aeschli/openWindowsWithAuthority 99e97da512b revert unnecessary change d1dbb93317a Remove remote test failure comment 6d01ad952a9 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 e15767f6dcd add comment for remoteAuthority 5ce792fcfad Add SECURITY.md 98a22a957a2 declare cancellation support for openNotebook and wire it up, exempt notebook content provider from provider naming rules 0e04c15de4f assert unsetting of active notebook needs null, https://github.com/microsoft/vscode/issues/118470 bcfcb539ab5 unit test for https://github.com/microsoft/vscode/issues/118470 8c436826ae5 Merge pull request #118471 from DonJayamanne/openNotebookBug 30d699fa104 on fire active notebook change event when something changed, https://github.com/microsoft/vscode/issues/118470 425316c3764 Add a compose language (#118042) 63be79e67de Merge pull request #117062 from NotWearingPants/bugfix/rtl-cursor edfbf27e3af #118443 - change name fa6d38a99b3 change nls ids 9d3a1d9f59c Fix #118443 6b76fcb671e Merge pull request #118468 from spetrescu/main 7d96db1e51b Make underlined link buttons blue to match the styling of similar buttons 27975dad4fb move to IProcessEnvService where appropriate in default shell logic (#118271) ac229ced073 Revert "Reenable smoke test to see if still flakey" #115244 09c3c2d3be4 Remove broken part of test 11a84a6e8ac inset -> output. b62e3c7d1db Update distro 5fdbc82111f Re-enable task and term test 9878ccfbd74 remove markdown preview only when it is hidden or deleted. 250c7baf7e8 Fix #117903 c870a55b708 Update terminalProcessManager.ts 8fe29a7c415 Uncomment in test 30f41631849 Skip the failing test for remote only d89e8cd27ce recent entries with authority c59c1101162 revealView should scroll a little to reveal items below viewport. d4f8348c6ac Handle undefined extension publishers in issue reporter, fixes #118480 61301530c69 revealView should scroll a little to reveal items below viewport. 23ad719498b Log acceptTerminalOpened bdbf5850127 Bump vscode-emmet-helper, fixes #118363 0e8fba32637 Add outline offset for view actions (fixes #117349) 9b1700a8291 example of notebook specific navigation commands. 2c1037d3521 Fixes #117600 (#118397) b20839c1f3d Add 'Marketplace' issue type to issue reporter, closes #118473 a8739f9c3a5 Change messageDisposables to DisposableStore 2b9470cb4e1 Clean up SearchView link button code 31a7757fc7b Better "Open Settings" option in search view 18f16643ead Add button to reenable search excludes Fix #115352 244e9e6e793 set remoteAuthority in NativeHostService.openWindow if not yet defined 1761ecec3bd reduce selections. b6b9aa15ef6 debug: allow passing partial config to start debugging command 221e20b3742 Re-enable, add some more test logs 7e6d4c5eb91 debug: fill in selected configuration by name if not provided 3f56118e7bb move cell up a39e7343653 Oops 584999658ee Bug 820f0eeb270 Fix tooltip not showing for codelens extension a0c8d41f9ed add notebook navigation commands 78cb4cfc32b improved comment for InlineValueContext.frameId 3df01b4ae74 Include ms in shutdown constant comments 45c032da7ab Skip the failing task test 1469a82540f fixes #118006 d8a7202293c Update distro e22c2be14d1 snap: set compression to lzo, #117852 (#118116) 03c8548523f Merge remote-tracking branch 'origin/main' into tyriar/116467_2 9022c7fa945 Update distro f2cfdcf19b8 Bump distro 4a82fbab162 Don't force create a terminal on no reconnect 06044789bfa API proposal for PortAttributesProvider (#118446) 3f778f6aebf Update distro 9c78fa40ca7 skip failing test (#118443) 20b19612917 Move proxy resolution to vscode-proxy-agent (#117054) b41b95faee9 Pin windows-process-tree@0.2.4 to match main package.json 4d3b1580233 Disable terminal tests in remote again, fix settings for tasks 1cd624c12a3 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 4abc244a97e Add windows-process-tree to remote deps c2a92a1ba67 Merge pull request #118418 from microsoft/ben/sandbox caed3ea183a Merge pull request #118269 from davidanthoff/julia-indentation-rules 007baec8d51 fixes #118214 (#118425) c187999ee44 Merge pull request #118310 from smorimoto/ocaml 2a0f9aa8dc7 Reminder to compile between tests 69d36e8c982 Fix transformToSnakecase 305456c873f bump distro f7274905565 editors - fix mergeAllGroups (#118268) 8c3a00f78cb allow debug textmate in sandbox (#118219) f74d3b2fc75 fix tests 0c17e384499 sandbox - migrate backups from md5 to our hash algorithm dbe9dd49675 sandbox - make signing and integrity available 3f46e7f7b59 add ui flag to mocha tests 74532eb261c Re-enable process unresponsive checking 5cc1775bbf0 Disable unresponsive create process 11897d00a7a Disable pty host listeners temporarily 074632a51f1 Try enable remote terminal integration tests 508fcfbb537 Add more OCaml related file extensions to the OCaml group 5d80c30e5b6 Reenable smoke test to see if still flakey Ref #115244 74014e7fc6d Fix #117251 fe79bb261fb Add defaultSnippets to getting started contribution point Closes #117476 2d5e9cae4e0 💄 d3086eaa8c5 expect commands to set selection and focus for us properly. 7707feab17b accept focus from the list view. 6e83ba82107 fix #118279 da79b9db816 Don't setup pty host listeners twice in remote ea5f05a4358 Trying to clairify how webview options are used and passed around e066c74761e Document new fixedChunkSizePolling ts watch mode d7d42534260 Mark field as readonly a01035c44f8 Pick up latest TS 4.3 for building VS Code 02a5d5925ba Disable relaunch in tests 755fae50ab5 Bail out of create process if it's been disposed 2d3f1a0b478 fix #117699 258ee03bfbe Update distro 3483e9541b2 update betweenCellToolbar actions per context change. 61ea6ad847a Remote shell type support fc677cb3220 fix #118273. c40b367840d Merge remote-tracking branch 'origin/main' into tyriar/116467_2 b15bbfa8516 More test logs 3e345101dfd update shellType when it changes for local windows terminals (#117998) 6b2daa9a897 Update distro ff09362f443 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 5d5fa588828 Support pty host management in remote 29b1fcffd1b fix #117684. 7af259ab841 Add logs to test c24bfc336c2 💄& localization daf840b9293 Revert "fix visually background flash of cells." 016b809eef0 kill terminal process on ipad (#118247) c18378655bd Add Julia indentation rules 7f7e427d3ba fix visually background flash of cells. f704f80f877 Pick up TS 4.2.3 22cb8ccdac3 Merge remote-tracking branch 'origin/main' into tyriar/116467_2 a7d9285b89f Update distro 2e68f2ae918 Better fix for #118235 00d3831d0c7 fix #118248. 59972ff745f fix build 5144d664926 dedup ansi color rendering. bba6d12ccb2 💄 ff5da2ff172 DOM.show/hide. d2e39d0ae09 use resize listener for all main frame outputs. 32f7c1d93a8 Don't assume uncompleted category exists Fixes #118235 ccb3601d552 Support term cli commands c2e3a4cdc67 Update distro af0ec1caa0b ctrl+c on ipad (#118243) 6799395da0c Revert "fix #114009" (#118242) dfbc5374637 Increase local grace time to a minute fe24a792b03 Support attach to session in local f916e9f1aba fix #114009 df6b2691705 Support orphaned processes 48be13acf8e Check if VSCode runs serverless (#118233) e518e533653 Share IOffProcessTerminalService 51e773e69f2 Merge branch 'main' into aeschli/openWindowsWithAuthority 0bcba0486bb Make setTerminalLayoutInfo interface consistent 7703dff5fc1 Clean up, bring local remote interfaces closer 92ad349125b fix typo in comment aadc16a2371 Simplify channel comm 230e0fdc9aa clean up, some ground work to support viewColumn, $acceptEditorPropertiesChanged must update all state before sending events, remove active notion from notebook editor 9516844abfd use TS typle naming feature 68a6f1c30e4 look up editor by id, slimmer dtos f7ff53d7b06 Remove `_wrapWebWorkerExtHostInIframe` 418b8248e43 Progress towards sharing local and remote term impl 25dc50c18ed Remove start-up timeouts 49b5e3ba0ae bump version 978d1399f54 Fix compilation error fca9c7f78fb Fixes microsoft/monaco-editor#2375 5931e598b10 Fixes microsoft/monaco-editor#2344 205ec8c5f2d Fixes microsoft/monaco-editor#2358 b2a0913ad23 Fixes microsoft/monaco-editor#2168 9748b5f3c0b Fixes microsoft/monaco-editor#2359: Avoid syntax that confuses webpack less loader 5c4663baadf Fixes microsoft/monaco-editor#2355 60222b710d4 Align `MultiEditorAction` with `MultiCommand` 453e2793b2b Prefer using TS constant defining the context key 04770364fdc #118222 skip failed test 1260de1c101 sandbox - move workspace tags to sandbox 17212ee46f8 #118199 c024db9f419 NotebookEditorSelectionChangeEvent should contain selection ranges, not cells 2e84eb92077 explorer tests: use strict equal 1e28c1ec7ee debug tests: use strict equal 1a9df6127cc fix smoke tests ef6d44f53aa debug console shouldn't collapse messages when they have different source locations 6e5e1e700b9 api todos 6117524374f make NotebookCellData and NotebookData classes, rename NotebookCellData#cellKind to NotebookCellData#kind 86df4442128 remove todos 3a21f7815c4 Merge pull request #118125 from microsoft/sandy081/keybindingsEditor/adoptTable 57aaafc72f3 Do not check for settings sync enablement while initializing in web d4b5298cd62 -add bg color to even child - clean up 997c9f29307 add showNotebookDocument overload or uri ae2f3e07e12 streams - add test for using error as data be70750f862 comment 💄 b65719bfa27 streams - require explicit end() after error() and remove error support from end() 188e6aac851 stop the code bunny, reuse the createAndFillInContextMenuActions-util, fyi @sandy081 @rebornix 7386525c683 remove one more occurence of '1_run' bc62648b05c Revert "Remove authentication provider package.json declaration" fead22bae42 bump distro eed8a79e81f Extract proxy agent support (#117054) 79096af4755 use CSS for odd styling 223f4f820f8 multi cursor: announce cursor changes 3b05017bb8e more 💄, more strict typings 1d8493b203e 💄 in mainThreadNotebooks, return types, more private, dispoable store, duplication removal, etc 81edf8b91ab Merge pull request #118071 from mtaran-google/main 85c1a17b60f Merge IEditor and INotebookEditor, move editor things into notebook editor service fc785836967 fixes #118006 d84ddcbd529 Open window with authority 39c1d680867 #62531 clean up 2dfc39c6949 Remove arrays#mergeSort because by now browsers support the refined sort spec which mandates `sort` to be stable. 587274078c1 remove NotebookDocumentMetadata#displayOrder, https://github.com/microsoft/vscode/issues/117684 3e8b0eb2d4f remove displayOrder from NotebookDocumentMetadata API, https://github.com/microsoft/vscode/issues/117684 afae25919a8 Merge pull request #115351 from gjsjohnmurray/fix-62531 fa37b721d1e 💄 ddb17dc1282 💄 dbbf2b16882 shell env - introduce a service to resolve shell env as promise (#108804) bd2b229870b debug: update js-debug 567b82a0f9c Reduce padding of new markdown cells in notebook 38ac13bc833 Slightly reposition the folding indicator for cells 99f2b830a1d Improve drag and drop indicators for custom markdown cells in notebooks 354a0a2620f Disallow dragging the outer markdown cell for rendered markdown cells a34ed4b0d7b Make markdown cells span full width of editor 60d600b3661 Fix showing wrong name for files in search after rename Fix #117778 1c7ced625a3 Update dimensions of webview element when it is shown again 72995bcb80b Mark property as readonly array 28b7345808b Improve documentation for WebviewService 9fa1800b979 Make the webview icons manager disposable 5bff5459d13 Move webview icons from generic webview service to the webview workbench service acdcb64a6c9 Throw error if a webview is double registered 487296741f5 Don't require lazy webview to be passed to WebviewInput 344f329dd42 Make reviveWebview take an options bag instead of parameters 79ff1ec91bd gate on feature flag aca4cb12985 workspace trust telem 0f975049421 Fix output padding/margin for diff notebook editors 9f395ddb934 Update Codicons7e0f377891
0eca51a2dad Mark selected markdown previews in notebooks (#117947) 191d3324132 Add offset to button focus (fixes #117909) 8a81f4149d3 add warning log if webgl cannot be loaded 6abc478020f Update src/vs/workbench/contrib/terminal/browser/terminalInstance.ts 8b1ddde4f5b move disposal to end so measureRenderTime gets called 920b8b31931 store suggestedRendererType to avoid retrying webgl if it's thrown an error unless the setting gets changed e9a748131c1 use storageService bab447271a3 measure render time if webgl throws and canvas set b619d92639d use canvas if webgl throws e7ce70318ff after webgl is disposed, don't retry to enable it unless the renderer type gets changed ca83d009f37 Update src/vs/workbench/contrib/terminal/browser/terminalInstance.ts d61adbfd923 part of #106202, make webgl renderer default, using dom if loading the add on throws 1e5e33cd023 testing: fix unit test err d6b3bc68f1e testing: move types to classes instead of interfaces 35aed337263 testing: improve RequiredTestItem api 1370dacbe0f Rename localPtyService to ptyHostService 05ccfc4fcb7 Move localPtyService to node db06103f1bd Enable search in open editors checkbox by default 597c5958527 fix overflow in command column 0150b020a10 Merge pull request #118121 from microsoft/tyriar/116467 2d4e671f730 update distro. 5b2865bc99b fix layout - do not consider header height c6202bb3cc5 Adopt to use new table widget dd3f3f9d7fe Update issue scraper to use standard bot PAT and run every month 8465489bbd4 Fix unit tests 8fd1b977166 Merge remote-tracking branch 'origin/main' into tyriar/116467 12ab47ff863 Fix compile c9ae209c80e Use safe process env from electron-sandbox 97cb1ff41d2 Register ILocalTerminalService 468d73edeb0 Fix compile 306bebf0f15 Move responsiveness check to local terminal service 3a1f4c402b4 Move terminal instance service methods to local terminal service df863f912b3 more context key doc 5ba5f986b92 remove notebook dependency from build edits 128e9b502d2 add frameId to InlineValueContext cb7ad05cb7e Merge pull request #117766 from microsoft/tyriar/remove_flow_control 73fee061714 Update distro 9bf3a06e647 Merge pull request #118118 from microsoft/tyriar/117990 68a3a7bbf9b improve comment 0ef6619a3eb services - use refineServiceDecorator for environment (#117881) 1e0d5009b5d fix exception breakpoint padding 03681b39a50 Update distro fa4c3c6cf1e Show ports badge on view, not view container Fixes #117904 a5c28d0ca06 Merge remote-tracking branch 'origin/main' into tyriar/remove_flow_control ddd6fccfee0 services - use refineServiceDecorator for layout service (#117881) ffa703d4805 Recover on pty host reconnect c0f6549d1cb files - address #118060 on master 94dec183740 Fix simple file picker not opening entered value Fixes #116858 7586d1a0fc2 Fix extra http on some forwarded port addresses Fixes microsoft/vscode-remote-release#4595 fb46801cf2f lock file-changes-action dd14e280254 Don't use an icon on the Port add row c2a2cc2bc3b Allow quick input to show info severity (#118032) 179c89852f7 Change icon for npm scripts view Fixes #118019 3c238e71dbc Add "hasPackageJson" check back to npm view and let it find files in directories Fixes #117950 1d46693af84 fix IThemeService decoration ids. For #117881 31012ea2d4a add refineServiceDecorator, https://github.com/microsoft/vscode/issues/117881 978b0d6ead9 context key doc 16ea2f2894b remove "getter" wrapping for proposed API types (classed, enums). These checks needed to be disabled because of an TS issues f79a0df4dbe api todos, remove long outdated proposal 01d775756c7 todo goes issue b6141474a76 move undo/redo and clipboard support out of notebook service so that it slims down c349764ab2e no graceful, throw errors when trying IO on notebooks that have no provider, move notebook model things together 069da883da5 Merge pull request #117834 from jeanp413/fix-panel-codicon-outline 8025d97ece8 mark `displayOrder` for removal, https://github.com/microsoft/vscode/issues/117684#issuecomment-790019754 73c01a5dd87 Merge pull request #117424 from atscott/dedupereferences f43fcbe6a4e fix https://github.com/microsoft/vscode/issues/118103 62d6a24efb9 revive URI when receiving them, fixes https://github.com/microsoft/vscode/issues/118085 0657df6e82f fix some area labels in extensions and scm 534e2306379 Renaming a folder adds it to history (fix #118080) 2ba67b7b075 Allow ripgrep search provider to work for files backed by file scheme, but not file scheme themselves (vscode-userdata) (#118069) 5f17dc2a596 Ensure that PrefService calls openEditor with a proper options object and add tests Better fix for #117952 54758b7e16d Revert "Ensure that PrefService calls openEditor with a proper options object and add tests" 2ae55bc7164 Ensure that PrefService calls openEditor with a proper options object and add tests Better fix for #117952 16c94f18258 Remove incorrect command a4b2541e379 Mark disposableStore property readonly 584d2338870 Use `_register` for disposable 538931e7906 Make sure context key listeners are disposed of 49d05f998f0 Add `CodeActionTriggerKind` api proposal 20f06e04445 Clarify docs on CodeAction return type 7e18b7006d0 Use generic type for CodeActionProvider ba117e60c20 fix #118043 4bd99a42df0 Fix old markdown preview not being removed on drag 4371e72fb6a Fix potential null exception while dragging cells abf99de040e 💄 aaf70523a8e Bump vscode-emmet-helper, fixes #118008 828f99eff55 Update diff editor with new webview options e56182e67f2 Make the backlayer webview span the full width of the notebook editor (#117948) bfa7822f703 Fix typo in IWorkbenchExtensioManagementService e9533c22fee add basic workspace trust unit test 19b7444ccf0 fixup! fix microsoft/vscode#117095 de-duplicate location results 17f63a649ec testing: update to more proper provider api 2f7438f492f Fix spelling for type 5d5b9dd0a8b Don't label non-editable custom editors as readonly 5f24ec84ac7 Use correct new context name 6949fed6ed2 Update grammars and fix julia update script for Windows 0e94794c9d0 debt - remove unneccessary indirections from notebook service 09149ac0930 Avoid double dispose of pty host client f80f0d7074e More forwarded ports trace logging 65c0eeb03d0 fixes #118006 a24cb4615a1 debug debt: remove unneneded check 341c130b0e9 call stack: get rid of actions, menus everywhere fd948827992 Deprecate editor.accessibilityPageSize setting 79cf4e92ce1 Use Promise instead of event 14fd07d57a2 Workspace trust api feedback 65a9aa17768 Use "(Settings) " as a prefix for userdata paaths in web Closes #114979 c3d7bd2269d Reserve space for recent list to prevent shifting when it loads Fixes #117628 e21f3916af7 Focus first uncompleted category rather than whole document on start Closes #117540 09dae2618ae Disconnect in debug toolbar should dispatch to root session 8c13b011133 debug: simplify registration b6f87905932 💄 comment 4def740615b wrap perf stuff in iife, https://github.com/microsoft/vscode/issues/116546 bc444ac3797 Fix #117869 bede292addb Error on `remoteAuthority` in Local Workspace File. Fixes #118023 6b3313141de make sure local dispoables are disposed and cleared, https://github.com/microsoft/vscode/issues/117675 d13b7ff3641 one class, one variable style, https://github.com/microsoft/vscode/issues/117675 2e9fde23fdd add todo-tag for InlineHint, https://github.com/microsoft/vscode/issues/105690 0a49559a443 Mitigates #118008, better fix TBD a795f49b097 more enforcement of readonly nb doc. 62cfd68c779 absolutely no polish POC feature list d82bb46c445 do not prompt for confirmation in editor ed94b5d7562 allow text selection of description 6979a39169a move webview resolved state internal. c113b806cca re-organize notebook editor widget methods. 1614e28a11c remove notebook editor widget methods not used. c70fb23a27b 📓 move decorations out. 52bce12c25e testing: fix up wording in api 25b5db4d55c testing: make workspace test hierarchy required 94cda08af53 testing: make runTests required 9fbc8811428 testing: make hidden state more clear 2cc1a8061d1 Fix VSCode spacing cf3faa40460 Don't relaunch extension owned terminals (#117987) 6c6caf678fe Don't force kill ptys on Windows on window exit 7b91cd85284 less exclamation 6643b5e520b de-dup: uri. 0eb8c53f90b de-dup, NotebookEditorWidget#willDispose, didScroll. 623741272a2 Add activeCustomEditorId context 08ceea18aa0 rpm-spec: fix the wrong claim about working on EL7 e3829dc2477 Add 'prune' option to fetch in git extension API (#117923) 975dfff6db6 Emmet: Change the type of emmet extensions path (#117946) cc5db258239 testing: fix NaN if 0 tests ran fe353a54240 testing: close error peek view when test run starts 7d1751444b2 testing: fix tree view overflowing container b6251fc0baf testing: fix 'run in current file' running all tests da98cc6e94d testing: fix run at cursor discovering indefinitely 7c1305782b1 testing: adopt new autorun icon 4a6488c6d03 Move kernel/execution code out of NotebookEditorWidget for testability b629d888ca6 Bump Emmet yarn, fixes #117154, fixes #97632 5073e6f1fe5 fixes #117968 f97dd62ece6 Make sure we use the cannonical uri for file move target 1155803d134 Use case-insensitive check for file extensions bb8b693479b Mark properties readonly 20ec5b80085 Reuse generic open with logic for custom editors 75b5207f850 Extract BaseToWebviewMessage interface 4e4c43f30fd Update distro e994e5ab498 Persistent terminal id -> Persistent process id 647773d7e68 Rename terminal id to instance id 88d9e2b46b7 Refactor second task test f8c41a80b0d Refactor first task test c8fc575275d Ignore terminal events not related to task test e62bf133c45 fixes #117575 15c02651811 use one element for focused/active item in actbar fixes #117584 cd9ce538ba5 Add shouldPersist terminal tests c6d6bda7197 Merge pull request #117974 from ko1/patch-1 20096095f19 fix extension readme not rendering img width height (#117961) 2b50ba174f3 refs #117960 5d4377de987 March for API issues 72de8e9be86 add region markers to isTelemetryEnabled proposal, https://github.com/microsoft/vscode/issues/110267 ff225b9fcce add telemetry enablement api (#117944) 4de8cb29073 increase accessibility page size to 2000 9692037daa9 Update vscode.d.ts 9e4520310ed Fix remote terminal reconnect 85cbc2bc7ce cancel parameter hints when editor blurs, https://github.com/microsoft/vscode/issues/115265 44955421ae7 fix https://github.com/microsoft/vscode/issues/117431 7bc94131f17 change anyScore so it repeatedly run fuzzyScore on substrings of the pattern, https://github.com/microsoft/vscode/issues/116683 0018625d00e more details in explain dialog, https://github.com/microsoft/vscode/issues/116683 e2c5ff9db00 do not auto open pasted file 2022aede921 Return early on promise reject. ed1118b27b1 Support empty messages during location import 58ab537f4fc Debt: descriptions/hide context keys (tree, ports, tasks) 66b7ffaabf9 simplify $tryShowNotebookDocument further 65e28321240 use label service to infer name of notebook input 83f40886812 notebook - simplify group/viewColumn handling when opening a notebook editor via API df8763cfff7 api todos for notebook cell be11cb2de00 disable failing test (#117446) f70433a596a fixes #117910 73f9f126fb2 fix tests 932c7e247dc 🆙 distro 8c1bfcb569a services - distinguish environment services (#117881) 5510ee9c51d services - distinguish layout services (#117881) 6c13c8f4ed2 de-deup: getContextFromEditor. 9f7d229461a Extract decorateFileEditorLabel to a common function d7f90c7dbcf re #114554. d9d5e5d9c38 Merge branch 'main' into digitarald/ces e3bc5abc511 Draft for ces survey 400737c5b89 Pass 'data' to completion details request (#117092) 5d6ea08985d fix #116751. 01025340392 Splits clone/docs welcome Allow GitHub Browser entry in the middle 015ca030c4b tests for selections for navigation and hidden ranges. 177e3474c5a consolidate index/handle update api. 1f08b8f9024 wrong use handle/selection 460ebdaaf5b Aggregates welcome view registration by view id 9d071596951 debug: bump js-debug-companion version 811dc8d45a0 Remove authentication provider package.json declaration 8e37e4722ec Fixes #74505 (#117807) 5aeafe2b209 Fix Emmet issue where incorrect abbreviation is displayed in an html document (#117759) b3ade044793 fixes #117924 0c9476a0b6b testing: fix tree not updating if nodes are replaced with same id f18a3400668 Use method instead of event c30e2d46b2a Fix emmet update extensions path issue (#117797) e4a69193d04 Merge pull request #117138 from shskwmt/fix/116822 a13f7ee916b actionBar: home and end should navigate to first and last item respectively 721514f2c1d Merge pull request #117832 from jeanp413/fix-117354 98883cf3b11 remove actionBar.reverse orientation 0bf5569f02c seti: use CONTRIBUTING c3e2c76f762 add failing, skipped test for https://github.com/microsoft/vscode/issues/117899 edadf1c7194 Implement shouldPersist for all terminals processes 884ed1e3f33 Use initial instead of unset b803df2435c Fix top shadow issue 3559e47c08d update gulp-tsb bf894811515 Some Ports view clean up 73112daff11 Remove extra check that is not needed e9166375289 tests - enable color output for integration tests 32b3afadcbe support to make N outline entries from 1 cell, https://github.com/microsoft/vscode/issues/115200 85588252af1 notebook - make outline entries use the heading text has preview text b139c10f9a8 add tests for notebook outline de020f04d13 debt - make withTestNotebook easier to use a04913af757 Merge pull request #117716 from microsoft/tyriar/115396 d5eeb40b557 better focus for select boxes in action bars a2bacaf9fc3 Reverting the top margin to avoid a regression e4e9d1f43b2 Fix grammar 1c4daf4886c Merge pull request #117842 from TranquilMarmot/main 6a864f0b679 Add line height for title ba83910eb76 Remove duplicate tooltip 8baa0ebc750 Fixes title casing 36b0a209a51 backups - consolidate web and desktop strategy for backups when auto save is on b44cc868901 Revisit loose primary group check , use string instead of isPrimaryCheck 12675b4797e missing await 19aee3b6ddf untitled.hint let's go back to the button as the default 6dc076b5c4d debt - tackle an old todo aacafc75b37 debt - use CompletionItem#textLabel in more places f5153bbdacd use CompletionItem#textLabel 3c62a8f898b tabs - track last tab in row for wrapping de50318b48f text files - open an editor that fails to auto save (#115840) b497d17fec9 View: Maximize editor group" doesnt work with dragged file between editors (fix #117686) 3aff1320b81 my work for march b99df4f2b6e don't pass model service to applyEdit but check model version for edit that come from extensions, fixes https://github.com/microsoft/vscode/issues/117683 8fd4a68845f Factor in workspace trust when switching versions (#117774) f84aa806e45 🆙 distro 23dca79e8e9 🆙 nsfwatcher (#117871) 0a7ea106e6e Merge remote-tracking branch 'bpasero/ben/march-debt' f3ec084d542 Update seti-ui icon theme b061ac534cb Fix #117833 f3f4eebecbd Label custom editor as deleted if the backing file is deleted 64db4d5a1a5 Fixes #117354 d89e2e17a5d Allow single line comment after `{` for auto indent 5766526b0b3 Port the desktop iframe webivew focus improvements to the web 8572664c6c7 Enable semantic features (such as error reporting) in JS/TS notebook cells a74ebb17cfe Add helper for tracking active js/ts editor 1f567e10f37 Fixing two more cases for promises in conditionals 3feb2ece1ed Pick up latest TS version for building VS Code 5c7c41fc3d2 Merge pull request #117723 from microsoft/rebornix/reduce-markdown-flickering 91d73da5e42 Only show `infer return type` refactoring when refactorings are requested d596c568451 fix altClickMovesCursor setting description -> markdownDescription (#117793) a4187782439 Merge remote-tracking branch 'origin/main' into tyriar/remove_flow_control d0a46a03279 Merge pull request #117734 from jeanp413/fix-117682 ba9c72b1ff7 Merge pull request #117762 from microsoft/tyriar/remove_ext_host_proc cadb56785ab Merge branch 'main' into tyriar/remove_ext_host_proc e0b4ebc148d Merge remote-tracking branch 'origin/main' into tyriar/remove_flow_control f4c1da9ca64 Update distro ce4bbc7a19e bump version to 1.55 abdf5767046 ipc - allow to configure proxy c41922bf427 chore - cleanup registerSingleton service usages 91a246998c2 Remove flow control setting bd272ea6b74 chore - have a single display change listener 1f0f03e4a03 ipc - adopt utility methods (#114418) df5d7c257df Remove exthost terminal processes 5f234672f57 fix: only use the readonly attribute on the IOS 509cd79dbd6 text file model - drop custom touch method and just go through normal save code 437904db063 file service - add a atomic read option 45f5c4d43f0 Fixes #117682 3d988a6800f Remove focus handling on the xterm element 9a9551b89fc pfs - copy should preserve dangling symbolic links 1e799f5a17e anything quick pick - only restore editor view state in certain cases acea3970993 workspaces - use recursive mkdirSync a469f5eafaa storage - rename storageservice2 => storageservice 2ab5a60c0b8 storage - drop old node based storage service 5fabc0d9dc1 smoke test - remove code only needed for stable january release f5d9bdc8466 fix microsoft/vscode#117095 de-duplicate location results 4cda94b60c1 Remove escaping whitespace characters 495c0e996ad fix cursor position when at the start of RTL syntax tokens 234c7a45fee refactor change to fix fault and reduce diff bf426c250ec structure FilterOptions.textFilter to hold negate flag 03ad36a18b6 Fix negation logic for filterResourceMarkers and filterRelatedInformation 878b0087e06 simplify negate logic in filterMarker 5a6c46fe60a fix #62531 support negation in text filter of Problems 490d7e38da9 Merge branch 'master' into fix-95671 057a47c1b62 Merge branch 'master' into fix-95671 8b73103dedf Merge branch 'master' of https://github.com/matthew-haines/vscode ac89d9ef71f Fixed logic for setCollapseStateForRest and alt-click in editor 9e1b929816d Fixed logic for setCollapseStateForRest 330f6052ebb Added actions for folding/unfolding all regions except selected 8ef113d399c Added collapse surrounding regions with alt-click 3374969a2cb Fixes #95671 REVERT: fd6f3bce670 chore: bump electron@11.3.0 (#118680) REVERT: 305bf142199 Remove icon from input row in ports view (#118649) REVERT: b5af426d34c Properly dispose everything in tunnel view cells (#118546) REVERT: f299ec03c2a Fix extra port icon (#118529) REVERT: 62dbffbfe91 Merge pull request #118177 from microsoft/joh/bump-version REVERT: 062c67a3210 Merge pull request #118491 from microsoft/env-var-recovery REVERT: e11b6a730c9 Fix #117903 (#118492) REVERT: e7936a3e885 prevent env var relaunch from extension owned terminals REVERT: 3be37a725d6 Merge pull request #118438 from microsoft/tyriar/1_54_117990 REVERT: d461d2fd311 Merge pull request #118265 from microsoft/connor4312/candidate/js-debug-1.54.5 REVERT: 88b4d3f9a4e Merge pull request #118448 from microsoft/tyriar/1_54_118321 REVERT: c48a57b6988 Merge pull request #118437 from microsoft/tyriar/1_54_117956 REVERT: d68ab8fc717 Don't force create a terminal on no reconnect REVERT: f9e6b352d1c Recover on pty host reconnect REVERT: b31f6e1afea Don't force kill ptys on Windows on window exit REVERT: bd655647d79 fixes #118214 (#118425) REVERT: 3a6b7f7cbdc editors - fix mergeAllGroups (#118268) (#118406) REVERT: 06c5e24837e FileSystemProvider extension: throwing a FileSystemError in readFile does not report to user (#118173) REVERT: 61feeef2289 Renaming a folder adds it to history (fix #118080) (#118174) REVERT: dd74fb1d885 debug: update js-debug REVERT: 362f7e441ff Pick up TS 4.2.3 (#118261) REVERT: 6b7199812b4 Don't assume uncompleted category exists (#118250) REVERT: 21ea885f455 Merge pull request #118167 from microsoft/connor4312/candidate/js-debug-1.54.4 REVERT: de16aa4bae0 bump version to future 1.54.2 REVERT: 87ff6fb52f1 debug: update js-debug REVERT: f30a9b73e8f bump version (#118144) REVERT: a25525922cd update distro (#118129) REVERT: 42e27fe5cdc Merge pull request #117982 from microsoft/roblou/settingsOpenEditor REVERT: ac575425edc Ensure EditorOptions subclass is passed to openEditor Fix #117952 REVERT: 911868fa126 refs #117960 (#117976) REVERT: 62c69b32bf7 Merge pull request #117972 from microsoft/tyriar/r_1_54_remote_reconnect REVERT: 564f3917935 Fix remote terminal reconnect REVERT: e7989863202 fixes #117924 (#117925) REVERT: c4d7a739c9b Terminal cannot input (#117915) REVERT: 5266d3cc7f3 Merge pull request #117898 from microsoft/tyriar/r1_54_remote_reconnect REVERT: 6f0e457db3f Fix emmet update extensions path issue (#117797) REVERT: 66c7b551727 Implement shouldPersist for all terminals processes REVERT: ae03e39735b Only show `infer return type` refactoring when refactorings are requested (#117800) git-subtree-dir: lib/vscode git-subtree-split: ead2c2ab0f5c93b11e223fd8f4493939be2ee0de
6677 lines
196 KiB
TypeScript
6677 lines
196 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 {
|
||
/**
|
||
* 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 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;
|
||
}
|
||
|
||
/**
|
||
* 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;
|
||
/**
|
||
* Smart select opptions;
|
||
*/
|
||
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.
|
||
*/
|
||
inlineHints?: IEditorInlineHintsOptions;
|
||
}
|
||
|
||
/**
|
||
* 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 inlineHints
|
||
*/
|
||
export interface IEditorInlineHintsOptions {
|
||
/**
|
||
* 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 EditorInlineHintsOptions = Readonly<Required<IEditorInlineHintsOptions>>;
|
||
|
||
/**
|
||
* 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;
|
||
}
|
||
|
||
/**
|
||
* 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;
|
||
/**
|
||
* 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 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,
|
||
letterSpacing = 52,
|
||
lightbulb = 53,
|
||
lineDecorationsWidth = 54,
|
||
lineHeight = 55,
|
||
lineNumbers = 56,
|
||
lineNumbersMinChars = 57,
|
||
linkedEditing = 58,
|
||
links = 59,
|
||
matchBrackets = 60,
|
||
minimap = 61,
|
||
mouseStyle = 62,
|
||
mouseWheelScrollSensitivity = 63,
|
||
mouseWheelZoom = 64,
|
||
multiCursorMergeOverlapping = 65,
|
||
multiCursorModifier = 66,
|
||
multiCursorPaste = 67,
|
||
occurrencesHighlight = 68,
|
||
overviewRulerBorder = 69,
|
||
overviewRulerLanes = 70,
|
||
padding = 71,
|
||
parameterHints = 72,
|
||
peekWidgetDefaultFocus = 73,
|
||
definitionLinkOpensInPeek = 74,
|
||
quickSuggestions = 75,
|
||
quickSuggestionsDelay = 76,
|
||
readOnly = 77,
|
||
renameOnType = 78,
|
||
renderControlCharacters = 79,
|
||
renderIndentGuides = 80,
|
||
renderFinalNewline = 81,
|
||
renderLineHighlight = 82,
|
||
renderLineHighlightOnlyWhenFocus = 83,
|
||
renderValidationDecorations = 84,
|
||
renderWhitespace = 85,
|
||
revealHorizontalRightPadding = 86,
|
||
roundedSelection = 87,
|
||
rulers = 88,
|
||
scrollbar = 89,
|
||
scrollBeyondLastColumn = 90,
|
||
scrollBeyondLastLine = 91,
|
||
scrollPredominantAxis = 92,
|
||
selectionClipboard = 93,
|
||
selectionHighlight = 94,
|
||
selectOnLineNumbers = 95,
|
||
showFoldingControls = 96,
|
||
showUnused = 97,
|
||
snippetSuggestions = 98,
|
||
smartSelect = 99,
|
||
smoothScrolling = 100,
|
||
stickyTabStops = 101,
|
||
stopRenderingLineAfter = 102,
|
||
suggest = 103,
|
||
suggestFontSize = 104,
|
||
suggestLineHeight = 105,
|
||
suggestOnTriggerCharacters = 106,
|
||
suggestSelection = 107,
|
||
tabCompletion = 108,
|
||
tabIndex = 109,
|
||
unusualLineTerminators = 110,
|
||
useTabStops = 111,
|
||
wordSeparators = 112,
|
||
wordWrap = 113,
|
||
wordWrapBreakAfterCharacters = 114,
|
||
wordWrapBreakBeforeCharacters = 115,
|
||
wordWrapColumn = 116,
|
||
wordWrapOverride1 = 117,
|
||
wordWrapOverride2 = 118,
|
||
wrappingIndent = 119,
|
||
wrappingStrategy = 120,
|
||
showDeprecated = 121,
|
||
inlineHints = 122,
|
||
editorClassName = 123,
|
||
pixelRatio = 124,
|
||
tabFocusMode = 125,
|
||
layoutInfo = 126,
|
||
wrappingInfo = 127
|
||
}
|
||
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>;
|
||
inlineHints: IEditorOption<EditorOption.inlineHints, 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>;
|
||
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'>;
|
||
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 `ITextModel.getValue`
|
||
*/
|
||
getValue(options?: {
|
||
preserveBOM: boolean;
|
||
lineEnding: string;
|
||
}): string;
|
||
/**
|
||
* Set the value of the current model attached to this editor.
|
||
* @see `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 `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 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;
|
||
|
||
/**
|
||
* 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 [`HoverProvider`](#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 [label](#CompletionItem.label)
|
||
* is used.
|
||
*/
|
||
sortText?: string;
|
||
/**
|
||
* A string that should be used when filtering a set of
|
||
* completion items. When `falsy` the [label](#CompletionItem.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 [current word](#TextDocument.getWordRangeAtPosition) to the
|
||
* current position.
|
||
*
|
||
* *Note:* The range must be a [single line](#Range.isSingleLine) and it must
|
||
* [contain](#Range.contains) the position at which completion has been [requested](#CompletionItemProvider.provideCompletionItems).
|
||
*/
|
||
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
|
||
* [completion provider](#CompletionItemProvider.provideCompletionItems) 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 [label](#CompletionItem.label) from the
|
||
* [provideCompletionItems](#CompletionItemProvider.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 [doc-comment](#CompletionItem.documentation) or [details](#CompletionItem.detail).
|
||
*/
|
||
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 [doc-comment](#CompletionItem.documentation)
|
||
* or [details](#CompletionItem.detail).
|
||
*
|
||
* The editor will only resolve a completion item once.
|
||
*/
|
||
resolveCompletionItem?(item: CompletionItem, token: CancellationToken): ProviderResult<CompletionItem>;
|
||
}
|
||
|
||
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 [text](#DocumentHighlightKind.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 [edit](#TextEdit) which is applied to a document when selecting
|
||
* this presentation for the color.
|
||
*/
|
||
textEdit?: TextEdit;
|
||
/**
|
||
* An optional array of additional [text edits](#TextEdit) 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 [Kind](#FoldingRangeKind) of the folding range such as [Comment](#FoldingRangeKind.Comment) or
|
||
* [Region](#FoldingRangeKind.Region). The kind is used to categorize folding ranges and used by commands
|
||
* like 'Fold all comments'. See
|
||
* [FoldingRangeKind](#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 [FoldingRangeKind](#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 InlineHintKind {
|
||
Other = 0,
|
||
Type = 1,
|
||
Parameter = 2
|
||
}
|
||
|
||
export interface InlineHint {
|
||
text: string;
|
||
range: IRange;
|
||
kind: InlineHintKind;
|
||
description?: string | IMarkdownString;
|
||
whitespaceBefore?: boolean;
|
||
whitespaceAfter?: boolean;
|
||
}
|
||
|
||
export interface InlineHintsProvider {
|
||
onDidChangeInlineHints?: IEvent<void> | undefined;
|
||
provideInlineHints(model: editor.ITextModel, range: Range, token: CancellationToken): ProviderResult<InlineHint[]>;
|
||
}
|
||
|
||
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 IMirrorModel {
|
||
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
|