e4a830e9b7
3e344b17b7 Remove extrenuous file. (#113825) 36f9eaf1e7 Merge pull request #113596 from Ry0taK/release/1.52 e73a6b082c Create ryotak.txt ea3859d4ba Bump version number to 1.52.1 (#112659) 608dfc1363 Catch all localhost duplicates when forwarding a port (#112575) 8b5ece7c20 Merge pull request #112431 from microsoft/misolori/notebook-color-icons c11e9282d8 Merge pull request #112565 from microsoft/isidorn/enableBreakpointsFor 2b6973a35d debug: check for existence of enableBreakpointsFor.languageIds 374d05c17c Revert "debug: stop supporting enableBreakpointsFor" f93c8a0386 Fix notebook status bar icon colors (fixes #112323) 940b5f4bb5 chore: fix run-on values for snap build (#112245) dbbf7079b2 Make sure that tunnel information isn't set on desktop (#112228) 99edf4ff0f fix linux deb repo pointer (#112226) 91a50e3022 Set tunnel information for embedders (#112215) c6cb541539 Fix port forwarded nofication showing for the wrong port (#112160) 6caba06920 Merge pull request #112141 from microsoft/joh/fix/111913 cb971b8ffd Preserve whitespace in tree hover (#112133) e4af2d8ad6 disable proposed API checks on top-level getters 6f933020e8 Just set textContent for custom hover (#112075) d66e3740a4 Merge pull request #112054 from microsoft/connor4312/js-debug-1.52.2 b4ec131cff retry all cosmosdb ops (#112072) 5e585c5fb4 use proper repos for linux arm (#112026) 37c2de252e debug: bump js-debug bc13785d3d Retry createAsset sproc due to ECONNRESET (#112020) 559a78eaaa Mitigate #109728 (#112008) 62d6b82a6f Revert "build: create asset should still try to add asset" (#112009) 30e0c5784b fix #111898 (#111928) 532ba43c78 Remove console.log 39f33b588a wrap font faimly with quotes dc8ac78031 fix #111910. Avoid notebook save race condition. 97e4af4d20 Fixes #111899: Maintain compatibility for context keys like `vim.use<C-r>` acbe8f273e Only render `vscode-remote://` extensions as remote 9254ec3b28 fixes #111577 7413cc2493 yarn gulp vscode 528ca4c9ea fix duplicate imports 8e5a1da05e Update doc comment for resolveTreeItem Related to #111715 478c7b633f Make welcome buttons look better in wide pane Fixes #111744 d298a8d5d6 Fix timing issue with environment tunnels Fixes microsoft/vscode-remote-release#4112 7fcdba7fea Add heuristic for when to notify about forwarded port Fixes microsoft/vscode-remote-release#4133 2e3236827e suppress refactor preview from onWill-handler, workaround for https://github.com/microsoft/vscode/issues/111873 de3dd1383c Active indent lines do not render in High Contrast theme. Fixes #111137 8f410da37f Revert "fixes #110353" 6ed64df492 repl: font family 0c947cb4ee fixes #96264 6a1ad5b9b8 💄 code lens font fix 60bf040b98 workaround for https://github.com/microsoft/vscode/issues/111871, fixes https://github.com/microsoft/vscode/issues/111666 5e350b1b79 build: create asset should still try to add asset 7256c3ab26 💄 code lens font 6a58335d02 explorerViewer drop await c2f68baa78 search: fix handle empty results from ripgrep 63137db51c debug: fix auto attach not turning on if reselecting current state c70d984fa2 debug: bump js-debug ff66544ada Allow using upper case hex characters for color ff824f2776 Bump actions b617b725a0 update notebook execute kb shortcut tooltip for windows. 1aa26c3775 Fixes #105808 9d5c351c71 notebook list view scrollbar should be below cell toolbar 53eac52308 Fixes #111499 1c1c59fd0f Kill code processes after each integration test suite run (#111844) 39fb92c6c5 Remove redundant when clauses 62b119aa22 Fixes bad has implementation 370e092880 extJupyter 41eb987d09 add log for save/saveas 7b1154d447 update resolve time stats even if they are the same. 7ecce71a48 Fixes #110376 450ae69a33 Fix #111835 2964a69479 Fix #111798: Getting Started: capitalized "Editor" looks weird 061e84830d fixes #110775 a82ae0c9b7 Fix #108266 564ff91763 fixes #111832 95f6cfa0ae More 💅: adjust overall padding & sizing (refs #111753) ae93d48902 fixes #111583 15f38fe338 Fix ports view order in remote explorer Fixes #111830 a63786db23 Add paren, bracket, and brace to autoclosing pairs for make Fixes #89191 3c4bbf6da2 Fix ports view listener leak Same kind of cause as https://github.com/microsoft/vscode/issues/107903 Fixes #111772 6d222ba785 Fixes #97196: Clear out semantic tokens when there are no more providers 0447415697 Hide the editor's cursor when doing composition (fixes #106663) 79fb30f5b6 Fix resolveTreeItem called twice Fixes #111749 07333dec48 node-debug@1.44.15 87e43299ad update DAP to 1.43 09a7ad2ae7 fix raw timers telemetry event 4095701c70 Exclude endgame-plan issues from query 0ea221b325 fix query, remove commas 4f33022639 add verification query for issues from non-vscode team members c0ad6a56c0 Slightly darken list active bg on light theme (fixes #111750) 92192baf76 Bring content closer to center vertical when space permitting Ref #111753 f603b548c5 Polish getting started styles (#111774) af63e8263a Fix #111706: Getting started: images need alt text 2012817c0d Fix #111699: workbench.startupEditor setting not showing Getting Started tab 5215161c88 fixes #108712 5b121903fc Fix issue preventing cells from leaving "running" state Fix #110973 253844006a fix #111735. 1fc36c35bb remove extrenouus log fixes #111759 b122603b86 Fix comment decoration weirdness, fixes https://github.com/microsoft/vscode-pull-request-github/issues/2309 9d9ae54aa8 Add jpg to vscodeResources in order to bring gettingStarted images into the bundle 44dafcc840 Allow an `EncodedTokensProvider` to also provide a tokenize method a9100d686c Update verification notebook milestone 4884986dd6 tweak smart select test a2193cb827 fix #111714 efd8b0141e explorer: update creation labels acaecbdc86 fixes #111602 0db0fa8fc9 Prompt when hitting a different UndoRedoSrouce when undoing (#111640) 2b179bff4a Extract `_undo`, `_redo` 0ac5e95251 Fix #109644 df2c328e59 string literal does not work with status bar item [background] color (fix #111687) d758a74bf7 Merge pull request #110902 from Wscats/patch-5 d79110a329 Avoid layer breaker bbdbcd333b Update contextkey.ts 9cd45f96de fixes #111710 383dc83e7f Fix the standalone editor build 97646e138a workbench.tree.expandMode 49ef641300 fixes #111639 af29768f18 Fix #110844 e16d1f06d7 Add default URI if not provided in dialog API Fixes #111585 f2ae4927f9 update distro 980ef5cb52 Merge pull request #110846 from Wscats/patch-3 94dd681d16 more fixes for #95697 16ffa1deff Add GreaterEquals and SmallerEquals and fix implementations 65c70884c1 Fix #106989 763b155fe9 Fix #111574 51b1029e98 Check detected tunnels before auto forwarding Fixes microsoft/vscode-remote-release#4112 87538e9cea Merge remote-tracking branch 'origin/master' into pr/Wscats/110846 2ba6946272 fixes #111581 8d171e6492 Improve multiple lock files notification Fixes #111589 0be03ecc6d fixes #111693 5d591624ae add install in browser action 16e91f1011 fix https://github.com/microsoft/vscode/issues/111741 f622d7b6f1 fixes #111657 9a9c6b5557 Extra character in icon hover. Fixes #111681 b9b92e3152 Fix tree item not getting resolved after data change Fixes #111711 f4187f2202 fixes #111732 #111733 806eaddcbe Fix resolveTreeItem getting called too early Fixes #111613 0587f828d6 fixes #111617 399be0e564 fixes #111671 3730238647 fixes #111601 e024fd8b96 add cancel-option to continue bisect model dialog, https://github.com/microsoft/vscode/issues/111667 914b5633f5 fixes #111593 2388291cbc start extension bisect with all extensions disabled and stop early if problem reproduces, https://github.com/microsoft/vscode/issues/111672 a1e5a1a593 Small typo in notebook mime type icon description. Fixes #111674 6d4532c484 align continue bisect messages, https://github.com/microsoft/vscode/issues/111667 1cad5ab365 Prepend `vs/nls` to `workerMain.js` (fixes #111599) 00bbeb3973 Fixes #111649: Have the diff editor control `wordWrapOverride1` and the toggle word wrap action `wordWrapOverride2` such that they can function independently 8041440e5b linux: disable integration tests af848910f7 Merge pull request #111661 from dataleaky/master c44732014d windows - prefer to focus window where files open in 14bf080705 Keep Editors Open menu choice in the editor '...' menu should be a checked option (fix #111668) b2ef118857 window.restoreWindows: preserve description polish (fix #111607) c76a42acc6 Bad rendering of status bar item with error background color (fix #111618) 1e0094545c Merge branch 'master' into master d9ea0ced98 build: fix config 60f5e6ee9a build: disable exploration sync 647cecb29d build: exclude electron-11.x.y branch from continuous build 5e54da666c fix #111675 and #111673 9dba02c075 re #109594. b2c2c20fe7 fix #109626. 8fa61d9652 Fix a dependency URL a0aeb3a559 Update package.json 4d9277a23a Optimize autosave message when changing settings. Fixes #111648 c96643feab Fix #111598 0e8f9d143b Merge pull request #111541 from mdesrosiers/handle-find-widget-history-delayer-promise-rejection f89bb0d54a Tweak verification needed query c7e849f9be fix https://github.com/microsoft/vscode/issues/111604 af5c09a10c Remove console.log from hoverWidget Fixes #111609 3689660fcc Add descriptions for npm.packageManager options Fixes #111628 72cce5194c fixes #110511 f67050c029 Missing jsdoc in LinkedEditingRanges. Fixes #111590 e0f804f483 fixes #111496 55489fdd47 Move ports veiw into remote explorer by default 4ca1a30f5d Update distro commit 9395c9403b ignore already verified items d531b6dfe9 proxy - various login dialog fixes c5ffc57ee6 Get ready for ports view experiment 20bf09bc66 [linked editing] finalize LinkedEditingRangeProvider. Fixes #109923 ec2bcdbb57 #111573 also check for setting value type 6e7d1fa680 Fix #111573 bf21395291 column options in openWith-command can be undefined, fyi @mjbvz 3472159cb1 Merge pull request #111408 from microsoft/aeschli/notebookIcons 7536644522 Fixes #111569 648ed9f9d1 unblock build f019356d4d Revert "Make users save new file (#110330)" e3105b9453 Add jpg exclude to hygene bd627caa54 Add actual images for content e428ce2d26 Dont let product icon overflow 5a3c6cb697 Fix offcenter footer 35e9278e50 Fix scrolling on getting staarted 562f909902 Revert "fix: c++ exception in keytar module" b0fba33756 Styling tweaks to getting started 8baa2cdaaf Better shape images in getting started d95abcca66 Prevent error when reopening markdown preview. (#107205) (#111449) 1c4cc602c6 Fix merge conflict 8b59a9ce1a Focus on the content window for iframe based webviews b854c0bffd Make vscode.openWith a proper api command (#111006) 6062ebe318 Bump highlight.js in /extensions/markdown-language-features (#111262) 9e5f14c1bc Default strict null checks to off for implicit projects 304d3d7e36 Handle rejected promise in history delayer 18ecb87939 fix html yarn.lock b03cdca765 icon doc 15b05ff05a fix #108788. 68eaa95360 Bumps version of github-browser c358910b01 Fixes #110880 - sets useConfigOnly=true on commit 634fb13135 [css][html] update dependencies 8448b1680c [html] update dependencies c941749f5b Enable persistance of getting started ui state dceba9ebb7 [css][html] Option to disable MDN Reference popups only (without effecting other functionalities). For #97979 c6e90c5ea3 Update 'statusBarItem.errorBackground' default color token (refs #110214) ec13471816 [json] Inconsistency between files.insertFinalNewline and Format Document. Fixes #17359 d132d93aeb Register `DeleteInsideWord` as an editor action 0b97b6b160 [json] update dependencies 025952c4d5 Rename `editor.atomicSoftTabs` to `editor.stickyTabStops` bb33ef06bf Fix #99530 de36470f39 Fixes #110897: Always disable word wrapping in left hand side editor of inline diff 833231811f Define a label for `deleteInsideWord` 3fb2f6f976 chore: bump distro 47ce2a8d6d #111845 fix localization tests 155691d0be chore: bump electron@9.3.5 (#111530) 5c71b5425a Fix #111357 b548ac2211 more build fixes 6dfdbe24d9 update distro 8cb4a6907b support passing log level using query param ac165d7f97 bump cache salt 8c2a384efa 💄 format file 858817eb3c Update description of `remote.autoForwardPorts` e7f19cf61a don't validate MessagePort inside iframe as safari seems to have trouble with that bf24f189f1 Clean up defaultFolderPath 9689508fa5 Run OSS Tool and make necessary updates 2afcea867a Use argparse 1.0.9 in npm extension 648090440f caching is HARD aa36c6211b move duplicated code into central place 2c5901053a spelling error in command name (fix #111455) f5fb75d829 fix tests 0f1492d6da chore - remove unneccessary non null assertions 8ce7356104 Fix defaultFolderPath so that userhome is correct 2890fd321f Fix #111485 a5a37240bc fixes #108001 eee332ba85 fix misuse of VSCODE_ARCH in builds 2018df47d8 support font features, like ligatures, in code lens, https://github.com/microsoft/vscode/issues/16038 b7211aa875 fixes #107651 9172ecfad8 🆙 distro a4054cda6d update references viewlet, also no more proposed API usage required cedc2850ec Exclude testplan-item label f47aae014c Merge pull request #111441 from microsoft/ben/native-tests 673c1adcb0 fix layer breaker 1efcfbf242 api - fix exception in status bar ef2a900dec sandbox - add SH1 to HEX utility using crypto.subtle with fallback to our own solution fbf7566d39 tests - add test suite for native modules 7723f2548c Fix #109406 8ee75c19bb Escape more white space in appendText Fixes #110464 c5ab321020 fix https://github.com/microsoft/vscode/issues/110554 444f79cc3a Improve quiet light diff syntax highlighting. For #107926 07224f0681 update to latest DAP e24ea5ef61 Merge pull request #107926 from alisonnoyes/master 1a6d7f3118 [json] performance warning message can't be ignored. Fixes #105988 e6d6661247 fixes #111410 cfa02997d2 fixes #111413 e2dd774fa4 fix yarn retry logic 627ad0b4ee rename OnTypeRename -> LinkedEditing (for #109923) f13720627f Improve task dependency cycle check Fixes #111369 cd9be282b7 Add condition editing UI to breakpoint filters 6795d766a0 remove old logging API proposal, fixes https://github.com/microsoft/vscode/issues/85992 79b6d35bd6 remove TreeItem2 01bbb81052 Finalize markdown tree tooltip and resolveTreeItem Fixes #100741 016655c546 fixes #104629 8891878a3b bump cache 210a1a1327 Merge pull request #111405 from microsoft/joao/trusted-extension-uris 3495d2fd76 💄 6391d710cf adopt latest loader, pass trusted types policy to loader, adopt in loader-usages 483e81f3b8 Fix duplicate port forwards for ipv4 vs ipv6 Fixes https://github.com/microsoft/vscode/issues/111400 f8d1c07e16 use createChannelReceiver, createChannelSender 995983da54 github: get all branches c3414f3cf3 Always show the open view option in the open in browser command cae277a203 Add a command for open port in browser Part of https://github.com/microsoft/vscode/issues/111402 2fb5b5b696 fixes #44542 0321ca5d96 fixes #106664 6c8f62432f Merge branch 'master' into aeschli/notebookIcons 8012c255e5 fix keybinding smoke test after icon name changes 4e45d27a72 fix stopIcon name 35a8955dc1 Merge branch 'master' into aeschli/notebookIcons 4ae452929e Merge pull request #111383 from microsoft/aeschli/extensionsIcons 3a92391c20 Merge pull request #111377 from microsoft/aeschli/preferencesIcons fddc9bb221 success/error icons f6249641f2 externalize notebook items bafc05ff0a fix retry 71836f95dd fixes #111366 6253e47773 #44542 ability to reveal setting 42bb62a06f Exclude endgame-plan label 1e0af43774 trusted ext urls: use 1 hour instead of 10 mins c471973938 Merge branch 'master' into aeschli/preferencesIcons 44ddde116f adopt checkProposedApiEnabled 14d59bef92 Allow status items with error background color (fix #110214) (#111353) 14415847e1 trusted extension urls 2cd7a70d62 original urls get passed along with openUrl ac9e250cce support node 15 cfe2e99ad8 debug: load all stack frames text shuold have initial color when selected so it is readable 4cb5bb656a Merge branch 'master' into aeschli/preferencesIcons 8e6517069a Merge branch 'master' into aeschli/extensionsIcons 98f80c4047 Fix #110698 8784b77bfd fix #110699 1e77bd81d8 registerCodicon 8234453386 update tests 83f8b96a94 add extension icons 43f5beb307 fix terminal icons 09f281dff6 dirty dff icons 2f0552737c terminal icons 5c2127ec74 Fix #110964 f70430eae4 download to temp location first and rename 26a0c24c6c fixes #111218 818174d4e8 bulk edit service: Show infinte progress when there is only 1 item since we do not know how long it takes 4ac4cf3dff some more cleanup, enfore proposed API checks, fyi @RMacfarlane c84fa206d4 add preferences icons c219b0673c 💄 discover and mark more proposed types 44af5d2af2 marker view icons f0bb23ca02 more icon work 58a90729c4 externalize activitybar icons 1e6e371d3b :liptsick: sort API types and namespaces, enforce proposed API for types a94217739a Don't auto forward ports in WSL Fixes #111375 a5bda3ee95 support later node for building f81e91d1c9 Merge pull request #111363 from microsoft/joh/playwright cb8259c7b7 Fix forwarded ports restore race e5111fc439 Only show "Not Forwarded" when auto forward is disabled Part of microsoft/vscode-remote-release#4021 58fe1b9dfa Add badge back to ports view Part of microsoft/vscode-remote-release#4021 3018240290 add user data init markers 047063458b Merge branch 'master' into joh/playwright b2b5647451 disable two comparer test that fail in latest safari, https://github.com/microsoft/vscode/issues/111368 fyi @bpasero 6a974d536b Change port language to "forwarded" and add icon Part of microsoft/vscode-remote-release#4021 b269cd9464 Add open pull request query 2d4ec09c1d add yarn lock file 9ee2a1ee1e 🆙 update playwright 3c3ed7fb58 Fix #111351 b01183bda2 Add extension source to forwarded ports Part of microsoft/vscode-remote-release#4021 2f8f00d622 add dropDownButton-icon description 1aba2b87c6 fix unnecessary import 8648658c44 use codicon for openEditorWith picker a6a53198f6 make viewPaneContainer twisties themable 32a18e3f5b add Codicon.dropDownButton 20b649729e button: use CSSIcon 75c71b49cc Fix #107152 6692bf17e8 find completion item color in detail and at the start/end of documentation, fixes https://github.com/microsoft/vscode/issues/109794 d9c33ab941 Fix port nofication cooldown c13542b7ca Remove heading for forwarded ports Part of microsoft/vscode-remote-release#4021 ebaf0a2ef0 read line preview when having symbol results, https://github.com/microsoft/vscode/issues/109523 dcf4cd2a50 Improve tunnelFactory doc and remove an escaping undefined 8ba0fd356e IEnvironmentVariableInfo: Use ThemeIcon b4912314fc move file decoration API to stable, https://github.com/microsoft/vscode/issues/54938 38a200c746 💄 c6be304059 Ignore flush errors during dispose since the underlying socket might be already closed 2d2a9e7527 Prevent unwanted concatenation of "null" to feedback URL (#111325) 4031280b29 Go to symbol in editor, open to side should reset scroll position in original editor (fix #111346) 5e6a2779f6 add try/catch for #111177 d49955575e 💄 relative pattern a5e20f89e4 💄 imports 392b6a94e0 perf - remove redundant performance usages d547170675 sandbox - move some changes from PR over to master 0a80aacc7b chore: update cache 764620efae fix: c++ exception in keytar module 5f569de4cd more removal of non-null 0921f711c3 Add GettingStartedService/Registry and initial getting started UI (#111175) ef03adf3a0 notebook editor widget always creates list in ctor. 3f0ada11fd core action active editor context should always have a view model. f24f7be7f0 less non-null operator in notebookEditorWidget 76882e4eb4 avoid memory leak of large text buffer from notebook cell text model. 2c20676f5c update distro (and hopefully unstuck builds) 2ecb47d4ec Use ThemeIcon & IconRegistry for custom icons c59ddc6a1f update distro cad45e538a Add `ProtocolMessageType.ReplayRequest` such that missing messages can be requested again 6edf58b9ae Avoid layer breaker (using `process` from `/browser/`) 3cd515d33e support installing web preferred extensions on web server af52f2cb8c `TextModel` should not dispose its `TextBuffer` 8dce3899da avoid unnecessary deepclone 5b243ab54b don't leak env vars into process.env; fixes #83187 b51a171a75 Update codiconscbe2a17f29
e2c9d1a7a3 Avoid using `innerHTML` (#108400) d7bdbe118e Allow running `yarn tsec-compile-check` also on Windows 84cf12f40b Add trusted types policies where `.innerHTML` needs to be used (#108400) 89c255a523 generate icon-css from theme.comon.IconRegistry 71462d03fe Fixes #111309 0ab259ff27 remove unsued code, fyi @roblourens, https://github.com/microsoft/vscode/issues/106741 37e9cceddc Enable sandbox, contextIsolation and vscode-file for process explorer and issue reporter (#111304) 545332f793 explorer: polish progress e287b8c9d3 explorer: hook in cancellation bef58ff84a forgot! 5cb2ee7b8b confirmed extension -> user trusted extension cab737e707 Make `extensionKind: ['ui', 'web', 'workspace']` pick the web worker extension host if possible b909e20513 progress: Increment by percentage points since progress API expects that 5a0ab56492 use native performance.mark when avialable e3e2837476 Bring Running Extensions to the web aa91d04552 add cancellation token to working copy service and hook it up with file operation participants a500715422 fix terrapin order a59aa579b6 fix debug toolbar colors 37274abda9 update distro 043c17ef7d update azure cosmos 🤷 d387fa978a Extract `AbstractRuntimeExtensionsEditor` to separate file 97f01b33e9 Move profiling related state down from `AbstractRuntimeExtensionsEditor` ba867135c5 Extract `AbstractRuntimeExtensionsEditor` 97a896091d remove startupPerf experiement, https://github.com/microsoft/vscode-internalbacklog/issues/1620 a8b6afefab process explorer - prevent process loops d189ecf936 issues - check for sender being destroyed before reply cda7b564e8 fixes #111191 182fe687b7 #111291 fix tests d63fee4308 Fix #111291 2864ebf134 Do not include iteration plans into the open issues ad8b6baef6 Extract `SaveExtensionHostProfileAction` to a separate file 6dc1a9540c "undo delete" operation recreates file contents when intital create had contents, fixes https://github.com/microsoft/vscode/issues/111162 72f4a2a7de Fixed $REPOS macro 897d2ec9a4 Merge remote-tracking branch 'origin/master' 3de0ea500a Merge branch 'joao/snap-arm' a15493cf90 Extract `DebugExtensionHostAction` to its own file 3ceea17846 npm: use project dir when using npm 84ce131781 Emoji characters in col 40 of an empty file causes crash (fix #111235) bb60e21a36 fix esrp for arm64 799e72cc2f Add tunnel creation options to web api 221a5570b6 Fixing how escape key works in listWidget (#110760) 7bbf45c14e env - only show one notifications not two (fix #111246) ce6f5e0f8f Make ports view flat when there're only forwarded ports Part of microsoft/vscode-remote-release#4021 6e631518ab Extract `ReportExtensionIssueAction` to a separate file fb54cd1cd7 Move inline actions when ports view is in the panel Part of microsoft/vscode-remote-release#4021 9abd43315c Manually release reference to piece tree when disposing (#107999) 48f4109f3d unify win32 build templates e6d2bd326d fix darwin build 97a7e63de8 also check cancellation token in outer perform function, https://github.com/microsoft/vscode/issues/111281 7b1da3a3d9 add IBulkEditOptions#token, https://github.com/microsoft/vscode/issues/111281 927290270a build: - ENABLE_TERRAPIN env - .build/terrapin cache flag - fix alpine cache - enable web cache 96b2c670d7 debt - extensions path is always defined ffec932655 add timeout to terrapin step 236298851a 💄 use linked list instead of array-remove gymnastics, fyi @bpasero 2ea9ecd6da increate file participant default time to 1 minute, show notification progress which allows for cancellation, https://github.com/microsoft/vscode/issues/111208 00eea33b23 More cleanup for armhfp and aarch64 rpm hardcoded dependencies (#111253) 41ef01de56 Fix #111212 1460908e18 bootstrap - move portable mode into bootstrap-node 2433e29383 sandbox - use IPC communication to read bundles ec5da2bdc1 build: rebuild keytar for arm64 c6e908997b jsdoc 💄 for relative pattern f37ca74411 Merge pull request #111269 from dsanders11/patch-1 614a865d1d Fix error message 3898e2ced3 Update extension install button to match default button style 8c9dfcbcb4 fix: appName in upload-vscode-configuration task 093acbdcbf timeline icons: use codicon registry for now 5a04894296 update distro 357fc9d16b Use codicons instead of string literals 0728b59411 fix: upload-vscode-configuration task for macOS f645a8d8c8 Link to ThemeIcon id reference 6a41811e10 Merge pull request #111183 from microsoft/aeschli/themableDebugIcons 3cfc3ac372 remove duplicate 'codicon' class (for #111240) 668b1d2439 explorer file operations: show progress 24e9b29b39 wording for output show more. fd15b93261 remove layer breaker 40a81495f2 fix: removed plugin helper entitlement 07bd0e3c35 💄 23e7e2fef0 showNotebookDocument. 160baa3b8d 💄 f9aa23fb6c relative pattern - update JSDoc comment 2e8bbdb41e api - test relative pattern with URI 2be5cc1845 #107999 Use disposable store and add onWillDispose listener 562d9451bc Fix #109114 66cb21b0b1 Fix #107999 5987e40765 Add vscode.Uri to types for vscode.RelativePattern's base parameter (#111155) c37ffd83ba fixes #111240 bd40e2555b remove TS on-type-rename feature, https://github.com/microsoft/vscode/issues/109923, fyi @mjbvz a5344096a2 raceTimeout test failed (fix #111233) 950c942b7c TunnelCreationInformation -> TunnelCreationOptions Fixes #110795 c0ecf176e7 Move ports view into the panel Part of microsoft/vscode-remote-release#4021 17e9e4ca1a Merge branch 'joao/retry-yarn' c4b7d10912 Use property bag for tunnel creation elevation Fixes #110795 e052c8e045 move down common icons 197f1341e6 explorerService: consolidate bulkFileService apply in one location 2a8ee68eaa #110721 pass action runner afce5c425d Add simple check for task dependency cycles Fixes #111186 cf4f2fa6c8 #11123 more fixes ac21b369b3 Merge branch 'master' into aeschli/themableDebugIcons c2d3d7f857 bump distro 8df4bc17da Merge .nativeignore and .moduleignore. Fixes #111220 fed34f982e startup util fixes 95e32fc67e update cache salt ff0785571f explorer: limit undo file content to 5mb a4e4e7ede3 Merge pull request #111013 from microsoft/isidor/doNotUseTrashFlag b5861b0330 update the monaco.d.ts 4563ba1f94 add start function to explicitly start performance observer b7851bfc80 :chore: bump distro 050963b8d1 missing terrapin usage ad3adfa28e retry yarn install 900e4474e9 missing terrapin usage 63efefb897 Merge pull request #111182 from microsoft/sandy081/notifications/dropdown 1ff7e57724 Merge branch 'master' into sandy081/notifications/dropdown 875ad7bdd7 Fix #111168 7e4f90277d run prettier over yml files 9a657db088 add tiny util to allow performance mark collection (via perf_hooks) independent of amd or commonjs usage 384d7b5e9e implement review comments a327c55c85 Merge branch 'master' into aeschli/themableDebugIcons 4ddf7bc0a7 Fix null characters showing in forwarded ports d970e263c7 more fixes for #111221 08d9b15245 fix dropdown position a486099d30 fixes #111221 723ee37c02 bootstrap - expose preload process to base lib d2365da65c rename doNotUseTrash to skipTrashBin 4d58b56772 Merge branch 'master' into isidor/doNotUseTrashFlag 0ec40638a8 Merge pull request #111042 from microsoft/isidorn/bulkFileEditsMaxSize 41025928ad bootstrap - fix more compile errors ae64039e43 Move `runtimeExtensionsInput` to `/common/` de85ef3a20 Fix hardcoded rpm dependencies for armv7hl and aarch64 (#111198) e8ba7e51ee bootstrap - fix compile errors 6038823879 add doc 2efde187ac HTML Semantic Tokens test failures. Fixes #111214 44281ba1d5 do not support secondary option on menu ff281d39f3 fix - pass the action runner 155b218dcf web - home indicator 💄 2046205637 debt - fix layer break with dependency to v8-inspect-profiler 4aae851063 Update Codicons: Add 'circle-large-outline' and 'circle-large-filled'7ddcbfb5f4
abf3964921 Updating Codicons: Add 'pass-filled' https://github.com/microsoft/vscode-codicons/ c3e1f0e02a re #102503. allow open notebook on the side. 9ce365f085 chore: bump distro 0b7158b190 💄 e66547a1d9 ensure the editor has enough top padding when there is decoration ::after: { top } 0baf6bb9cc chore: update to electron 11 (#110759) 10d92e5efa Prompt user with info about terminal config, add settings search by @id, and add sendToShell setting (#110987) 6f87c1cf7f Removed "duplicate" label 8e76838da5 Tweaked endgame notebook, added my endgame notebook 2a1c8bbaf2 re #108464. 1732cb9540 DAP: add support for conditional exceptions 4c55c7264f Revert "Fix #58600, Format Emmet package.json (#110891)" 40a902c9cf Multiline markdownEnumDescription should not break split json settings editor Fix #110840 a7b1267006 both custom and native hover showing (#111178) 542de8a8d7 Fix bug where tasks.json tasks aren't resolved eecbbcd3e3 fixes #110720 34b0cedeb7 fixes #108073 ef5a912876 fixes #109097 0223a22d87 externalize debug icons 535943628c revert a2ca2bbb1c revert onCancel 5e82d27fa7 support menu with prompt choices a85b3391ef Consider to remove migrateFromOldCachedViewContainersValue (fix #109726) 6c415c2486 Merge branch 'joao/terrapin' ea989da383 Feedback from resolveTreeItem API proposal review Part of #100741 21a42246d3 fix compile 4e1eff7083 web - turn the home indicator into a menu f19b19018c Automatic port forwarding polish Part of microsoft/vscode-remote-release#4021 e9fc5e147d Fixes microsoft/monaco-editor#2192 9a07d50f52 Delegate to the command service as a fallback (microsoft/monaco-editor#2195) 951509368c Add terminal hack for task line data back in Fixes #105159 93534b15da fixes #104793 12983c8175 Merge remote-tracking branch 'origin/master' 93f8adf263 💄 07d680b7c8 semantic highligting: deprecate member, add method. Fixes microsoft/language-server-protocol#1087 e81eb57671 Merge branch 'master' into pr/107705 ee6e905a8a cache OpenURLOptions in ExtensionUrlBootstrapHandler (#110725) eaf5eaa29f Allow name to be updated on extension forwarded ports Fixes microsoft/vscode-remote-release#4028 4b6b2bc6c2 update cache salt 3a37613eb5 Automatically forward candidate ports Part of microsoft/vscode-remote-release#4021 ab6878688f fix terrapin usage d632381e71 Add running process info to tunnels Part of microsoft/vscode-remote-release#4021 1436b523d4 [themes] Generate Color Theme From Current Settings doesn't have all colors. Fixes #111147 0a78fe165a Merge pull request #111110 from chenjigeng/master 6026ab576d fix #109104, #105884. 986e1248f6 bump distro 4ae26a1563 Update milestone 52098eaeb0 env - tweak shell resolve experience on startup eae037b391 Fixed Hover style incorrect when writing javascript in HTML fb80c0e44a Merge pull request #107126 from Timmmm/atomic_tabs 88856f1a1c Simplify changes from #108193 a194746aa3 auto attach: allow temporarily disabling 45ec698b12 Avoid walking whitespace twice when going left & small stylistic changes f1cfe2d3a6 Update CodeActionOnSaveParticipant (#108193) 2b75c3d5ac updated javascript for in snippet (#111062) 9195c9ab14 Expose TS server tracing (#110534) 06be9f4029 testing: tests and speed improvements 3880463037 Temporarily only warn on duplicate scoped context 93e7dda5a1 Error if a new ScopedContextKeyService conflicts with an existing ScopedContextKeyService (#110363) c9d89dd5ce `editor.atomicSoftTabs` can be a simple editor option 25e8ca8e18 Merge remote-tracking branch 'origin/master' into pr/Timmmm/107126 b2bd3540b0 Merge pull request #108448 from xndcn/patch-1 7265dfb6d7 testing: smarter change event 87b8061711 Merge pull request #110917 from dsanders11/patch-2 0ffe32409d Don't show complete command arguments in the native tooltips 786eca5cd6 Merge branch 'master' into patch-2 a0b7c2310f support dropdown actions in notifications cbeaf4fc55 Merge pull request #108379 from KapitanOczywisty/patch-2 b2b3b015d5 Sort line decorations 796a38f930 Merge remote-tracking branch 'origin/master' into pr/KapitanOczywisty/108379 f25f1abfaf give the option completely to notebook extension for now. d5a74a912b add trusted status bar item. 6b19da7102 update execution button when trusted notebook metadata changes. 1b3b40265b trusted notebook metadata 4d4f3660a0 opacity for notebook cell status 33c058d042 fix mouse click on text status item d23c882470 use status bar item for execute cell placeholder fc98345ba1 Extract output container renderer efea77ab7c move cell output element to its own module da00706deb cellDnd 57ca27e5f5 merge cell action view 8cf97fefd9 trust notebook prep 4b5dc2fcbc WorkspaceFileEditOptions add maxSize d1280418d7 testing: initial api implementation ff1887be3e Preserve per-window environment variables between workspace changes (fix #108571) 7d1cd1ff33 Fixes #99313 690d0e33c1 window - cleanup reload() method 1568c0ca45 🆙 distro fb277edc0f env - take window configuration into account when resolving shellEnv 542a82754c yarn watch: save errors in separate files, make error regex multiline aware 1273299f3d 💄 bootstrap-window 6f3fcd2ce0 env - move shell env into bootstrap-window and let user env win over shell env 69de6464ce explorer: pass the folder flag when deleting directories fe65b26426 perf - add ellapsedWaitForShellEnv to measure blocked time on startup 5f8aa18104 Merge commit 'a36c68b9ec3d6a0aca9799d7a10be741a6658a51' into joao/terrapin bffd7a6ad8 Fix #111014 185212db53 Revisit explicit use of ConfigurationTarget.USER when updating config (#109373) 7207ee201f env - also surface shell env resolve errors to users 8a6fea66c0 Fixes #107636 c8e59100c4 Validate line numbers bb7b7dc7f2 Fix doc comment for CustomExecution api Fixes #110981 d84b5eb2da bulkFileEdits: do not use file trash flag 936048e028 🆙 distro a81ea8c4fa fix tests 9103955a6d [themes] wait applying settings until user data initialization is completed. Fixes #111009 6fdc79d81a env - set timeout back to 10s but show warning when it takes long 6541e52b5b icons: remote polish c89f783319 Fix installing forever bug in server acfd724aac Pick up latest TS 4.2 for building VS Code caf01baa45 Copy createSettingMatchRegExp locally to fix cycle b4c0cfb513 Better note current version in TS version UI 67b0e2d72d Pick up TS 4.1 final release ea4d99921c update distro 1dcbd67f00 Load `applicationinsights` lazily 5d75857c59 Update marked cgmanifest entry 59428623f9 Cancel encodedSemanticClassifications-full on resource change c833899a84 adds @features: settings search type and dropdown option to Configure Terminal Settings (#110874) ffacef4727 Fix #58600, Format Emmet package.json (#110891) 8b720d6740 chore: bump keytar@7.2.0 (#110977) f0ed8aa2e9 named codicons for views (for #92791) 5ebe7eb5f6 fix #110750. 195779a054 Fix #110870 2fb9c3d5ce Fix #110702 692e61eda1 Fix #110702 145c6e5beb #110905 also optimise for builtin extensions arg 3946a0a314 fix another variation of the "palette" typo... d72f3fba3b Move LoaderStats down to `/base/` 508ef0928c Better loader configuration for nodejs processes d99a9ade8a Update to latest loader a245552aa9 update distro 5876a5e4ae Merge pull request #110930 from microsoft/joh/undoOpts 83246704d4 update distro b0d577c1b7 update doc 22895e9856 Introduce a server method to check if extensions are ready on server 835ce347fe bump distro 76e1b21f4f fixes #110800 624aca5bf5 Merge pull request #110855 from microsoft/joh/pureoutput 56c3caa680 fix https://github.com/microsoft/vscode/issues/110666 4a1cea9306 fix suggest explain mode for complex labels 3665005621 add undo options (undo group id, isUndoing) to working copy service and bulk edit logic 37f44b2e30 Merge pull request #109511 from chanmaoooo/deleteWordEntire 8374d6a4c7 Detect ports to forward more often Part of microsoft/vscode-remote-release#4021 cf3194d184 Add tests and improve the implementation 71fce013c9 Weird on-type-rename-decoration. Fixes #110878 06bf8e6539 editors - update readonly options when file providers change (fix #110854) 2f05337db0 Merge commit 'a36c68b9ec3d6a0aca9799d7a10be741a6658a51' into joao/snap-arm 990ca74d22 Docs for FileSystemWatcher limitations (#110858) 23a826ff3c more jsdoc for #54938 eb6356cfd7 debt - properly implement interface 47eb468acb sandbox - fix process in sandboxed environment (allow to run on Windows) d04f3178dc proper name for register function: registerFileDecorationProvider, #54938 710c859af0 Use label for "Follow link" command's tooltip a36c68b9ec Fix #110905 c11ef72380 Merge branch 'master' into patch-3 a89864b295 fix tests 268091616c Merge branch 'master' into patch-3 b1bc453c55 Fix notebook focus treatment in HC a5c190e1ad fix #110894 7077e069cf 💄 1d42a1c1c3 debounce editor blur focus state update. 113e0428f6 Fix markdown cell focus treatment 3598f9714d Add new codespaces extension id to allow list ab4cab8ac5 rename to `DeleteInsideWord`, remove keybinding ddff206d37 Simplifications: substitute constant arguments 59fa30c069 Scope toolbar visibility to when notebook is in focus (refs #110883) 36a6f53480 Make notebook cell toolbar appear when not hovering over notebook (refs #110883) 334ede72c6 Fixes #97906: Do not classify user installed extensions as built-in extensions d265071a78 Merge branch 'master' into joao/snap-arm 4f61f6d59e damn builds 7e0e697dc8 nbdiff. add menu to disposable store. 80169ca843 leaking disposables in notebook diff editor. 5ac643def7 re #109549. Reveal the first change in notebook diff editor on open. c983b2ae4b explorer actions: use bulk edit service 21c0490036 explorerService: add hasViewFocus and undoRedoSource 49a1f40890 update my-work notebook f4b9edc587 take local value when merging with conflicts 7dbdcf19a8 Merge branch 'master' into joao/snap-arm 8f1f1fda1b what the ad6f4faafb use better name for async markdown rendering, https://github.com/microsoft/vscode/issues/67806 f5a7eb3848 markdown renderer listens to img load and sends resize events, https://github.com/microsoft/vscode/issues/67806 cacb0c90d9 Add `UndoRedoSource` as a means to mark and retrieve undo/redo elements based on their source 9e704c93be Merge pull request #110867 from microsoft/isidorn/bulkEditServiceSupportFolder 63f04d87da bulkEditService: support folder creation 25a5576bbe improve browser extensions view 5cca5c598c empty commit cbfd4d5a9f fix snapcraft x64 6d439732d7 Reduce diff 2a499549ce add deleteWordEntire command 0718c3415f fix test 4ef843ec02 Merge pull request #97203 from bzarco/launch-multi-root-args 54a9df4857 debug console: increase maring right of count badge 78908e7eb4 bump distro 8513f398c4 command for open external 02ecc884d7 enable web extensions in web + server 671f169516 #100415 💄 ff468f6536 #100415 have fixed height only for initial empty installed view 8d25d42560 Merge pull request #110856 from microsoft/isidorn/addCopyOperation 28d71bdbab fix snap target-arch 11644ab3f8 Merge branch 'master' into joh/pureoutput 20d2857142 fix wrong file decoration check 74cefb3f13 bulkEdits: add copy to WorkspaceFileEditOptions 93a0ad81c3 Merge branch 'master' into launch-multi-root-args ca20be531e simplify ITransformedDisplayOutputDto type 3d708b3c64 #100415 show installed extensions view always 7ec1a6899c remove transformXYZOutput 5dd81b4077 move orderedMimeTypes and pickedMimeTypeIndex out of the domain model into the UX (its sole user) 3d013dc76f move git rename to command palette 363534db96 Fix #100415 f6f12c1bcf linux build: fix step condition 11d9d4da8f fix compile error edf43e529a build snap packages for linux arm 12b808cf08 make event optional, event naming, relax badge length a little, https://github.com/microsoft/vscode/issues/54938 f9c3f0dda2 Codicons in prompt (#96430) a34cad5c6b Codicons in prompt (#96430) 72defdc77c Support greater than and less than 896848239d fix typos: pallete -> palette !!! b80117cc34 web - enable dnd to download in pwa (fix #83517) f11635ef11 🆙 distro 23ed0649cb storage - remove deprecated methods (fix #109967) d21a51c233 re #109549. undo redo should edit markdown cell. 0109e4d504 fix #110826. e7ce16ceb0 Preserve old showEmmetcommands ID #58600 33e7e030d2 Move Show Emmet Commands command to extension #58600 9641ad2253 Don't use local server for signin in remote scenarios, fixes #104628 f3db091486 re #109549. hook notebook cell language picker into Change Language Mode. 9ecb7e4039 re #109549. click on status bar focus the editor 11341a0d37 Merge pull request #109987 from lf-/patch-3 e0eb2e6e75 Fixes #110468 9fbf87e38a Move management of `inDiffEditor` to the other editor context keys ba5371a252 Render "Extension" in Source column when the keybinding comes from a user installed extension (fixes #110653) 596a96ec7a Add `ResolvedKeybindingItem.isBuiltinExtension` 22b4c45bc1 update distro 58be98a0aa `native-keymap@2.2.1` 8a11346573 re #110581. 3184dca0bc cli server: add OpenExternalCommandPipeArgs 965c8c4cfd chore: bump distro fb6a2a3258 Bump vscode-ripgrep Now has pcre2 in arm linux build 82b485f805 chore: bump keytar@7.1.0 (#110815) 8edc150fe7 Try resolving URIs immediately from the tunnelFactory Part of https://github.com/microsoft/vscode-remote-release/issues/4012 05606c1e09 reuse terminals only for unchanged config; fixes #81345 87050c7fb5 re #109967. 0593b3eb54 Backup location can change in same session (fix #109019) d3057c54c8 remove console.time 7bf226cf50 add console log service to cli cd3caa2d7d provide a promise to wait until initialization is finished 221b8289c4 Merge pull request #110792 from microsoft/alex/native-keymap 8c93891a4d Minor renames ee4071ccbe Simplify handling of `diffEditor.codeLens` f405a3dcde editors - stop trying to be smart about default editor options in `vscode.diff` command f9f2637f79 debt - onDidBeforeRun => onBeforeRun 9c4c195980 Make users save new file (#110330) 442b1d1b61 Move all tree view out of contrib Fixes #110374 c4d2181da6 Clone (#110333) 540cb21d92 Add an elevate parameter to tunnelFactory Part of #110795 171a21b631 Add doc to resolveTreeItem Part of #100741 0c2c8dd8b8 Inline allOf clauses for additionalProperties: false (fixes microsoft/vscode-remote-release#2967) 60c625e9f0 fixes #110768 f255e3e00e Merge pull request #110573 from microsoft/joh/tsQuickRename 28b16c26d8 Move usage of `native-keymap` to the main process 8b192ae90f Move `IKeyboardLayoutService` to `/platform/` d8e40aeedf fix tests on linux 1b7d1e21ca fix tests - dispose 793b679ebc adopt latest API 0cd3c4c994 fixes #110775 fd610cfa5f Merge branch 'master' into joh/tsQuickRename 8667e71704 #109019 remove dependency on backup location 6479a9c46a add node task to fix build breaks (#110762) b25867b709 Support --diff parameter with reading from stdin (fix #110426) 2feb009c8e Editors: consider to allow name/description for file based editors (fix #110738) d19c7c52fd fix #110740. c4f50933f7 Remove some unused issue reporter code c839f49d8d Inline DeferredPromise Noticed that this was imported from /test/. Not going to make it a nice async helper because this isn't generally a great pattern. It's used in SearchService right now sort of as part of a workaround for issues dealing with EH search providers. When we straighten that code out we'll be able to just delete this. Fix #110610 566917c00b 💄 0408c0010f use piece tree for size and line limit calculation. 6327e4b8da re #110581. adopt text truncation in text/plain. 09b47ace4a re #110581. truncate large simple text output. d878434d63 prevent keyup of action baritem without keydown fixes #110745 4fb3e8e6c1 set tabindex on submenu entry fixes #110765 9c3522ec80 Include experiment info in issue reporter data 274bf78da4 Merge pull request #110748 from microsoft/misolori/notebook-styles cabfaa63d0 Merge branch 'master' into misolori/notebook-styles 00fa5d3884 [typescript-language-features] Update importModuleSpecifierPreference values (#110536) 96949c76e5 Merge `IKeymapService` and `IKeyboardLayoutService` 8f32cbb1d6 Align `IKeyboardLayoutService` and `IKeymapService` c2f89b213a Move keyboard mapper instantiation to KeyboardLayoutService c0d53daa9e Emit `IKeyboardLayoutService.onDidChangeKeyboardLayout` only in case of a change 3224201b07 expose current flights on exp service 771f9f9a48 Update distro 744694ed31 Extract usage of `native-keymap` into IKeyboardLayoutService e7fe18ddf8 Update default styles and polish focus treatment cce8f8bc69 Fix #72878 6b85b9ff0e fixes Title: custom title zooms in #110716 fdd103cae2 Fix #100498 15353669a6 Merge branch 'master' into joh/tsQuickRename 8134d8c9e7 rename to OnTypeRenameRangeProvider. For #109923 0b8a242be0 surface latest jsbeatify settings. Fixes #84606. Fixes #79334 ec8e86a03e fixes #109603 for macOS web e62a2054a1 Merge pull request #108451 from justjosias/patch-1 ce864da274 fix showing remote extensions f663779523 Merge pull request #110572 from Wscats/patch-2 00525e9f7c Fixes #110603: Add `diffEditor.wordWrap` c704881abb Validate dynamic configurations only on launch 62e830be77 Git/SCM: Use vscode.open and vscode.diff for a better editor opening experience (#110733) da9a12b837 Fix #104055 9ba554073b debug: add unit tests for repl output count 11d835b65d debug hover polish the tip 97b9ca6028 debug console: respect element.count in aria label b39c9d3cc9 assign extension to menu actions 0454fdfcd7 fix tests cda2529387 debug: collapse identical lines in the debug console 876d1f09cc introduce new variable ${fileWorkspaceFolder}; fixes #84162 ea3b8da874 also quick rename type parameters, ignore declare only things e6bb245b6c use predefined constants f9224001d5 Merge branch 'master' into joh/tsQuickRename b04e9c8f9d 💄 generate command docs 504b891937 move commands to their locations (#110714) 8f9aeb83da fix invalid command converter behaviour 2b06004f0d 💄 402e7afde7 https -> http in port forwarding view 85714e1007 clamp suggest line height between 8 and 100, https://github.com/microsoft/vscode/issues/110078 e416cba1b3 fix https://github.com/microsoft/vscode/issues/110707 46ff33b6b6 Subpixel antialiasing in some setting item labels Fix #86336 b4f09c5de3 Change search.actionsPosition default, fix #107163 2f34433853 Tweak settings tree sizing Fix #109095 4618539da2 💄 af6843bacf Convert terminal ext api null args to undefined Fix #110253 0180ce8eac Bump distro for merge resolve 89a418cc43 Add vscode-regexpp to remote/package.json 5afc5cd160 search: intelligently normalize crlf in regex search 7dde16206f Merge pull request #110094 from olivercoad/conflicting-autoclose-pairs 5d2ae44c01 Small style changes d1d59f8b74 Fix #27716 5da5495a7f search: fix copy all containing extraneous crlf line endings fbaf7b1187 fix #110427. 7a1ee06e24 increase titlebar height for macos big sur (#110592) 7a5fa10646 Merge remote-tracking branch 'origin/master' into pr/olivercoad/110094 8c76afad6c Fixes #108160: Handle padding in mouse target computation 9d389f0364 Handle error case for candidate ports Part of microsoft/vscode-remote-release#2776 f2ea8849e4 Merge branch 'master' into patch-2 c6efea07b0 💄 c5e6489b3d fixes #110430 f3efe70c9a don't attempt to convert API types inside the renderer, break up mainThread-api arguments (and plan future removal) addaad3f99 Don't have 'show local' button in open dialog when remote Fixes #110264 043d8e2086 #109019 make fileSystemBackupsHome updatable 19c93615dd Properly call dispose on extension created tunnels Part of microsoft/vscode-remote-release#3961 0ec4ce387d Fix #110574 04be17a373 Fix #45244 17813ce44e Open command options are not mixed-in in the right order eea8648466 Use vscode.open in NPM scripts view Part of #110497 a9837acc6e Optimize code readability b851bf9ca0 Merge branch 'master' into joh/tsQuickRename 2ac7284762 add api argument stubs for strings and numbers 5c1789667c debug: make exception widget accessible 63ac48bf6d debt - move api command things into extHostCommand so that they can be contributed from anywhere 01dd9f0307 💄 71e24bc99b Fix #39543 70061a8b22 modernize vscode.resolveNotebookContentProviders-command, fyi @rebornix didn't find a unit-test for this! 443c0db7c9 modernize vscode.executeColorPresentationProvider-command e25b8819f7 modernize vscode.executeCodeActionProvider-command f3439ece09 modernize vscode.executeCodeLensProvider-command 94a57406aa deprecate old api command story 74703883e3 modernize vscode.executeSignatureHelpProvider-command 883936de2e modernize vscode.executeCompletionItemProvider-command d310cba731 Handle conflicting multi-char auto closing pairs (fixes #72177) 4e4f02f632 Allow ms-vscode.github-richnav to access proposed API c5ee747748 Merge pull request #110541 from loganrosen/ember-cli 29e7305d9d progress bar: report progress 39bea31ae8 Update classifier.json 1f11563975 debt - move contrib only service to contrib (output) 5b5e79558a debt - lift checkbox to workbench 76a8ea640e Add undefined to TaskProcessEndedDTO.exitCode (#110508) 0998e4ccbb respect user settings when creating terminals; fixes #109111 5d7ca3a879 debug hover: show tip to show language hover 45ce70792d fix tests b5cd02f178 #106348 Adopt codicon for npm view 3ee6fc3f68 Fix showing newly enabled extension in enabled section 3d8ad7d74e tweak setting for #5312, fyi @usernamehw 336b58c8a2 Fix #106348 f1560e9a19 Merge pull request #110494 from usernamehw/word_suggestion_any_language b07d19a768 storage - remove store2 (#109967) 8f82b02a4c Merge pull request #109842 from microsoft/joh/98228 20b49a4a9c storage - more target adoption (#109967) d9893b5d64 💄 editor memento 38f55ece05 environment - add OS info (#106528) 710da39135 Mark .ember-cli as jsonc instead of json ee46c1f89e Adopt Action2 for more search editor commands to fix #110407 bf6776b980 fix #87730. 293af2074e handle last line of copying lines. 63e42d414b re #97497. f47b588736 💄 629cf65721 fix #97497. 591039e34c debug: fix compound integrated terminal launches breaking cb7297a10a 💄 2b900dcf11 fix #110503. 4358d8bf30 rename 'dirSep' to 'pathSeparator' b155f9757a Update seti df143f19b7 no double spread 8d73ce7ed2 💄 no more homemade iteration 2fdc607f19 Merge pull request #110273 from microsoft/connor4312/fix-search-freeze-on-long-lines 217ad5ac66 Typo: Uncommited → Uncommitted 7f6ea40bc2 terminal: typeahead state management for verified lines 4c46272797 Stores the actual config object in the cache e96cfbccbc 💄 576d8af2df Changes to use TernarySearchTree 8a5605bd21 Splits out loop & uses regex to improve perf Addresses PR feedback d21cbabe6b Adds default context caching for objects Clears all cached config context values for objects 165e49bfe8 use rename info instead of highlight info ce7bd67d46 explore on-type-rename for TypeScript 16ffcb50fa adopt latest references viewlet, https://github.com/microsoft/vscode/issues/85636 611f28952f trustedDomains: loosen restrictions on what a * can be fixes #110501 b0ce55403a Merge pull request #105887 from nrayburn-tech/dirSep edaf854a74 Remove "files.autoSaveDelay" from Commonly Used 753a1c095a Adjust debug toolbar shadow (fixes #110422) 561501492a Remove unneeded constructor from TreeItem2 0286c4f793 Add missing bit of TreeItemLabel API 4dae492ac7 Merge pull request #110428 from microsoft/connor4312/disallow-nested-config-resolver-keys 31b0068af0 Make TaskProcessEndEvent's exitCode reflect the truth Fixes #110185 630e706ad2 Add open context to certain commands (#110475) e526f16131 Prioritize configured tasks in `getTask` Fixes #109939 2e15bd0592 Add a setting to include word based suggestions regardless of the language 7b5849b123 Fix build ea5e971611 Tolerate strings again (fixes #110432) b785be4c73 Finalize TreeItemLabel API Fixes #61579 5758f6fcd4 fix cmd + down in open editors view fa856cf019 #67603 Add new extensions automatically to the list 7bfc7edadb open editors: introduce sorting 37103467dc dispose list elements on list dispose dc74330d39 fixes #110429 690db82ef2 tweak fix for #29210 and thereby fix https://github.com/microsoft/vscode/issues/106090 52e9e02e0a Fixes #110141: Do not push undo stack elements for a no-op EOL change 549da12a6d fixes #104061 717a730f3a window - fix undefined access e4da961570 Merge pull request #110455 from microsoft/joh/open 94d3497dac 💄 a9c04968f3 Merge pull request #110423 from dsanders11/patch-1 1cfb74c330 windows restore - add a new setting choice to restore the previous session even when opening a file or folder cc9616baf8 use 'enablement' instead of 'preconditions' e275af7e79 render activation events as code fb0128c7ec Fix progress bit overflow bug (#110411) b321d3c364 Merge branch 'master' into joh/open 33a49a9c63 Fix #67603 02316b635d editors - fix listener leak (#110336) 050a123750 Fix F6 in extension page webviews 4da8e50404 Don't show users a notification if a save is cancelled (#110344) 17c29f0b99 Add support for web TS Server logging over postMessage afcfc97316 Fix method spelling 7c6994d1b5 Use toOpenedFilePath to ensure we don't ask TS server for projectInfo if a file is not open fb93010aa2 Make sure we use the same path normalizer in a few additional places in buffer sync 805aa7e8f4 Make ResourceMap treat the same file with different scheme as different 67817c33a1 fix #40713. bb8d5f1842 terminal: update typeahead tests 0ef0d2d65a fix #109765. 97664e1452 fix #74622. b2eca1fd4d Fix InMemoryDocument to support both OS line endings Co-authored-by: mjbvz <matb@microsoft.com> Co-authored-by: meganrogge <megan.rogge@microsoft.com> bd98013973 insert a 1 sec delay before using a newly created integr. terminal; a companion fix for #38578 56947b3a75 terminal: only start typeahead predictions after the first prediction for a line is valid 65c3fb0a08 [css] add ':' as trigger character. Fixes microsoft/vscode-css-languageservice#108 13669e6bbb fix https://github.com/microsoft/vscode/issues/110420 02f6319ca1 Fix autoSaveDelay missing from Commonly Used, add warnings for settings patterns d5febf9628 config: disallow nested config resolver keys fac5cc3a54 #102906 add tests df171cfcab #102906 tweak wording f086ee122c Set StorageTarget in auth service, #109967 dea609b7ba #102906 wording tweaks f1c6ce7c9e clarify effect of command enablement b3c2cc3a7f debug: fix integrated terminal not changing drive 0e708ea0f7 fix #90897. 776d80f470 Merge pull request #104997 from rotem-bar/jensui/102906 0d23be5d74 Merge branch 'master' into jensui/102906 a48ad3b1d8 clear find widget reveal timeout d55e884024 Merge pull request #110370 from jeanp413/fix-107104 166f7a4cb0 Merge branch 'master' into fix-107104 f066dfcda8 Fix #67905 4ef91c2e40 Fix #94416 593d3dd94d debug: normalize drive letter in loaded sources view f2ccceef3d fix #84772. 49d1396aeb update pattern and add to grammar 900bcb7632 Merge remote-tracking branch 'origin/master' into connor4312/fix-search-freeze-on-long-lines 3e797ae1aa Update drop shadows (refs #92301) a986b578a2 fix #106570 4d6c4ae0b7 insert a 1 sec delay before using a newly created terminal; fixes #38578 6a8fe0a8da let CommandsConverter actually convert commands, make sure "magic" commands handle uri components b794105cb6 Fix #90548 0bda02ba0d tweak throttle based on actual numbers 40558fc8e1 report `suggest.durations.json`-even only every 500th time 2b21aab9e2 fix #110410 8367f475e8 explorer: use EditorResourceAccessor 5bf6d0cabc fixes #65188 d7b84b8fd7 update monaco.d.ts e69d768e53 adopt feedback for #109923 776193fdc0 explorer: reveal diff editor ab7c9d605a fix reading store from config 740087a3e0 #109056 remove hack to use dialog service 61970cb6f3 preview - fix italic for description fb5e7bae09 do not remove from remote if key is not registered - compute unregistered keys from last sync state 86621ccdee do not remove key in cloud if it is not registered 87fd567da0 add commit characters to explain mode, https://github.com/microsoft/vscode/issues/110382 efef7c1d15 layout code lens content widget when adding commands, fixes https://github.com/microsoft/vscode/issues/110332 bcf2f23cef Can't save workspace locally when using remote extension. Fixes #109713 49342801cd [semantic highlighting] improve fallback scope for macro. Fixes #110150 14075af62e don't resolve code lens when typing, immediately resolve code lens after receiving them, fixes https://github.com/microsoft/vscode/issues/96783 49bd4e4b34 Merge branch 'master' into dirSep 82c65e753f Add Refresh context menu action to candidate ports Fixes microsoft/vscode-remote-release#2927 d4e1ae56ed fix alpine build 5e5ce9ec53 Better compacting of URLs in ports view 8dc55cf219 fix sandbox 8c8e2a888c debt - make dialog handlers a workbench core piece c58384b87b distro eba1343a10 cleanup linux alpine build b7cb5e2e1a Merge pull request #109643 from eltociear/patch-1 f27d73be72 fixes #110353 14140d2a19 Revert "Merge pull request #109049 from digeff/searchView/context/extensionPoints" 31c034604e remove old forUris, rename forUris2 to forUris, https://github.com/microsoft/vscode/issues/110241 a19b26ef69 Fixes #107104 7a322c44db Try to fix the build f5898a0e59 surround match in zero-width spaces to avoid clobbering 3f62d10652 Removes deprecated IDefaultLayout interfaces 35f9bac07d Disable markdown smart select tests #110365 0572704226 Make settingLayout patterns strict Fix #110129 7ba372c80c Fix tests f23e47b9a2 Extract getParentFlowToElement c8877809c9 Pass webview editors an explicit scoped context key service aab1c59227 Use UriIdentityService for #110241 a28b99d78b notebook: echo complete error object on preload function exception 49695de8a1 notebook: execute kernel preloads in series 2b9e62fcf0 Merge remote-tracking branch 'origin/master' into connor4312/fix-search-freeze-on-long-lines 00f32f9a26 make search editor ranges work for hidden text 046654ae65 make search editor ranges work for hidden text a856e60a0c Better support dragging and dropping with webview views 10514bf423 Fix webview scrollbar colors for firefox 2b820b4bff Hook custom editor backup cancellation into the extension layer 7a4e81a674 fix catastrophic backtracking when parsing markdown files (#109964) a1bb5ac207 Merge pull request #109049 from digeff/searchView/context/extensionPoints 9a08a10708 Support ctrl+v PS override on Firefox too 982bfc2334 Update decorations synchronously when the wrapping info changes 86f773db82 Merge remote-tracking branch 'origin/master' into searchView/context/extensionPoints 559f9b60d1 Applied feedback 809db2993b fixup! 63d15a97c7 Support character markup in mardown smart select (#110195) 4bfa0a0aca fix build db6fbd581a Merge branch 'master' into connor4312/fix-search-freeze-on-long-lines d2701267df Potential fix for microsoft/vscode-internalbacklog#1604 038835d88c Merge pull request #109551 from maldahleh/109255-support-detail-text-settings-dropdown 1ffb469a15 add no-drag to context view css in menu.ts fixes #110282 1ce5b5773e fix #105757. 3030d4f380 Remove registered color for selectBoxCustom detail 414c387375 fix #108950. 0dafeae79f 💄 636c588eda Refactor DialogService to use model and contributions (#109980) 57203b243d debug: add ability to close exception widget 92b9426701 Remove unused variable 014cca917e Merge branch 'master' into 109255-support-detail-text-settings-dropdown cb23c0892e quote powershell arguments properly; fixes #68151 5184dff52f terminal: fix typeahead edge case fcfc8531aa #110241 fix tests 96acd5f37f Merge pull request #108401 from turara:resolve-78733 3ef3247e85 Remove participants list from comment headers 140ce6130d adopt latest references viewlet extensions, https://github.com/microsoft/vscode/issues/85636 e7a598f648 Allow context view to align with anchor (#110277) 50416be1c6 #110241 Adopt TernarySearchTree.forUris2 00c4572909 Merge branch 'master' into resolve-78733 7065675056 Fix #109177 77154ae5c2 Merge pull request #110272 from microsoft/misolori/shadows 0a7f58fbf7 Merge branch 'master' into misolori/shadows 5fbd3b43bb Style terminal scroll bar on Firefox 3ab3514bd2 Force ctrl+v to not be sent to shell in Firefox 3d61a39074 fixes #103031 d34ba652f3 clarify explorer.enableDragAndDrop setting 02bd5f139b fix focus issue on list e4cbfba51b Don't change LANG vars containing 'euc' 09ab4faf90 💄 remove LinkedList#toArray which became obsolete with iterators d10b4cc81e polish when selecting config ab6a005750 Fix #86077 d26f927791 Merge pull request #110268 from microsoft/alex/diff-word-wrap 415955a5cd Allow word wrapping in diff editor cd395984ca Make inline lightbulb aware of wrapping of changed or deleted lines 982689e007 added GH PR extension to list of tracked repos 912e8f7e99 Merge pull request #110306 from microsoft/joh/wordBasedAll e8b69537cd fixes #40295 74b2510985 word based completion includes words from other files of same language ad88db1031 fixes #110304 76abce66de Merge branch 'pr/107958' ddefc990cd correct codicon size for code lens placeholders 62877b66d8 Merge branch 'master' into pr/107958 0e4b1fec5d Render char diffs in the wrapped deleted or change lines in the inline diff 13f9f73353 💄 1d18ebe47e Merge branch 'master' into pr/107074 ecfb8771e4 Merge remote-tracking branch 'origin/master' 6a2da6d725 💄 7200f73de2 Merge branch 'master' into pr/106368 77a57165e4 debt - race more minimal edits computation against 1sec timeout 2c1272b794 fixes #104945 64ef9869b6 Fix filtering on * for simple file dialog Fixes #110265 55fdf94d67 fix https://github.com/microsoft/vscode/issues/109776 cb63744475 Adopt TernarySearchTree#forUris2 (#110241) a56c7406d7 Fix issue where toggling between inline and side-by-side was forcing word wrap off 3f8e8a1733 Push view zones in the original editor when the original lines are wrapping in the inline diff case 438f610860 strict path casing in extension host profiler, https://github.com/microsoft/vscode/issues/110241 156d702f5a Diff editor: show path as description (fix #109224) d751b6bcd2 add IExtUri#ignorePathCasing, use forUris2 in decorations service, https://github.com/microsoft/vscode/issues/110241 f2a9b63c64 Do not show hover on icon label after click Fixes #110284 f5e9a01715 make default not ignore path casing, https://github.com/microsoft/vscode/issues/110241 3bf2afdc01 add TernarySearchTree#forUri2 which allow correct path casing handling, https://github.com/microsoft/vscode/issues/110241 21c84a4351 restore old case ignore behaviour unless explicitly set 9b0522f3dc scmViewPane: do not render whitespace in commit message input field (#107913) b3cc19b819 💄 use async-await for code lens provider logic c0c4ceed44 fixes #110290 351e6172e1 update code lens when editor gains focus, https://github.com/microsoft/vscode/issues/83363 0216c71896 Revert "Use editor base weight when contributing peek commands, fixes https://github.com/microsoft/vscode/issues/109727#issuecomment-720986472" 1357f6d494 editor preview - ensure simple file dialog opens pinned too 65f805d98e fix build 6c32ada9b5 show extension editor manage action always 2815e732f7 Fix refocusing clearing existing forcus for iframe based webviews 4247b296eb Including ` as part of foldEndPairCharacters (#110108) d04956f6a7 Switches the 'Fix all' quick fix provider to use resolveCodeAction (#107853) ffb8c08dd9 Enable IgnoreMenuShortcuts for iframe based webviews df7fdd6515 search: fix freezing ui on long lines c9bebe2cc9 Fix #98041 37a01430cc Tweak shadow colors 840bc2ef1c Set explicit StorageTarget for webviews 0efbfd9190 fix #108765. c067c9b947 Improve rendering of view zones with changed or deleted text (inline diff editor) 59b020a362 Merge pull request #110255 from microsoft/rzhao271/format-uri 8248e19817 Merge branch 'master' into rzhao271/format-uri 5ce31a6e8b fixes build break b473bc55de Clean up drop shadows 2f7f100e44 Render inline diff view zones in batch 701e6713f9 Merge pull request #110112 from microsoft/misolori/squiggles-bg-theme 93a7a07559 Do not store the original content in the diff information for inline diff margin actions 2b9ae05554 Merge branch 'master' into misolori/squiggles-bg-theme 51eb0901d4 add setting for code lens font family and size, https://github.com/microsoft/vscode/issues/16038 5e8f9cf1d2 💄 code lens fcef0e3db4 Use Array.flat() (#110189) 4e0c77f8aa Add `IViewModel.createLineBreaksComputer()` e300dfcdd2 terminal: allow excluding programs by name from typeahead b5f6a521e0 Fix vscode-emmet-helper issue #1 d29487617b update language e5530fc4f0 fix #105920. 62d39a7dba Adopt storagetarget in Exp services refs #109967 98a3c4fe64 reduce work when menu is not visible fixes #108712 ef6b438769 Fix #88703 a45abdbd1b Update seti 87d49a7b66 Fix #108300 226503ba0a Merge pull request #110213 from jeanp413/fix-110212 ea6ee515f1 Add color tokens for warning/info bg f1ebde547c fixes #109781 876af4ccfd no max width for welcome buttons 1c7d982b93 fixes #105201 Co-authored-by: rebornix <penn.lv@gmail.com> 6e6654a679 Fix #91534 f0580d497e Fix #101441 d6fb7989f5 Push view zones to accomodate equal but differently wrapped lines 1256b16ee1 Merge remote-tracking branch 'origin/master' 7509a0103e Fix #103941 91aa548b05 Merge branch 'master' into pr/104614 4ecf3f8f02 Merge remote-tracking branch 'origin/master' 98e0e93ae0 💄 61500a468c Fix #94289 c96f362934 Merge branch 'master' into pr/99324 f18700d036 Merge remote-tracking branch 'origin/master' 309cabdf51 💄 961cbd66b7 CLI help: consider to separate --file-uri and --folder-uri. Fixes #110206 978d39324a Merge branch 'master' into pr/104312 e7e38c161a Be aware of line mapping when rendering diff view zones and diff overview decorations 7e5609afa9 feat: implement Git: Push Tags command (#110096) e3754e6f8d group uninstall and install another version actions into same group 294406d7a1 Fix #110121 23579d815f [file icon theme] icon match the last word of folder name not the whole name. Fixes #110183 ec084a25bd 💄 df4524f713 Merge branch 'master' into pr/97525 86d848d8e7 💄 592fa5cdaf Merge branch 'master' into pr/97486 fd306e8cb4 Merge branch 'pr/97322' dd97a9d335 💄 d40499936f Merge pull request #108682 from Siegrift/enable-tsec-language-service-plugin 551db7ec94 Add new fileDirnameBasename variable Fixes #78316 8cfcd9a3fe Merge pull request #110178 from vfcp/master 2720a8022e Allow user tasks to run when no folder is open 66ea9c5ca1 Pass in actual editors a0031aa6ac Small refactorings 07f0bade37 remove duplicated context key expressions, fixes https://github.com/microsoft/vscode/issues/97381 5290baabac improve message when files is too large for formatting, fixes https://github.com/microsoft/vscode/issues/105986 8cebd10782 set line height for suggest details, fixes https://github.com/microsoft/vscode/issues/110172 3ed1d0050c Merge branch 'master' into enable-tsec-language-service-plugin 14767349ab window - some renames 💄 147f623629 Merge branch 'master' into pr/97322 4439de9a3b tweak setting name `editor.suggest.showInlineDetails`, #109690 7efc22cc85 git.publish: do not await notification resolution related to #109977 776541c380 Setting to Disable Split Editor on Drag and Drop (fix #71016) c73c0b30f2 💄 let -> const 35ff2c0df8 fixes #110012 85958bcecd fix https://github.com/microsoft/vscode/issues/97451 aede2434b0 fixes microsoft/vscode-remote-release#3180 5a534883c7 Fixes #110212 875c2ced66 Finalize FoldingRangeProvider.onDidChangeFoldingRanges. Fixes #108929 1fab0083f9 Renames 7ca4a47ba5 add vscode-test 4e24bef648 💄 54ba2bad67 Merge pull request #104923 from AE1020/scrollbar-paging abcc621872 Rename option to `scrollByPage` 3517c02303 files - stop checking for BOM before writing 7bfd7fb685 Keyboard shortcuts for switching focus between left & right sides of diff view (fix #95068) eb8c718e81 debt - fix compile errors in bootstrap files 3154dd4f69 editors - add workbench.editor.enablePreview to most commonly used settings 59a1893d6d Log number of loaded certificates (#91794) f9e19c9ad1 only hide outputs when output is transient. 148b85862a fix #89250. 9ad6e7edf9 Correct themeLabel in package.nls.json for "Tomorrow Night Blue" theme 7095ef144b Revert "Revert "Fix #99971"" a2963771d1 hover info should not be broken within word (#106885) 024df33553 feat: add setting for default stash message 109d9984c1 fix: commit template appears as default stash message 19c0c60064 feat: detect default stash message use commit message as default stash message if commit message box is populated 03c38e6702 Add more logging to github auth provider 1d5854f611 Unassign myself from the classifier 3338ff4e18 Fixes navigation commands for webviews 6e2aa0bfb7 clean up code and remove unused methods ce7e6d9978 Bump actions & fix #109699 153ba443d5 Use string.matchAll (#110074) b419f2f169 Adopt StorageTarget in searchEditorInput Ref #109967 5961799c53 Escape backslashes in issue reporter data, fixes #105494 be410d1a3d explain why we modify textarea input handler in firefox. fc07b2f170 add comments to clarify code 83f000df03 Merge pull request #106873 from belcherj/patch-1 cb044cec21 Merge remote-tracking branch 'origin/master' into pr/belcherj/106873 339681f631 Use excludive selectors for search editor contributions to fix #91453. cc @jrieken fca7107884 fix #105901. 35bad7021d disable submenus rendered as dropdowns (#109934) c8cfffe09f Add vscode-encrypt to nativeignore df9cf627b1 Merge pull request #110095 from microsoft/rzhao271/webgl-description 9d5dbc6a1a Bump vscode-ripgrep 9d0346ad2f Fix #107858 c91facce0a Add an action to remove recently used tasks Fixes #93403 8335fcc3fc debug: do not auto pick dynamic launch configs 779a171f9d Align configure task quick pick closer to terminal Part of https://github.com/microsoft/vscode/issues/93864 ad19579a44 Don't clear filter for Show All Tasks Fixes #97467 15afc78232 Fix exthosttree tests a1025c64c1 fixes #110077 9f2ce53867 debug: stop supporting enableBreakpointsFor 081632d225 debug: remove legacy adapterExecutableCommand e95c40c1e4 API proposal for revealing tree view when no elements Fixes #90005 ce4fb6e323 fixes #96264 0cc93f5c48 debug: split ConfigurationManager into ConfigurationManager and AdapterManager 6ce30f1dce remove deprecated debugAdapterExectuable debug proposed api f53678cb4b Update branch for sql grammar Fixes https://github.com/microsoft/vscode/issues/109251 85534c004c Only reset theme icon color in treeview once 4b0855f292 Improve the dynamic launch config UI f63d695254 Fallback to userhome when no "file" scheme folders open (#110066) 0302b84221 web - set version to 1.52.0-dev 63ce8b4732 fixes #92146 d03925a88c Merge branch 'master' into pr/95915 e380037a06 [themes] Use light theme for --disable-extensions. Fixes #97058 168ebd1e66 fixes #95599 256066f94c Fix preffered pm when pm can't be determined 57ec100886 fixes #40548 1593959b5e In case of multiple possible longest common substrings, try to give preference to the ones containing the most ammount of text 24b28f57be Always use `vscode.open` to open markdown links 7f7307b89a Fix command for renabling extensions when running with cli flag, fixes #94532 4059ff428f Allow cancelling GitHub sign in, fixes #109101 93d736db23 fix #93326. e026e9a77e Update JS/TS grammars 194068f693 adopt StorageTarget in SCM #109967 48ebbe9ffa Merge pull request #110038 from aasimkhan30/aasim/fix/checkboxOutline 663a049f0a Merge branch 'master' into aasim/fix/checkboxOutline 25c6703f39 debug: fix debugees blocking when writing stderr 024368a638 removed unnecessary important from outline-offset in checkbox c258fff193 Fix compile error 80a9ecff3e debug: cancel hover evaluate requests when hovering off dialog 451c2b61d3 Specify type of CodeLensProvider instead of using casts 9f4737fa3f Exclude definitions from js/ts references code lens d88ac6f164 Finalize the isWritableFileSystem API d54c3c67dc fix #74353 18902550f7 fix #70306. 11faf89369 added outline offset to checkbox to make focus visible. 05049f7fbb Add Definition list to Markdown Snippets (#110026) 8a7189599e Add color token for error bg 0440be9aa4 Fixes #110033 c2fafb10e3 fix #57197. a58d816580 Don't remove -l from tasks on Mac if setting is set Fixes #107563 5a73a68e1f Revert "Fix #99971" faf36c2f47 Fix #99971 fd951da3ae remote indicator 💄 736a46fc8b Merge remote-tracking branch 'origin/master' 49990bebe4 add git CommandErrorOutputTextDocumentContentProvider 2eb805ad75 Mention Inherit Env setting (fixes microsoft/vscode-remote-release#3030) cd95d90589 Use correct context key service in custom trees Fixes #99767 ec471da613 Merge branch 'master' into pr/95354 cd6466909b fixes #92034 e3ace1fe1f Merge branch 'master' into pr/94369 7b6561ff5b Merge remote-tracking branch 'origin/master' 08d271585d 💄 eb1cea5432 Merge branch 'master' into pr/94358 8fe4a348ec Remove focus when scrolling (#94280) 544c986e0a Added a warning before dropping a stash. (#94267) 5afaec5c21 Merge remote-tracking branch 'origin/master' 7328c3ccb0 Merge branch 'master' into pr/91838 a089e24fed fix typo 818d57db15 Better diff for deleted file in merge conflict. Fixes #88973 (#91245) 36e2868372 preview - pin an editor when a navigation starts to another editor (#109779) d6af4893ed Update grammars 1dbff8bdd1 Remote Host status bar entry has no max width (fix #107451) 47a956eb2e Fix #109023 9832b90fde explorer: Revisit explicit use of ConfigurationTarget.USER when updating config 520a050cd3 Add quotes to autoClosingPairs for make Fixes #89191 d43e45b796 updates 578d7381da fix #7989 b0a7c8496d IconLabel markdown title debt (#109914) 786f507696 Fix #107320 f021eee884 layout - write to correct config target (#109373) bfb73347bc Added a grooming delta notebook a69a01af9e Remove unnecessary argument (#109373) fa4f11cf16 fix stray console.log aaf17b5d9f Ignore dev container logs in url finder Fixes microsoft/vscode-remote-release#3953 ac2ca0b539 typescript - fix nls issue 1cbdea3da0 Revisit explicit use of ConfigurationTarget.USER when updating config. For #109373 a69f07abf0 Revisit use of ConfigurationTarget.User in tasks Part of #109373 22c2bad746 Merge pull request #109966 from microsoft/aeschli/remoteThemeFix 4f88f448a0 Adopt StorageTarget. For #109967 c486bbf493 editors - add a menu item to keep editors open 1082f3e58c Adopt storage target in tasks and remote explorer Part of #109967 a3658a2fee Merge branch 'master' into scrollbar-paging 1c0d056915 editors - some preview tweaks 19044c847c #109373 do not pass user target 92b6b9c80a storage - adopt more storage targets (#109967) 805ba83b59 Storage service error in shared process console (fix #109985) eae74f5125 Loc comment #100941 e57af55eaa Pick up latest TS nightly for building VS Code 4a54027a82 Disable rename after refactoring in interactive playground e6079bd127 fix #105614. 373ea1b969 Fix build 6eeaab8e5d Handle cancelled sign in when publishing to GitHub, fixes #96502 2e6d3bdf6c fix #27836. 0f623956c2 Show dialog when there are no trusted extensions for account, fixes #96359 5463322d19 Clear trusted extensions on sign out, fixes #96616 f4e49a5f3a php: revert break deindent behavior 6bbb17d318 terminal: unregister csi handler when not in use for performance 81a25a894c Rename implicit project settings and deprecate old ones ff7cc33236 Use objects.equals for comparing configuration objects 05fee0cf3d Extract implictProjectConfiguration class 64705a07dc Add two new setting for strict null and strict funtion in js/ts that are implicit projects c38a12c26c Quote jsconfig and tsconfig in setting 341124ff39 #109896 Remove IStorageKeysSyncRegistryService and introduce new service for syncing extensions storage 4a6a5ab1f8 Explicit fontLigatures description 05602b399f terminal: clear typeahead after timeout 8141dcf29a Extract adjustFoldingEnd 97db458fa4 Show closing ) while folding JS/TS 0608e3f5bd Pick up TS 4.1-rc for insiders a7cd9408a9 add comment 6d5736aa3c #109967 Adopt to new storage API c2dafddbae Add splitLines helper function (#109869) 73eb361f29 notebooks: expose scriptUrl global to renderers and kernels 4286c603d6 Remove unused variable bb8e52bca6 Update comments panel message text, fixes #91623 7183777033 fix: run to cursor with multiple paused sessions d11872b127 Fix comments panel focus, fixes #103466 b35ea7e5a0 fix #54829 08e556dc5d fix #109486 and #109489 f8a91e4210 Adopt IStorageService.store2 in terminal 320602f7b6 Fix #109860 660222bdec fix https://github.com/microsoft/vscode/issues/103818 267817cf46 debug: adopt storageService.store2 bc5c7923f8 Merge branch 'master' into aeschli/remoteThemeFix 7ae6a45879 adopt StorageTarget, https://github.com/microsoft/vscode/issues/109967 35026262bc storage - avoid Object.entries in platform 2c292d3af4 fix tests 92314d61a5 reverse the eye open/closed icons for hiding snippets 2db5a355bc storage - adopt some StorageTargets f5f4af6db3 Update C++ grammar 5e4c53cffc add another test for https://github.com/microsoft/vscode/issues/96545 c8d123ded5 Explorer: move off iterating over file changes 4b9e0bba6e Merge pull request #108964 from turara/fix-96545 3c33f50f39 Merge branch 'master' into aeschli/remoteThemeFix d0343e68c0 sequencer for set and reload theme operations 9db1b1492a Merge remote-tracking branch 'origin/master' c3b5f2bf1c cleanup for #89313 09829053d1 adopt storage changes in extension bisect fa61ee7caf fix flawed comparison, increase threshold ea84245395 Lint Sprüngli e3a79e9e44 [css/html/json] Randomize inspect ports to avoid conflicts 1b9cd42b9b remove unused import 0382313947 Merge branch 'master' into pr/89313 4cd46e32b2 Merge remote-tracking branch 'origin/master' e5285908ca 💄 f923ac98e9 storage - document enum better 90aa30e660 Merge branch 'master' into pr/89249 fe458b4aa2 Merge remote-tracking branch 'origin/master' 6029cd4e3a Merge branch 'refs/heads/pr/88772' 163bd1dcb3 storage - rename storage change event e216a598d3 don't presist little size changes ea14fc2c2f add command to reset suggest widget sizes d562ace335 adopt to new storage api 8f5311c771 Merge pull request #109960 from microsoft/ben/storage-target 4f038dba60 💄 e6b53ff8da adopt using new storage service to sync storage 744eed0a96 Add icon in Windows explorer window (#86283) e61be087c6 Merge branch 'master' into pr/88772 a665899915 fix compile and tests 194c7ea237 test name dfb74a6c97 some comments and more tests 1f7234c0ee workspace color theme setting not picked up 214125ebcb fix https://github.com/microsoft/vscode/issues/101870 c2944c6f22 another failing/skipped test for https://github.com/microsoft/vscode/issues/101870 130aa96b42 add to #109818 0feb41eed0 test machine storage is not synced b561be9e4c Add url finding for python 2.7 simple server Fixes microsoft/vscode-remote-release#3949 59bfe65e18 store synced state in user scope 8145e9f37a Fix local scheme for registered file systems in file picker Part of #https://github.com/microsoft/vscode/issues/109345 c49bc9b1cb fix tests a0ce43416d make snippet prefix optional and hide snippets without prefix from IntelliSense and TabCompletion, fixes https://github.com/microsoft/vscode/issues/73635 8b712ee66d - Use global keys with user scope from storage service to sync - Remove versioning of keys b449c95a84 Merge pull request #109916 from microsoft/joh/snippetIgnore 1f7528568e storage - add target to change event and cache targets bd7a83c110 tweak wording 41d6a0a560 Merge branch 'master' into joh/snippetIgnore 21cfbaeeee Merge commit '265a2f6424dfbd3a9788652c7d376a7991d049a3' into joao/terrapin 57c7e40a50 bulk edit - respect sideBySide options from event 7a00f134f7 do not show sync icon when extensio is not installed 265a2f6424 Supress marked logging for using sanitize 983ced6961 Changes to const enum cddb1b75f1 Moves newline handling into the hover Adds enum for parameter e06d374787 Avoids paragraphs for newlines in string tooltips This better matches the native tooltip styling of newlines 1c2005331c [json] use links for $ref, not goto definition (fixes #101474) e934668bd0 Merge pull request #109833 from fleon/patch-1 c68b238af3 Use `self` directly 51a4bbdfa5 1.10 is bad on macOS, revert this temporarily Revert "chore: bump vscode-ripgrep@1.10.0" ab9bb823ea debug: allow serverReadyAction to run a launch config by name 57340b736b Warning when invoking explorer.newFile (fix #100604) (#109905) 7831795dcb Backups: remove legacy migration code path. Fixes #101484 9c00847244 OnTypeRenameProvider API wording 529388e524 💄 d88f099116 Remember History on Debug Console filter between vscode sessions b9833bb962 Fix #99105 7278373f3d fixes #99709 bafccc8ebb format f17f51878e update milestones in notebooks ffd61f2917 fix markdown string integration test 0e43c7a495 Include description in custom tree aria label Part of #108480 7dca88de88 fixes #64188 503135e9b8 expose snippet enablement inside "Insert Snippet" picker fc37a9d0d3 Move tasks onBeforeShutdown to electron-browser Fixes #108649 e52382a0b3 findExecutable should check PATH in a case-insensitive way Fix #109863 e01e0ebe39 [theme] Git:Input Validation Subject Length - not working on Monokai Theme.Fixes #101081 aba089cf11 Fix #95268 bd0c897c90 Fix #95211 20b534d41e add persisted snippet enablement 70227b45b5 remove unused label ef941c2c3c 💄 more async-await f5490aed3d Fix #108023 7936093c33 git: merge resources should return undefined original resource 5b3b6b8026 💄 async-await a3a5d6a6e1 Fix tasks test 796db55744 Remove iframe around web worker in codespace case 56b686f9fd 💄 snippets 80d59864b1 appendText should escape leading whitespace, should escape leading quote character, also remove duplicated implementations, fixes https://github.com/microsoft/vscode/issues/68983, fixes https://github.com/microsoft/vscode/issues/109040 7d1affcf90 Throw useful error if task execution is undefined https://github.com/microsoft/vscode/issues/109861 5905725b5c Locally, but exported, constants hurt minification (a little) (fix #109899) eeaa42d650 storage - let flush return a promise when done 2dce4b75e6 Merge branch 'master' into joao/terrapin 1703e7e71e fix bad JSON a8036f5d27 Show current debug line in overview ruler 4ec0cd5f29 fixes #92709 153835e0f5 Fix #99963 e720530819 Open to side: do not first use fileService for resolving, since item is already part of explorer model 7601718ccc Use editor base weight when contributing peek commands, fixes https://github.com/microsoft/vscode/issues/109727#issuecomment-720986472 82ff980017 use item labels for themes dfaf4ef080 Merge branch 'master' into joao/terrapin 4d9e54c0b8 increase job timeout 37e16f845b storage - adopt new API in one place b64171bd0b storage - introduce onDidChangeTarget event 6f26a40b76 Fix #101612 183b2a2892 [themes] theme names are all not localized. Fixes #109840 c8b48d0d99 Fix #103438 8d429660a9 fix message cecd55133f Fix #106989 6a242516e4 storage - first cut target support (user, machine) 1d98078624 fix #106857 ad1dc7f87a Strip newlines from the code actions title 296aa89012 debug: improve attach to vscode config 6acc9ff1ee editor cmd+e find with selection. 90b17ed115 Make it easier to override markdown table stylings 699e3e5afa Update marked 49873aa674 Bump actions 1ca6360d5e terminal: fix typeahead eol naming 1351f36293 💄 06c401b358 terminal: cleanup typeahead tests 25e70bb455 terminal: update typeahead tests 5e636afbcf Remove unused imports 4e15db0b49 Fixes always white comment body border f25cb53571 Bump distro 4f1f830735 Merge remote-tracking branch 'origin/master' into searchView/context/extensionPoints bce86a137e Fixed other context menus using this context bf161eb5cd use mouse events for iPadOS instead of pointer events as iOS sometimes does not emit them 16d8eb9c57 Merge pull request #109630 from microsoft/eagerTerminalReconnection c1a6bc16b8 terminal: capture cursor position correctly in typeahead backspace 220a067d8e Merge pull request #109850 from kena0ki/issue##109636 3258a28683 clarify activity bar action menu layout refs #40262 fd9ace8458 terminal: fix typeahead leaving stray characters with backspaces cbb21a30dd terminal: restore old cursor style after failed backspace 933d888b2a Merge branch 'master' into eagerTerminalReconnection efb8cba23a Fix #108817 e6e9d6c36b add report issue to extension bisect, move issue service interface to workbench/services, allow to file issue against disabled extension if explicitly names, fyi @RMacfarlane 6c5cc99c77 Merge branch 'master' into issue##109636 a9dfd7e0ed fixes #109849 a0012e5f63 fix terrapin step 3b3b94525f fixes #95697 6e9fe5a638 fixes #71994 a25c5efdf3 💄 fd8411e75e Fix #89559 4b49bae903 Update xterm.css c110357096 fixes #67685 a5d719c570 Try new Rust grammar (#108254) 6d20077821 fixes #67315 7964dfd6e8 💄 async-await 8600d333fc debt - make editor smart select a "real" editor option 9d936d51f3 support ThemeIcon#color in workspace edit metadata, https://github.com/microsoft/vscode/issues/109460 4e198a4b4b :lipstsick: use underscore for privates bea76730f1 feat: Autodetect npm.packageManager #102050 (#102494) 1bd7cf9e41 use gh username for todo-tags, nuke some todo-tags ab94234299 Merge pull request #109740 from microsoft/joh/extbisect 0729278ad1 use label2 when CompletionEntry#source is a path inside the workspace 441698a621 do not allow editor override for walkthough inputs, fixes https://github.com/microsoft/vscode/issues/109595 98262ef050 fixes #109818 7901aa87e4 wording, show number of disabled extensions, option to keep bad extension disabled, towards filing issue 7cce3438d1 #107657 skip it unitl fixed 4198638fac Fix #109755 744f2ab731 web - use unbuffered upload/download for small files to speed things up f3a23697a9 Editors: revisit "preview" editors default behaviour (#109779) d6c2656f19 [regression] Files served by readonly filesystem show double '(read-only)' suffix in titlebar again (fix #109733) 2d7aacfa92 notifications - reduce weight of ESC for closing if toast has no focus d56b608506 sandbox - bring in browser based keyboard service to enable basic keyboard usage 0268b334e5 enable enableExperimentalProxyLoginDialog per default 5956564b72 storage - IWorkspaceStorageChangeEvent => IStorageChangeEvent 87f7879528 flush storage, some wording tweaks 44e28513b1 Merge branch 'master' into joh/extbisect 3e8c2e036d add "editor.suggest.showStatusDetailsInline"-setting to disable/enable inline details, https://github.com/microsoft/vscode/issues/109690 10a98746f2 Use `var` instead of `const` for the `global` variable 7e25008c60 Merge pull request #109750 from microsoft/sandy081/fix109709 5264ab94a3 chore: bump vscode-ripgrep@1.10.0 8abfa9bc03 Bump version to 1.52.0 580ac9765d rename variable to MatchRange to avoid argumentProcessor 75894bf0a6 Applied feedback bb1be0326d Added extensibility points for searchView/context 5662d49333 Revert "Revert "Fix #109709"" bba3e33b7c fix compilo a77dcf3cb1 tweak wordings bc957f402a add commands and logic to bisect extensions 7cedcfa44f Merge branch 'master' into eagerTerminalReconnection 485badfd8d Fire onDidChangeConnectionState at the right time 574ee2032c Set initial terminal focus based on connection state a607b1437b Fixed typo 'sequece' to 'sequence' bb4b04f206 Terminal reconnection - Get rid of awkward "empty tab" concept 5d0525b50d Reconnect terminals at startup instead of waiting for the terminal view to become visible 994b071092 #109255 Add encoding description to settings file encoding drop-down 7f5714beec chore(extensions): incorrect localize key c79c26babe Merge branch 'master' into resolve-78733 9dffbf40b6 Update SearchView#updateTextFromFindWidgetOrSelection to check seedWithNearestWord 18b30c6a8c Fix SearchView#updateTextFromSelection method to return correct value 10f7c0573e Update OneSnippet#move method to fix #96545. 8d535e661b Update matchCase and wholeWord options when updating text from find widget in SearchView c9b479c4a1 use terrapin 720cdd5e1b Merge branch 'master' into patch-1 2f232ccbca Enable tsec language service plugin 5b5431d552 Merge branch 'master' into scrollbar-paging 36446b1b97 Merge branch 'master' into atomic_tabs 3064431dc5 Fix remaining hightlights d3a3f39dbf Fix overlay area for minimap slider e6cddb065a Update regular expression option when updating text from find widget in SearchView f0583c0db2 Extract updateText method in SearchView d000256957 Add atomicSoftTabs in one place that I missed 3ca4059ea5 Move mouse handling to a lower level to handle more cases d119c92489 Add atomic tabs option bb42ea52e0 Typo hightlight -> highlight 66160a8417 Add updateTextFromFindWidgetOrSelection method to SearchView c9fb066990 Ignore LineDecoration order when comparing e51cc0eae7 Move changes to scmViewPane b08e733365 Merge branch 'master' into fix-89145 02cfa0b9a8 Create empty commit with changed files #107753 b9b6241354 Merge remote-tracking branch 'upstream/master' Merging bug fix with original VSCode repo ff2a9a476e Fixed issue 104346 ceeb974856 Wire up `preconditions` for viewsWelcome buttons, and use it af4fb00687 Initial 'Git extension is activating...' in SCM view 4e00a9b1a5 fix #106487 Contribute an "activating" placeholder message and button 822ca5f07b don't declare a variable that isn't used 2f1c0213d3 Fix composition logic for Firefox 3cc907a220 Fix return 3890d7fba9 Formatting 22ca0c1e8a Add providerName option to git.api.getRemoteSources fa3c6026e2 Merge branch 'master' into dirSep b955b58eee Add dirSep variable launch.json 16d89b0694 Merge branch 'master' into scrollbar-paging 6089fec6a4 Merge branch 'master' into scrollbar-paging aca9ae3288 Option: editor.scrollbar.gutterClickMovesByPage 8b21b331fa Amend scrollbarState.test.ts for new positions 2fa97c8794 feat(extensions): added an option to disable related dependencies when disabling an extension with enabled dependencies 11664e62a3 Make Clicking in Scrollbars Move By Page ff8d4feeb4 Git: Add cherryPick command b4c528cbfd fixes #103281 663ecdbb2a Merge branch 'master' into better-checkout-type d9d1be4e49 Avoid debug ae540536b4 Rewrite checkout items 3f585d7400 Add better support for checkout type config df3af97279 fix fetchOnPull behavior for Sync fc797d2430 fix 97472 bed300cd4f Don't fail when resolving config variables without a `folderUri`. 8561cbb8ae Add force checkout and smart checkout 31ee5b9644 fix something b24cb8b47d Add rename by git context menu 1531898fdb avoid loading and twisty set at the same time 1243ff76e4 Changed name of the setting to openAfterClone b64cb1ecf4 Merge branch 'master' of https://github.com/microsoft/vscode 4420bbfbcf Offer to show git command output on failure 64b8e933ba Merge branch 'master' into fix-89145 5a9b210d91 Merge branch 'master' of https://github.com/microsoft/vscode 26e1217ce9 Merge branch 'master' of https://github.com/microsoft/vscode 156d5ab281 Added setting for opening cloned repository without prompt. #93300 412a44e9bc Git: ask to save unsaved files before stashing bc85a9ffdb Added user choice for opening the folder always. 725985401d Merge branch 'master' into amend-message 37bca69ff1 💄 3b9dca805c Merge branch 'master' into fix-89145 f23fcb72f5 allow git amend message only 33b5a9ba25 Merge branch 'master' into ignore_sub cdc6c051e5 Persist scm tree view state between sessions 712ceb8279 Fixes #89145 2abdb90472 git.pruneOnFetch setting implemented d7ed37e864 add ignoreSubmodules option REVERT: e5a624b788 Bump version number to 1.51.1 (#110355) REVERT: 02f4e3563b reset icon color once REVERT: 314b97acc6 Fixes #110033 REVERT: 67a784d64f Merge pull request #110247 from microsoft/joh/fix110188 REVERT: b0f1494e96 restore old case ignore behaviour unless explicitly set REVERT: fcac248b07 Merge pull request #109961 from microsoft/joh/fix/109906 REVERT: 9a44531938 fix flawed comparison, increase threshold REVERT: f918d52947 don't presist little size changes REVERT: f37df00d4b add command to reset suggest widget sizes REVERT: 271026ee11 Avoids paragraphs for newlines in string tooltips This better matches the native tooltip styling of newlines REVERT: a5dfd9dcf8 Merge pull request #109882 from microsoft/roblou/fix109863 REVERT: a46559b134 findExecutable should check PATH in a case-insensitive way Fix #109863 REVERT: c57a3408d8 Merge pull request #109859 from microsoft/connor4312/typeahead-151-candidates REVERT: c82d350c6c terminal: cleanup typeahead tests REVERT: 54cadfb2cd terminal: update typeahead tests REVERT: 192fd218cc terminal: fix typeahead leaving stray characters with backspaces REVERT: 3d37590985 terminal: restore old cursor style after failed backspace REVERT: fce8fc82ca Merge pull request #109829 from microsoft/sandy081/fix109709 REVERT: 0bc9b1de71 Revert "Revert "Fix #109709"" git-subtree-dir: lib/vscode git-subtree-split: 3e344b17b7b63b23379a023d575a54ab3a838b6b
6551 lines
192 KiB
TypeScript
6551 lines
192 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 {
|
||
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[];
|
||
|
||
/**
|
||
* 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;
|
||
|
||
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`
|
||
*/
|
||
theme?: string;
|
||
}
|
||
|
||
/**
|
||
* 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`
|
||
*/
|
||
theme?: string;
|
||
/**
|
||
* 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`
|
||
*/
|
||
theme?: string;
|
||
}
|
||
|
||
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 EditorAutoClosingOvertypeStrategy = '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.
|
||
* Defaults to false.
|
||
*/
|
||
readOnly?: 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 typing over closing quotes or brackets.
|
||
*/
|
||
autoClosingOvertype?: EditorAutoClosingOvertypeStrategy;
|
||
/**
|
||
* 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;
|
||
}
|
||
|
||
/**
|
||
* 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;
|
||
/**
|
||
* Control the wrapping of the diff editor.
|
||
*/
|
||
diffWordWrap?: 'off' | 'on' | 'inherit';
|
||
}
|
||
|
||
/**
|
||
* 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 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;
|
||
/**
|
||
* Favours 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,
|
||
autoClosingOvertype = 6,
|
||
autoClosingQuotes = 7,
|
||
autoIndent = 8,
|
||
automaticLayout = 9,
|
||
autoSurround = 10,
|
||
codeLens = 11,
|
||
codeLensFontFamily = 12,
|
||
codeLensFontSize = 13,
|
||
colorDecorators = 14,
|
||
columnSelection = 15,
|
||
comments = 16,
|
||
contextmenu = 17,
|
||
copyWithSyntaxHighlighting = 18,
|
||
cursorBlinking = 19,
|
||
cursorSmoothCaretAnimation = 20,
|
||
cursorStyle = 21,
|
||
cursorSurroundingLines = 22,
|
||
cursorSurroundingLinesStyle = 23,
|
||
cursorWidth = 24,
|
||
disableLayerHinting = 25,
|
||
disableMonospaceOptimizations = 26,
|
||
dragAndDrop = 27,
|
||
emptySelectionClipboard = 28,
|
||
extraEditorClassName = 29,
|
||
fastScrollSensitivity = 30,
|
||
find = 31,
|
||
fixedOverflowWidgets = 32,
|
||
folding = 33,
|
||
foldingStrategy = 34,
|
||
foldingHighlight = 35,
|
||
unfoldOnClickAfterEndOfLine = 36,
|
||
fontFamily = 37,
|
||
fontInfo = 38,
|
||
fontLigatures = 39,
|
||
fontSize = 40,
|
||
fontWeight = 41,
|
||
formatOnPaste = 42,
|
||
formatOnType = 43,
|
||
glyphMargin = 44,
|
||
gotoLocation = 45,
|
||
hideCursorInOverviewRuler = 46,
|
||
highlightActiveIndentGuide = 47,
|
||
hover = 48,
|
||
inDiffEditor = 49,
|
||
letterSpacing = 50,
|
||
lightbulb = 51,
|
||
lineDecorationsWidth = 52,
|
||
lineHeight = 53,
|
||
lineNumbers = 54,
|
||
lineNumbersMinChars = 55,
|
||
linkedEditing = 56,
|
||
links = 57,
|
||
matchBrackets = 58,
|
||
minimap = 59,
|
||
mouseStyle = 60,
|
||
mouseWheelScrollSensitivity = 61,
|
||
mouseWheelZoom = 62,
|
||
multiCursorMergeOverlapping = 63,
|
||
multiCursorModifier = 64,
|
||
multiCursorPaste = 65,
|
||
occurrencesHighlight = 66,
|
||
overviewRulerBorder = 67,
|
||
overviewRulerLanes = 68,
|
||
padding = 69,
|
||
parameterHints = 70,
|
||
peekWidgetDefaultFocus = 71,
|
||
definitionLinkOpensInPeek = 72,
|
||
quickSuggestions = 73,
|
||
quickSuggestionsDelay = 74,
|
||
readOnly = 75,
|
||
renameOnType = 76,
|
||
renderControlCharacters = 77,
|
||
renderIndentGuides = 78,
|
||
renderFinalNewline = 79,
|
||
renderLineHighlight = 80,
|
||
renderLineHighlightOnlyWhenFocus = 81,
|
||
renderValidationDecorations = 82,
|
||
renderWhitespace = 83,
|
||
revealHorizontalRightPadding = 84,
|
||
roundedSelection = 85,
|
||
rulers = 86,
|
||
scrollbar = 87,
|
||
scrollBeyondLastColumn = 88,
|
||
scrollBeyondLastLine = 89,
|
||
scrollPredominantAxis = 90,
|
||
selectionClipboard = 91,
|
||
selectionHighlight = 92,
|
||
selectOnLineNumbers = 93,
|
||
showFoldingControls = 94,
|
||
showUnused = 95,
|
||
snippetSuggestions = 96,
|
||
smartSelect = 97,
|
||
smoothScrolling = 98,
|
||
stickyTabStops = 99,
|
||
stopRenderingLineAfter = 100,
|
||
suggest = 101,
|
||
suggestFontSize = 102,
|
||
suggestLineHeight = 103,
|
||
suggestOnTriggerCharacters = 104,
|
||
suggestSelection = 105,
|
||
tabCompletion = 106,
|
||
tabIndex = 107,
|
||
unusualLineTerminators = 108,
|
||
useTabStops = 109,
|
||
wordSeparators = 110,
|
||
wordWrap = 111,
|
||
wordWrapBreakAfterCharacters = 112,
|
||
wordWrapBreakBeforeCharacters = 113,
|
||
wordWrapColumn = 114,
|
||
wordWrapOverride1 = 115,
|
||
wordWrapOverride2 = 116,
|
||
wrappingIndent = 117,
|
||
wrappingStrategy = 118,
|
||
showDeprecated = 119,
|
||
editorClassName = 120,
|
||
pixelRatio = 121,
|
||
tabFocusMode = 122,
|
||
layoutInfo = 123,
|
||
wrappingInfo = 124
|
||
}
|
||
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, EditorAutoClosingStrategy>;
|
||
autoClosingOvertype: IEditorOption<EditorOption.autoClosingOvertype, EditorAutoClosingOvertypeStrategy>;
|
||
autoClosingQuotes: IEditorOption<EditorOption.autoClosingQuotes, EditorAutoClosingStrategy>;
|
||
autoIndent: IEditorOption<EditorOption.autoIndent, EditorAutoIndentStrategy>;
|
||
automaticLayout: IEditorOption<EditorOption.automaticLayout, boolean>;
|
||
autoSurround: IEditorOption<EditorOption.autoSurround, EditorAutoSurroundStrategy>;
|
||
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>;
|
||
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>;
|
||
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 {
|
||
/**
|
||
* 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 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 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;
|
||
}
|
||
|
||
/**
|
||
* 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.
|
||
*/
|
||
oneLineAboveText?: 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 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;
|
||
}
|
||
|
||
/**
|
||
* 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
|