12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237 |
- /*!-----------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Type definitions for monaco-editor v0.9.0
- * Released under the MIT license
- *-----------------------------------------------------------*/
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- declare module monaco {
- interface Thenable<T> {
- /**
- * Attaches callbacks for the resolution and/or rejection of the Promise.
- * @param onfulfilled The callback to execute when the Promise is resolved.
- * @param onrejected The callback to execute when the Promise is rejected.
- * @returns A Promise for the completion of which ever callback is executed.
- */
- then<TResult>(onfulfilled?: (value: T) => TResult | Thenable<TResult>, onrejected?: (reason: any) => TResult | Thenable<TResult>): Thenable<TResult>;
- then<TResult>(onfulfilled?: (value: T) => TResult | Thenable<TResult>, onrejected?: (reason: any) => void): Thenable<TResult>;
- }
- 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 Severity {
- Ignore = 0,
- Info = 1,
- Warning = 2,
- Error = 3,
- }
- /**
- * The value callback to complete a promise
- */
- export interface TValueCallback<T> {
- (value: T): void;
- }
- export interface ProgressCallback {
- (progress: any): any;
- }
- /**
- * A Promise implementation that supports progress and cancelation.
- */
- export class Promise<V> {
- constructor(init: (complete: TValueCallback<V>, error: (err: any) => void, progress: ProgressCallback) => void, oncancel?: any);
- public then<U>(success?: (value: V) => Promise<U>, error?: (err: any) => Promise<U>, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U>, error?: (err: any) => Promise<U> | U, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U>, error?: (err: any) => U, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U>, error?: (err: any) => void, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U> | U, error?: (err: any) => Promise<U>, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U> | U, error?: (err: any) => Promise<U> | U, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U> | U, error?: (err: any) => U, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => Promise<U> | U, error?: (err: any) => void, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => U, error?: (err: any) => Promise<U>, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => U, error?: (err: any) => Promise<U> | U, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => U, error?: (err: any) => U, progress?: ProgressCallback): Promise<U>;
- public then<U>(success?: (value: V) => U, error?: (err: any) => void, progress?: ProgressCallback): Promise<U>;
- public done(success?: (value: V) => void, error?: (err: any) => any, progress?: ProgressCallback): void;
- public cancel(): void;
- public static as(value: null): Promise<null>;
- public static as(value: undefined): Promise<undefined>;
- public static as<ValueType>(value: Promise<ValueType>): Promise<ValueType>;
- public static as<ValueType>(value: Thenable<ValueType>): Thenable<ValueType>;
- public static as<ValueType>(value: ValueType): Promise<ValueType>;
- public static is(value: any): value is Thenable<any>;
- public static timeout(delay: number): Promise<void>;
- public static join<ValueType>(promises: Promise<ValueType>[]): Promise<ValueType[]>;
- public static join<ValueType>(promises: Thenable<ValueType>[]): Thenable<ValueType[]>;
- public static join<ValueType>(promises: { [n: string]: Promise<ValueType> }): Promise<{ [n: string]: ValueType }>;
- public static any<ValueType>(promises: Promise<ValueType>[]): Promise<{ key: string; value: Promise<ValueType>; }>;
- public static wrap<ValueType>(value: Thenable<ValueType>): Promise<ValueType>;
- public static wrap<ValueType>(value: ValueType): Promise<ValueType>;
- public static wrapError<ValueType>(error: Error): Promise<ValueType>;
- }
- export class CancellationTokenSource {
- readonly token: CancellationToken;
- cancel(): void;
- dispose(): void;
- }
- export interface CancellationToken {
- readonly isCancellationRequested: boolean;
- /**
- * An event emitted when cancellation is requested
- * @event
- */
- readonly onCancellationRequested: IEvent<any>;
- }
- /**
- * Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986.
- * This class is a simple parser which creates the basic component paths
- * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation
- * and encoding.
- *
- * foo://example.com:8042/over/there?name=ferret#nose
- * \_/ \______________/\_________/ \_________/ \__/
- * | | | | |
- * scheme authority path query fragment
- * | _____________________|__
- * / \ / \
- * urn:example:animal:ferret:nose
- *
- *
- */
- export class Uri {
- static isUri(thing: any): thing is Uri;
- protected constructor();
- /**
- * 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 and normalize windows drive letters to lower-case. Also
- * 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.
- */
- readonly fsPath: string;
- with(change: {
- scheme?: string;
- authority?: string;
- path?: string;
- query?: string;
- fragment?: string;
- }): Uri;
- static parse(value: string): Uri;
- static file(path: string): Uri;
- static from(components: {
- scheme?: string;
- authority?: string;
- path?: string;
- query?: string;
- fragment?: string;
- }): Uri;
- /**
- *
- * @param skipEncoding Do not encode the result, default is `false`
- */
- toString(skipEncoding?: boolean): string;
- toJSON(): any;
- static revive(data: any): Uri;
- }
- /**
- * 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;
- }
- /**
- * MarkedString can be used to render human readable text. It is either a markdown string
- * or a code-block that provides a language and a code snippet. Note that
- * markdown strings will be sanitized - that means html will be escaped.
- */
- export type MarkedString = string | {
- readonly language: string;
- readonly value: string;
- };
- export interface IKeyboardEvent {
- 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 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);
- /**
- * Test if this position equals other position
- */
- equals(other: IPosition): boolean;
- /**
- * Test if position `a` equals position `b`
- */
- static equals(a: IPosition, b: IPosition): 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;
- /**
- * 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;
- /**
- * A intersection of the two ranges.
- */
- static intersectRanges(a: IRange, b: IRange): Range;
- /**
- * Test if this range equals other.
- */
- equalsRange(other: IRange): boolean;
- /**
- * Test if range `a` equals `b`.
- */
- static equalsRange(a: IRange, b: IRange): boolean;
- /**
- * Return the end position (which will be after or equal to the start position)
- */
- getEndPosition(): Position;
- /**
- * Return the start position (which will be before or equal to the end position)
- */
- getStartPosition(): Position;
- /**
- * Clone this range.
- */
- cloneRange(): Range;
- /**
- * 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: 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;
- /**
- * 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, b: IRange): 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);
- /**
- * Clone this selection.
- */
- clone(): Selection;
- /**
- * 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 module monaco.editor {
- /**
- * 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?: IEditorConstructionOptions, 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 IDiffNavigator {
- revealFirst: boolean;
- canNavigate(): boolean;
- next(): void;
- previous(): void;
- dispose(): void;
- }
- 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): IModel;
- /**
- * Change the language for a model.
- */
- export function setModelLanguage(model: IModel, language: string): void;
- /**
- * Set the markers for a model.
- */
- export function setModelMarkers(model: IModel, owner: string, markers: IMarkerData[]): void;
- /**
- * Get the model that has `uri` if it exists.
- */
- export function getModel(uri: Uri): IModel;
- /**
- * Get all the created models.
- */
- export function getModels(): IModel[];
- /**
- * Emitted when a model is created.
- * @event
- */
- export function onDidCreateModel(listener: (model: IModel) => void): IDisposable;
- /**
- * Emitted right before a model is disposed.
- * @event
- */
- export function onWillDisposeModel(listener: (model: IModel) => void): IDisposable;
- /**
- * Emitted when a different language is set to a model.
- * @event
- */
- export function onDidChangeModelLanguage(listener: (e: {
- readonly model: IModel;
- 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: IModel, lineNumber: number, tabSize?: number): string;
- /**
- * Tokenize `text` using language `languageId`
- */
- export function tokenize(text: string, languageId: string): Token[][];
- /**
- * Define a new theme.
- */
- export function defineTheme(themeName: string, themeData: IStandaloneThemeData): void;
- /**
- * Switches to a theme.
- */
- export function setTheme(themeName: string): void;
- export type BuiltinTheme = 'vs' | 'vs-dark' | 'hc-black';
- export interface IStandaloneThemeData {
- base: BuiltinTheme;
- inherit: boolean;
- rules: ITokenThemeRule[];
- 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;
- }
- /**
- * The options to create an editor.
- */
- export interface IEditorConstructionOptions extends IEditorOptions {
- /**
- * The initial model associated with this code editor.
- */
- model?: IModel;
- /**
- * 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 {
- addCommand(keybinding: number, handler: ICommandHandler, context: string): string;
- 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;
- 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;
- }
- export interface IEditorOverrideServices {
- [index: string]: any;
- }
- /**
- * A structure defining a problem/warning/etc.
- */
- export interface IMarkerData {
- code?: string;
- severity: Severity;
- message: string;
- source?: 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,
- }
- /**
- * Options for rendering a model decoration in the overview ruler.
- */
- export interface IModelDecorationOverviewRulerOptions {
- /**
- * CSS color to render in the overview ruler.
- * e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry
- */
- color: string | ThemeColor;
- /**
- * CSS color to render in the overview ruler.
- * e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry
- */
- darkColor: string | ThemeColor;
- /**
- * CSS color to render in the overview ruler.
- * e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry
- */
- hcColor?: string | ThemeColor;
- /**
- * The position in the overview ruler.
- */
- position: OverviewRulerLane;
- }
- /**
- * 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;
- /**
- * Message to be rendered when hovering over the glyph margin decoration.
- */
- glyphMarginHoverMessage?: MarkedString | MarkedString[];
- /**
- * Array of MarkedString to render as the decoration message.
- */
- hoverMessage?: MarkedString | MarkedString[];
- /**
- * Should the decoration expand to encompass a whole line.
- */
- isWholeLine?: boolean;
- /**
- * If set, render this decoration in the overview ruler.
- */
- overviewRuler?: IModelDecorationOverviewRulerOptions;
- /**
- * If set, the decoration will be rendered in the glyph margin with this CSS class name.
- */
- glyphMarginClassName?: string;
- /**
- * If set, the decoration will be rendered in the lines decorations with this CSS class name.
- */
- linesDecorationsClassName?: string;
- /**
- * If set, the decoration will be rendered in the margin (covering its full width) with this CSS class name.
- */
- marginClassName?: string;
- /**
- * 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;
- /**
- * If set, the decoration will be rendered before the text with this CSS class name.
- */
- beforeContentClassName?: string;
- /**
- * If set, the decoration will be rendered after the text with this CSS class name.
- */
- afterContentClassName?: string;
- }
- /**
- * 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 owener.
- */
- readonly ownerId: number;
- /**
- * Range that this decoration covers.
- */
- readonly range: Range;
- /**
- * Options associated with this decoration.
- */
- readonly options: IModelDecorationOptions;
- /**
- * A flag describing if this is a problem decoration (e.g. warning/error).
- */
- readonly isForValidation: boolean;
- }
- /**
- * 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,
- }
- /**
- * An identifier for a single edit operation.
- */
- export interface ISingleEditOperationIdentifier {
- /**
- * Identifier major
- */
- major: number;
- /**
- * Identifier minor
- */
- minor: number;
- }
- /**
- * 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: Range, text: string): 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: Range, text: string): 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 identifer.
- */
- 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(): IIdentifiedSingleEditOperation[];
- /**
- * 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: ITokenizedModel, builder: IEditOperationBuilder): void;
- /**
- * Compute the cursor state after the edit operations were applied.
- * @param model The model the commad 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: ITokenizedModel, helper: ICursorStateComputerData): Selection;
- }
- /**
- * 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;
- /**
- * 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 {
- /**
- * An identifier associated with this single edit operation.
- */
- identifier: ISingleEditOperationIdentifier;
- /**
- * The range to replace. This can be empty to emulate a simple insert.
- */
- range: Range;
- /**
- * The text to replace with. This can be null to emulate a simple delete.
- */
- text: string;
- /**
- * 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;
- /**
- * This indicates that this operation is inserting automatic whitespace
- * that can be removed on next model edit operation if `config.trimAutoWhitespace` is true.
- */
- isAutoWhitespaceEdit?: boolean;
- }
- /**
- * 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: IIdentifiedSingleEditOperation[]): Selection[];
- }
- export class TextModelResolvedOptions {
- _textModelResolvedOptionsBrand: void;
- readonly tabSize: number;
- readonly insertSpaces: boolean;
- readonly defaultEOL: DefaultEndOfLine;
- readonly trimAutoWhitespace: boolean;
- }
- export interface ITextModelUpdateOptions {
- tabSize?: number;
- insertSpaces?: boolean;
- trimAutoWhitespace?: boolean;
- }
- /**
- * A textual read-only model.
- */
- export interface ITextModel {
- /**
- * 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 number of lines in the model.
- */
- getLineCount(): number;
- /**
- * Get the text for a certain line.
- */
- getLineContent(lineNumber: number): string;
- /**
- * 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;
- /**
- * Change the end of line sequence used in the text buffer.
- */
- setEOL(eol: EndOfLineSequence): void;
- /**
- * 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 offest (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 ofsset 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 iff 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, 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 this range.
- * @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, isRegex: boolean, matchCase: boolean, wordSeparators: string, 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, captureMatches: boolean): FindMatch;
- /**
- * 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, captureMatches: boolean): FindMatch;
- }
- export class FindMatch {
- _findMatchBrand: void;
- readonly range: Range;
- readonly matches: string[];
- }
- export interface IReadOnlyModel extends ITextModel {
- /**
- * Gets the resource associated with this editor model.
- */
- readonly uri: Uri;
- /**
- * 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.
- * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode.
- * @return The word under or besides `position`. Might be null.
- */
- getWordAtPosition(position: IPosition): IWordAtPosition;
- /**
- * Get the word under or besides `position` trimmed to `position`.column
- * @param position The position to look for a word.
- * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode.
- * @return The word under or besides `position`. Will never be null.
- */
- getWordUntilPosition(position: IPosition): IWordAtPosition;
- }
- /**
- * A model that is tokenized.
- */
- export interface ITokenizedModel extends ITextModel {
- /**
- * 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.
- * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode.
- * @return The word under or besides `position`. Might be null.
- */
- getWordAtPosition(position: IPosition): IWordAtPosition;
- /**
- * Get the word under or besides `position` trimmed to `position`.column
- * @param position The position to look for a word.
- * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode.
- * @return The word under or besides `position`. Will never be null.
- */
- getWordUntilPosition(position: IPosition): IWordAtPosition;
- }
- /**
- * A model that can track markers.
- */
- export interface ITextModelWithMarkers extends ITextModel {
- }
- /**
- * 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 that can have decorations.
- */
- export interface ITextModelWithDecorations {
- /**
- * Perform a minimum ammount 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;
- /**
- * 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;
- /**
- * 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 deocorations 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[];
- }
- /**
- * An editable text model.
- */
- export interface IEditableTextModel extends ITextModelWithMarkers {
- /**
- * Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs).
- */
- normalizeIndentation(str: string): string;
- /**
- * Get what is considered to be one indent (e.g. a tab character or 4 spaces, etc.).
- */
- getOneIndent(): 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;
- /**
- * Push a stack element onto the undo stack. This acts as an undo/redo point.
- * The idea is to use `pushEditOperations` to edit the model and then to
- * `pushStackElement` to create an undo/redo stop point.
- */
- pushStackElement(): 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 operaions. 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[], editOperations: IIdentifiedSingleEditOperation[], cursorStateComputer: ICursorStateComputer): Selection[];
- /**
- * 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 The inverse edit operations, that, when applied, will bring the model back to the previous state.
- */
- applyEdits(operations: IIdentifiedSingleEditOperation[]): IIdentifiedSingleEditOperation[];
- }
- /**
- * A model.
- */
- export interface IModel extends IReadOnlyModel, IEditableTextModel, ITextModelWithMarkers, ITokenizedModel, ITextModelWithDecorations {
- /**
- * 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 right before disposing the model.
- * @event
- */
- onWillDispose(listener: () => void): IDisposable;
- /**
- * A unique identifier associated with this model.
- */
- readonly id: string;
- /**
- * 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 model for the diff editor.
- */
- export interface IDiffEditorModel {
- /**
- * Original model.
- */
- original: IModel;
- /**
- * Modified model.
- */
- modified: IModel;
- }
- /**
- * 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;
- /**
- * The `uri` of the new model or null.
- */
- readonly newModelUrl: Uri;
- }
- 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[];
- }
- /**
- * Information about a line in the diff editor
- */
- export interface IDiffLineInformation {
- readonly equivalentLineNumber: number;
- }
- export interface INewScrollPosition {
- scrollLeft?: number;
- scrollTop?: number;
- }
- /**
- * 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 convinience
- */
- run(editor: ICommonCodeEditor): void | Promise<void>;
- }
- export interface IEditorAction {
- readonly id: string;
- readonly label: string;
- readonly alias: string;
- isSupported(): boolean;
- run(): Promise<void>;
- }
- export type IEditorModel = IModel | 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 {
- scrollTop: number;
- scrollTopWithoutViewZones: number;
- scrollLeft: 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;
- modified: ICodeEditorViewState;
- }
- /**
- * An editor view state.
- */
- export type IEditorViewState = ICodeEditorViewState | IDiffEditorViewState;
- /**
- * 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.
- */
- layout(dimension?: IDimension): void;
- /**
- * Brings browser focus to the editor text
- */
- focus(): void;
- /**
- * Returns true if this editor has keyboard focus (e.g. cursor is blinking).
- */
- isFocused(): boolean;
- /**
- * Returns all actions associated with this editor.
- */
- getActions(): IEditorAction[];
- /**
- * Returns all actions associated with this editor.
- */
- getSupportedActions(): IEditorAction[];
- /**
- * Saves current view state of the editor in a serializable object.
- */
- saveViewState(): IEditorViewState;
- /**
- * 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;
- /**
- * 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): void;
- /**
- * Scroll vertically as necessary and reveal a line centered vertically.
- */
- revealLineInCenter(lineNumber: number): void;
- /**
- * Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport.
- */
- revealLineInCenterIfOutsideViewport(lineNumber: number): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a position.
- */
- revealPosition(position: IPosition, revealVerticalInCenter?: boolean, revealHorizontal?: boolean): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a position centered vertically.
- */
- revealPositionInCenter(position: IPosition): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport.
- */
- revealPositionInCenterIfOutsideViewport(position: IPosition): void;
- /**
- * Returns the primary selection of the editor.
- */
- getSelection(): Selection;
- /**
- * Returns all the selections of the editor.
- */
- getSelections(): Selection[];
- /**
- * 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: ISelection[]): void;
- /**
- * Scroll vertically as necessary and reveal lines.
- */
- revealLines(startLineNumber: number, endLineNumber: number): void;
- /**
- * Scroll vertically as necessary and reveal lines centered vertically.
- */
- revealLinesInCenter(lineNumber: number, endLineNumber: number): void;
- /**
- * Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport.
- */
- revealLinesInCenterIfOutsideViewport(lineNumber: number, endLineNumber: number): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a range.
- */
- revealRange(range: IRange): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a range centered vertically.
- */
- revealRangeInCenter(range: IRange): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a range at the top of the viewport.
- */
- revealRangeAtTop(range: IRange): void;
- /**
- * Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport.
- */
- revealRangeInCenterIfOutsideViewport(range: IRange): 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, handlerId: string, payload: any): void;
- /**
- * Gets the current model attached to this editor.
- */
- getModel(): IEditorModel;
- /**
- * 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): 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 {
- /**
- * Get a unique identifier for this contribution.
- */
- getId(): string;
- /**
- * Dispose this contribution.
- */
- dispose(): void;
- /**
- * Store view state.
- */
- saveViewState?(): any;
- /**
- * Restore view state.
- */
- restoreViewState?(state: any): void;
- }
- export interface ICommonCodeEditor 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 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: IConfigurationChangedEvent) => 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 blinking).
- * @event
- */
- onDidFocusEditorText(listener: () => void): IDisposable;
- /**
- * An event emitted when the text inside this editor lost focus.
- * @event
- */
- onDidBlurEditorText(listener: () => void): IDisposable;
- /**
- * An event emitted when the text inside this editor or an editor widget gained focus.
- * @event
- */
- onDidFocusEditor(listener: () => void): IDisposable;
- /**
- * An event emitted when the text inside this editor or an editor widget lost focus.
- * @event
- */
- onDidBlurEditor(listener: () => void): IDisposable;
- /**
- * Saves current view state of the editor in a serializable object.
- */
- saveViewState(): ICodeEditorViewState;
- /**
- * Restores the view state of the editor from a serializable object generated by `saveViewState`.
- */
- restoreViewState(state: ICodeEditorViewState): void;
- /**
- * Returns true if this editor or one of its widgets has keyboard 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(): IModel;
- /**
- * Returns the current editor's configuration
- */
- getConfiguration(): InternalEditorOptions;
- /**
- * Get value of the current model attached to this editor.
- * @see IModel.getValue
- */
- getValue(options?: {
- preserveBOM: boolean;
- lineEnding: string;
- }): string;
- /**
- * Set the value of the current model attached to this editor.
- * @see IModel.setValue
- */
- setValue(newValue: string): void;
- /**
- * Get the scrollWidth of the editor's viewport.
- */
- getScrollWidth(): number;
- /**
- * Get the scrollLeft of the editor's viewport.
- */
- getScrollLeft(): 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): void;
- /**
- * Change the scrollTop of the editor's viewport.
- */
- setScrollTop(newScrollTop: number): void;
- /**
- * Change the scroll position of the editor's viewport.
- */
- setScrollPosition(position: INewScrollPosition): 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, command: ICommand): void;
- /**
- * Push an "undo stop" in the undo-redo stack.
- */
- pushUndoStop(): 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 endCursoState Cursor state after the edits were applied.
- */
- executeEdits(source: string, edits: IIdentifiedSingleEditOperation[], endCursoState?: Selection[]): boolean;
- /**
- * Execute multiple (concommitent) commands on the editor.
- * @param source The source of the call.
- * @param command The commands to execute
- */
- executeCommands(source: string, commands: ICommand[]): void;
- /**
- * Get all the decorations on a line (filtering out decorations from other editors).
- */
- getLineDecorations(lineNumber: number): IModelDecoration[];
- /**
- * All decorations added through this call will get the ownerId of this editor.
- * @see IModel.deltaDecorations
- */
- deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[]): string[];
- /**
- * Get the layout info for the editor.
- */
- getLayoutInfo(): EditorLayoutInfo;
- }
- export interface ICommonDiffEditor extends IEditor {
- /**
- * 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;
- /**
- * 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;
- /**
- * Get the `original` editor.
- */
- getOriginalEditor(): ICommonCodeEditor;
- /**
- * Get the `modified` editor.
- */
- getModifiedEditor(): ICommonCodeEditor;
- /**
- * Get the computed diff information.
- */
- getLineChanges(): ILineChange[];
- /**
- * 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;
- /**
- * 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;
- /**
- * @see ICodeEditor.getValue
- */
- getValue(options?: {
- preserveBOM: boolean;
- lineEnding: string;
- }): string;
- }
- /**
- * The type of the `IEditor`.
- */
- export var 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;
- }
- export interface IModelContentChange {
- /**
- * The range that got replaced.
- */
- readonly range: IRange;
- /**
- * 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 {
- /**
- * Lists of ids for added decorations.
- */
- readonly addedDecorations: string[];
- /**
- * Lists of ids for changed decorations.
- */
- readonly changedDecorations: string[];
- /**
- * List of ids for removed decorations.
- */
- readonly removedDecorations: string[];
- }
- /**
- * An event describing that some ranges of lines have been tokenized (their tokens have changed).
- */
- export interface IModelTokensChangedEvent {
- readonly ranges: {
- /**
- * The start of the range (inclusive)
- */
- readonly fromLineNumber: number;
- /**
- * The end of the range (inclusive)
- */
- readonly toLineNumber: number;
- }[];
- }
- export interface IModelOptionsChangedEvent {
- readonly tabSize: 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[];
- /**
- * Source of the call that caused the event.
- */
- readonly source: string;
- /**
- * Reason.
- */
- readonly reason: CursorChangeReason;
- }
- /**
- * Configuration options for editor scrollbars
- */
- export interface IEditorScrollbarOptions {
- /**
- * The size of arrows (if displayed).
- * Defaults to 11.
- */
- arrowSize?: number;
- /**
- * Render vertical scrollbar.
- * Accepted values: 'auto', 'visible', 'hidden'.
- * Defaults to 'auto'.
- */
- vertical?: string;
- /**
- * Render horizontal scrollbar.
- * Accepted values: 'auto', 'visible', 'hidden'.
- * Defaults to 'auto'.
- */
- horizontal?: string;
- /**
- * 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;
- /**
- * 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;
- }
- /**
- * Configuration options for editor find widget
- */
- export interface IEditorFindOptions {
- /**
- * Controls if we seed search string in the Find Widget with editor selection.
- */
- seedSearchStringFromSelection?: boolean;
- /**
- * Controls if Find in Selection flag is turned on when multiple lines of text are selected in the editor.
- */
- autoFindInSelection: boolean;
- }
- /**
- * Configuration options for editor minimap
- */
- export interface IEditorMinimapOptions {
- /**
- * Enable the rendering of the minimap.
- * Defaults to false.
- */
- enabled?: boolean;
- /**
- * 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;
- }
- /**
- * Configuration options for the editor.
- */
- export interface IEditorOptions {
- /**
- * The aria label for the editor's textarea (when it is focused).
- */
- ariaLabel?: string;
- /**
- * Render vertical lines at the specified columns.
- * Defaults to empty array.
- */
- rulers?: number[];
- /**
- * 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 true.
- */
- lineNumbers?: 'on' | 'off' | 'relative' | ((lineNumber: number) => string);
- /**
- * 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;
- /**
- * 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 2.
- */
- 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?: string;
- /**
- * Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl.
- * Defaults to false.
- */
- mouseWheelZoom?: boolean;
- /**
- * Control the cursor style, either 'block' or 'line'.
- * Defaults to 'line'.
- */
- cursorStyle?: string;
- /**
- * Enable font ligatures.
- * Defaults to false.
- */
- fontLigatures?: boolean;
- /**
- * Disable the use of `will-change` for the editor margin and lines layers.
- * The usage of `will-change` 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 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';
- /**
- * 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;
- /**
- * Force word wrapping when the text appears to be of a minified/generated file.
- * Defaults to true.
- */
- wordWrapMinified?: boolean;
- /**
- * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'.
- * Defaults to 'same' in vscode and to 'none' in monaco-editor.
- */
- wrappingIndent?: string;
- /**
- * 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;
- /**
- * Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found.
- * Defaults to '.'.
- */
- wordWrapBreakObtrusiveCharacters?: string;
- /**
- * Performance guard: Stop rendering a line after x characters.
- * Defaults to 10000.
- * Use -1 to never stop rendering
- */
- stopRenderingLineAfter?: number;
- /**
- * Enable hover.
- * Defaults to true.
- */
- hover?: boolean;
- /**
- * Enable detecting links and making them clickable.
- * Defaults to true.
- */
- links?: boolean;
- /**
- * 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;
- /**
- * The modifier to be used to add multiple cursors with the mouse.
- * Defaults to 'alt'
- */
- multiCursorModifier?: 'ctrlCmd' | 'alt';
- /**
- * Configure the editor's accessibility support.
- * Defaults to 'auto'. It is best to leave this to 'auto'.
- */
- accessibilitySupport?: 'auto' | 'off' | 'on';
- /**
- * Enable quick suggestions (shadow suggestions)
- * Defaults to true.
- */
- quickSuggestions?: boolean | {
- other: boolean;
- comments: boolean;
- strings: boolean;
- };
- /**
- * Quick suggestions show delay (in ms)
- * Defaults to 500 (ms)
- */
- quickSuggestionsDelay?: number;
- /**
- * Enables parameter hints
- */
- parameterHints?: boolean;
- /**
- * Render icons in suggestions box.
- * Defaults to true.
- */
- iconsInSuggestions?: boolean;
- /**
- * Enable auto closing brackets.
- * Defaults to true.
- */
- autoClosingBrackets?: boolean;
- /**
- * Enable auto indentation adjustment.
- * Defaults to false.
- */
- autoIndent?: 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;
- /**
- * Enable word based suggestions. Defaults to 'true'
- */
- wordBasedSuggestions?: boolean;
- /**
- * 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 selection highlight.
- * Defaults to true.
- */
- selectionHighlight?: boolean;
- /**
- * Enable semantic occurrences highlight.
- * Defaults to true.
- */
- occurrencesHighlight?: boolean;
- /**
- * Show code lens
- * Defaults to true.
- */
- codeLens?: boolean;
- /**
- * Enable code folding
- * Defaults to true in vscode and to false in monaco-editor.
- */
- folding?: 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';
- /**
- * Enable highlighting of matching brackets.
- * Defaults to true.
- */
- matchBrackets?: boolean;
- /**
- * Enable rendering of whitespace.
- * Defaults to none.
- */
- renderWhitespace?: 'none' | 'boundary' | 'all';
- /**
- * Enable rendering of control characters.
- * Defaults to false.
- */
- renderControlCharacters?: boolean;
- /**
- * Enable rendering of indent guides.
- * Defaults to false.
- */
- renderIndentGuides?: boolean;
- /**
- * Enable rendering of current line highlight.
- * Defaults to all.
- */
- renderLineHighlight?: 'none' | 'gutter' | 'line' | 'all';
- /**
- * Inserting and deleting whitespace follows tab stops.
- */
- useTabStops?: boolean;
- /**
- * The font family
- */
- fontFamily?: string;
- /**
- * The font weight
- */
- fontWeight?: 'normal' | 'bold' | 'bolder' | 'lighter' | 'initial' | 'inherit' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
- /**
- * The font size
- */
- fontSize?: number;
- /**
- * The line height
- */
- lineHeight?: number;
- /**
- * The letter spacing
- */
- letterSpacing?: number;
- }
- /**
- * 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;
- /**
- * 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;
- }
- export enum RenderMinimap {
- None = 0,
- Small = 1,
- Large = 2,
- SmallBlocks = 3,
- LargeBlocks = 4,
- }
- /**
- * 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 as the parent.
- */
- Indent = 2,
- }
- /**
- * 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,
- }
- 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 horizontalScrollbarSize: number;
- readonly horizontalSliderSize: number;
- readonly verticalScrollbarSize: number;
- readonly verticalSliderSize: number;
- readonly mouseWheelScrollSensitivity: number;
- }
- export interface InternalEditorMinimapOptions {
- readonly enabled: boolean;
- readonly showSlider: 'always' | 'mouseover';
- readonly renderCharacters: boolean;
- readonly maxColumn: number;
- }
- export interface InternalEditorFindOptions {
- readonly seedSearchStringFromSelection: boolean;
- readonly autoFindInSelection: boolean;
- }
- export interface EditorWrappingInfo {
- readonly inDiffEditor: boolean;
- readonly isDominatedByLongLines: boolean;
- readonly isWordWrapMinified: boolean;
- readonly isViewportWrapping: boolean;
- readonly wrappingColumn: number;
- readonly wrappingIndent: WrappingIndent;
- readonly wordWrapBreakBeforeCharacters: string;
- readonly wordWrapBreakAfterCharacters: string;
- readonly wordWrapBreakObtrusiveCharacters: string;
- }
- export interface InternalEditorViewOptions {
- readonly extraEditorClassName: string;
- readonly disableMonospaceOptimizations: boolean;
- readonly rulers: number[];
- readonly ariaLabel: string;
- readonly renderLineNumbers: boolean;
- readonly renderCustomLineNumbers: (lineNumber: number) => string;
- readonly renderRelativeLineNumbers: boolean;
- readonly selectOnLineNumbers: boolean;
- readonly glyphMargin: boolean;
- readonly revealHorizontalRightPadding: number;
- readonly roundedSelection: boolean;
- readonly overviewRulerLanes: number;
- readonly overviewRulerBorder: boolean;
- readonly cursorBlinking: TextEditorCursorBlinkingStyle;
- readonly mouseWheelZoom: boolean;
- readonly cursorStyle: TextEditorCursorStyle;
- readonly hideCursorInOverviewRuler: boolean;
- readonly scrollBeyondLastLine: boolean;
- readonly stopRenderingLineAfter: number;
- readonly renderWhitespace: 'none' | 'boundary' | 'all';
- readonly renderControlCharacters: boolean;
- readonly fontLigatures: boolean;
- readonly renderIndentGuides: boolean;
- readonly renderLineHighlight: 'none' | 'gutter' | 'line' | 'all';
- readonly scrollbar: InternalEditorScrollbarOptions;
- readonly minimap: InternalEditorMinimapOptions;
- readonly fixedOverflowWidgets: boolean;
- }
- export interface EditorContribOptions {
- readonly selectionClipboard: boolean;
- readonly hover: boolean;
- readonly links: boolean;
- readonly contextmenu: boolean;
- readonly quickSuggestions: boolean | {
- other: boolean;
- comments: boolean;
- strings: boolean;
- };
- readonly quickSuggestionsDelay: number;
- readonly parameterHints: boolean;
- readonly iconsInSuggestions: boolean;
- readonly formatOnType: boolean;
- readonly formatOnPaste: boolean;
- readonly suggestOnTriggerCharacters: boolean;
- readonly acceptSuggestionOnEnter: 'on' | 'smart' | 'off';
- readonly acceptSuggestionOnCommitCharacter: boolean;
- readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none';
- readonly wordBasedSuggestions: boolean;
- readonly suggestFontSize: number;
- readonly suggestLineHeight: number;
- readonly selectionHighlight: boolean;
- readonly occurrencesHighlight: boolean;
- readonly codeLens: boolean;
- readonly folding: boolean;
- readonly showFoldingControls: 'always' | 'mouseover';
- readonly matchBrackets: boolean;
- readonly find: InternalEditorFindOptions;
- }
- /**
- * Internal configuration options (transformed or computed) for the editor.
- */
- export class InternalEditorOptions {
- readonly _internalEditorOptionsBrand: void;
- readonly canUseLayerHinting: boolean;
- readonly pixelRatio: number;
- readonly editorClassName: string;
- readonly lineHeight: number;
- readonly readOnly: boolean;
- readonly multiCursorModifier: 'altKey' | 'ctrlKey' | 'metaKey';
- readonly wordSeparators: string;
- readonly autoClosingBrackets: boolean;
- readonly autoIndent: boolean;
- readonly useTabStops: boolean;
- readonly tabFocusMode: boolean;
- readonly dragAndDrop: boolean;
- readonly emptySelectionClipboard: boolean;
- readonly layoutInfo: EditorLayoutInfo;
- readonly fontInfo: FontInfo;
- readonly viewInfo: InternalEditorViewOptions;
- readonly wrappingInfo: EditorWrappingInfo;
- readonly contribInfo: EditorContribOptions;
- }
- /**
- * 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;
- }
- /**
- * 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;
- /**
- * The height of the glyph margin.
- */
- readonly glyphMarginHeight: number;
- /**
- * Left position for the line numbers.
- */
- readonly lineNumbersLeft: number;
- /**
- * The width of the line numbers.
- */
- readonly lineNumbersWidth: number;
- /**
- * The height of the line numbers.
- */
- readonly lineNumbersHeight: number;
- /**
- * Left position for the line decorations.
- */
- readonly decorationsLeft: number;
- /**
- * The width of the line decorations.
- */
- readonly decorationsWidth: number;
- /**
- * The height of the line decorations.
- */
- readonly decorationsHeight: number;
- /**
- * Left position for the content (actual text)
- */
- readonly contentLeft: number;
- /**
- * The width of the content (actual text)
- */
- readonly contentWidth: number;
- /**
- * The height of the content (actual height)
- */
- readonly contentHeight: number;
- /**
- * The width of the minimap
- */
- readonly minimapWidth: number;
- /**
- * Minimap render type
- */
- readonly renderMinimap: RenderMinimap;
- /**
- * The number of columns (of typical characters) fitting on a viewport line.
- */
- readonly viewportColumn: 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;
- }
- /**
- * An event describing that the configuration of the editor has changed.
- */
- export interface IConfigurationChangedEvent {
- readonly canUseLayerHinting: boolean;
- readonly pixelRatio: boolean;
- readonly editorClassName: boolean;
- readonly lineHeight: boolean;
- readonly readOnly: boolean;
- readonly accessibilitySupport: boolean;
- readonly multiCursorModifier: boolean;
- readonly wordSeparators: boolean;
- readonly autoClosingBrackets: boolean;
- readonly autoIndent: boolean;
- readonly useTabStops: boolean;
- readonly tabFocusMode: boolean;
- readonly dragAndDrop: boolean;
- readonly emptySelectionClipboard: boolean;
- readonly layoutInfo: boolean;
- readonly fontInfo: boolean;
- readonly viewInfo: boolean;
- readonly wrappingInfo: boolean;
- readonly contribInfo: boolean;
- }
- /**
- * 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 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;
- /**
- * 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): number;
- /**
- * Remove a zone
- * @param id A unique identifier to the view zone, as returned by the `addZone` call.
- */
- removeZone(id: number): void;
- /**
- * Change a zone's position.
- * The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone.
- */
- layoutZone(id: number): 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;
- /**
- * 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;
- }
- /**
- * 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;
- }
- /**
- * 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;
- }
- /**
- * 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;
- /**
- * The target type
- */
- readonly type: MouseTargetType;
- /**
- * The 'approximate' editor position
- */
- readonly position: Position;
- /**
- * 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;
- /**
- * Some extra detail.
- */
- readonly detail: any;
- }
- /**
- * A mouse event originating from the editor.
- */
- export interface IEditorMouseEvent {
- readonly event: IMouseEvent;
- readonly target: IMouseTarget;
- }
- /**
- * A rich code editor.
- */
- export interface ICodeEditor extends ICommonCodeEditor {
- /**
- * 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: IEditorMouseEvent) => 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 scroll in the editor has changed.
- * @event
- */
- onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable;
- /**
- * Returns the editor's dom node
- */
- getDomNode(): HTMLElement;
- /**
- * 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 appropiately.
- */
- 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 appropiately.
- */
- 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;
- /**
- * Returns the range that is currently centered in the view port.
- */
- getCenteredRangeInViewport(): Range;
- /**
- * 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(): void;
- /**
- * 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;
- /**
- * 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;
- /**
- * 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 innacurate for positions that are outside the current editor viewport.
- */
- getScrolledVisiblePosition(position: IPosition): {
- top: number;
- left: number;
- height: number;
- };
- /**
- * Apply the same font settings as the editor to `target`.
- */
- applyFontInfo(target: HTMLElement): void;
- }
- /**
- * A rich diff editor.
- */
- export interface IDiffEditor extends ICommonDiffEditor {
- /**
- * @see ICodeEditor.getDomNode
- */
- getDomNode(): HTMLElement;
- }
- export class FontInfo extends BareFontInfo {
- readonly _editorStylingBrand: void;
- readonly isTrusted: boolean;
- readonly isMonospace: boolean;
- readonly typicalHalfwidthCharacterWidth: number;
- readonly typicalFullwidthCharacterWidth: number;
- readonly spaceWidth: number;
- readonly maxDigitWidth: number;
- }
- export class BareFontInfo {
- readonly _bareFontInfoBrand: void;
- readonly zoomLevel: number;
- readonly fontFamily: string;
- readonly fontWeight: string;
- readonly fontSize: number;
- readonly lineHeight: number;
- readonly letterSpacing: number;
- }
- }
- declare module 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[];
- /**
- * 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;
- }
- /**
- * 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;
- }
- /**
- * Set the tokens provider for a language (manual implementation).
- */
- export function setTokensProvider(languageId: string, provider: TokensProvider): IDisposable;
- /**
- * Set the tokens provider for a language (monarch implementation).
- */
- export function setMonarchTokensProvider(languageId: string, languageDef: 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. paremeter 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 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;
- /**
- * Contains additional diagnostic information about the context in which
- * a [code action](#CodeActionProvider.provideCodeActions) is run.
- */
- export interface CodeActionContext {
- /**
- * An array of diagnostics.
- *
- * @readonly
- */
- readonly markers: editor.IMarkerData[];
- }
- /**
- * 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.IReadOnlyModel, range: Range, context: CodeActionContext, token: CancellationToken): CodeAction[] | Thenable<CodeAction[]>;
- }
- /**
- * Completion item kinds.
- */
- export enum CompletionItemKind {
- Text = 0,
- Method = 1,
- Function = 2,
- Constructor = 3,
- Field = 4,
- Variable = 5,
- Class = 6,
- Interface = 7,
- Module = 8,
- Property = 9,
- Unit = 10,
- Value = 11,
- Enum = 12,
- Keyword = 13,
- Snippet = 14,
- Color = 15,
- File = 16,
- Reference = 17,
- Folder = 18,
- }
- /**
- * A snippet string is a template which allows to insert text
- * and to control the editor cursor when insertion happens.
- *
- * A snippet can define tab stops and placeholders with `$1`, `$2`
- * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
- * the end of the snippet. Variables are defined with `$name` and
- * `${name:default value}`. The full snippet syntax is documented
- * [here](http://code.visualstudio.com/docs/editor/userdefinedsnippets#_creating-your-own-snippets).
- */
- export interface SnippetString {
- /**
- * The snippet string.
- */
- value: string;
- }
- /**
- * 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;
- /**
- * The kind of this completion item. Based on the kind
- * an icon is chosen by the editor.
- */
- kind: CompletionItemKind;
- /**
- * 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;
- /**
- * 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;
- /**
- * A string or snippet that should be inserted in a document when selecting
- * this completion. When `falsy` the [label](#CompletionItem.label)
- * is used.
- */
- insertText?: string | SnippetString;
- /**
- * 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?: Range;
- /**
- * @deprecated **Deprecated** in favor of `CompletionItem.insertText` and `CompletionItem.range`.
- *
- * ~~An [edit](#TextEdit) which is applied to a document when selecting
- * this completion. When an edit is provided the value of
- * [insertText](#CompletionItem.insertText) is ignored.~~
- *
- * ~~The [range](#Range) of the edit must be single-line and on the same
- * line completions were [requested](#CompletionItemProvider.provideCompletionItems) at.~~
- */
- textEdit?: editor.ISingleEditOperation;
- }
- /**
- * Represents a collection of [completion items](#CompletionItem) to be presented
- * in the editor.
- */
- export interface CompletionList {
- /**
- * This list it not complete. Further typing should result in recomputing
- * this list.
- */
- isIncomplete?: boolean;
- /**
- * The completion items.
- */
- items: CompletionItem[];
- }
- /**
- * 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.IReadOnlyModel, position: Position, token: CancellationToken): CompletionItem[] | Thenable<CompletionItem[]> | CompletionList | Thenable<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): CompletionItem | Thenable<CompletionItem>;
- }
- /**
- * Describes how comments for a language work.
- */
- export interface CommentRule {
- /**
- * The line comment token, like `// this is a comment`
- */
- lineComment?: string;
- /**
- * The block comment character pair, like `/* block comment */`
- */
- blockComment?: CharacterPair;
- }
- /**
- * 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[];
- /**
- * **Deprecated** Do not use.
- *
- * @deprecated Will be replaced by a better API soon.
- */
- __electricCharacterSupport?: IBracketElectricCharacterContribution;
- }
- /**
- * Describes indentation rules for a language.
- */
- export interface IndentationRule {
- /**
- * If a line matches this pattern, then all the lines after it should be unindendented 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;
- /**
- * 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;
- }
- /**
- * 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;
- /**
- * The action to execute.
- */
- action: EnterAction;
- }
- export interface IBracketElectricCharacterContribution {
- docComment?: IDocComment;
- }
- /**
- * 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;
- /**
- * Describe whether to outdent current line.
- */
- outdentCurrentLine?: boolean;
- /**
- * 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 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: MarkedString[];
- /**
- * 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.IReadOnlyModel, position: Position, token: CancellationToken): Hover | Thenable<Hover>;
- }
- /**
- * Interface used to quick fix typing errors while accesing member fields.
- */
- export interface CodeAction {
- command: Command;
- score: number;
- }
- /**
- * 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;
- /**
- * The human-readable doc-comment of this signature. Will be shown
- * in the UI but can be omitted.
- */
- documentation?: string;
- }
- /**
- * 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;
- /**
- * The parameters of this signature.
- */
- parameters: ParameterInformation[];
- }
- /**
- * 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;
- }
- /**
- * 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 {
- signatureHelpTriggerCharacters: string[];
- /**
- * Provide help for the signature at the given position and document.
- */
- provideSignatureHelp(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): SignatureHelp | Thenable<SignatureHelp>;
- }
- /**
- * 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.IReadOnlyModel, position: Position, token: CancellationToken): DocumentHighlight[] | Thenable<DocumentHighlight[]>;
- }
- /**
- * 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.IReadOnlyModel, position: Position, context: ReferenceContext, token: CancellationToken): Location[] | Thenable<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;
- }
- /**
- * The definition of a symbol represented as one or many [locations](#Location).
- * For most programming languages there is only one location at which a symbol is
- * defined.
- */
- export type Definition = Location | Location[];
- /**
- * 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.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable<Definition>;
- }
- /**
- * 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.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable<Definition>;
- }
- /**
- * 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.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable<Definition>;
- }
- /**
- * 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,
- }
- /**
- * Represents information about programming constructs like variables, classes,
- * interfaces etc.
- */
- export interface SymbolInformation {
- /**
- * The name of this symbol.
- */
- name: string;
- /**
- * The name of the symbol containing this symbol.
- */
- containerName?: string;
- /**
- * The kind of this symbol.
- */
- kind: SymbolKind;
- /**
- * The location of this symbol.
- */
- location: Location;
- }
- /**
- * The document symbol provider interface defines the contract between extensions and
- * the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_goto-symbol)-feature.
- */
- export interface DocumentSymbolProvider {
- /**
- * Provide symbol information for the given document.
- */
- provideDocumentSymbols(model: editor.IReadOnlyModel, token: CancellationToken): SymbolInformation[] | Thenable<SymbolInformation[]>;
- }
- export interface 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 {
- /**
- * Provide formatting edits for a whole document.
- */
- provideDocumentFormattingEdits(model: editor.IReadOnlyModel, options: FormattingOptions, token: CancellationToken): TextEdit[] | Thenable<TextEdit[]>;
- }
- /**
- * The document formatting provider interface defines the contract between extensions and
- * the formatting-feature.
- */
- export interface DocumentRangeFormattingEditProvider {
- /**
- * 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.IReadOnlyModel, range: Range, options: FormattingOptions, token: CancellationToken): TextEdit[] | Thenable<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.IReadOnlyModel, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): TextEdit[] | Thenable<TextEdit[]>;
- }
- /**
- * A link inside the editor.
- */
- export interface ILink {
- range: IRange;
- url: string;
- }
- /**
- * A provider of links.
- */
- export interface LinkProvider {
- provideLinks(model: editor.IReadOnlyModel, token: CancellationToken): ILink[] | Thenable<ILink[]>;
- resolveLink?: (link: ILink, token: CancellationToken) => ILink | Thenable<ILink>;
- }
- export interface IResourceEdit {
- resource: Uri;
- range: IRange;
- newText: string;
- }
- export interface WorkspaceEdit {
- edits: IResourceEdit[];
- rejectReason?: string;
- }
- export interface RenameProvider {
- provideRenameEdits(model: editor.IReadOnlyModel, position: Position, newName: string, token: CancellationToken): WorkspaceEdit | Thenable<WorkspaceEdit>;
- }
- export interface Command {
- id: string;
- title: string;
- tooltip?: string;
- arguments?: any[];
- }
- export interface ICodeLensSymbol {
- range: IRange;
- id?: string;
- command?: Command;
- }
- export interface CodeLensProvider {
- onDidChange?: IEvent<this>;
- provideCodeLenses(model: editor.IReadOnlyModel, token: CancellationToken): ICodeLensSymbol[] | Thenable<ICodeLensSymbol[]>;
- resolveCodeLens?(model: editor.IReadOnlyModel, codeLens: ICodeLensSymbol, token: CancellationToken): ICodeLensSymbol | Thenable<ICodeLensSymbol>;
- }
- export interface ILanguageExtensionPoint {
- id: string;
- extensions?: string[];
- filenames?: string[];
- filenamePatterns?: string[];
- firstLine?: string;
- aliases?: string[];
- mimetypes?: string[];
- configuration?: string;
- }
- /**
- * A Monarch language definition
- */
- export interface IMonarchLanguage {
- /**
- * map from string to ILanguageRule[]
- */
- tokenizer: {
- [name: string]: IMonarchLanguageRule[];
- };
- /**
- * is the language case insensitive?
- */
- ignoreCase?: 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 interface IMonarchLanguageRule {
- /**
- * 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;
- }
- /**
- * An action is either an array of actions...
- * ... or a case statement with guards...
- * ... or a basic action with a token value.
- */
- export interface IMonarchLanguageAction {
- /**
- * 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 (useing the mimetype) or get out using "@pop"
- */
- nextEmbedded?: string;
- /**
- * log a message to the browser console window
- */
- log?: string;
- }
- /**
- * This interface can be shortened as an array, ie. ['{','}','delimiter.curly']
- */
- export interface IMonarchLanguageBracket {
- /**
- * open bracket
- */
- open: string;
- /**
- * closeing bracket
- */
- close: string;
- /**
- * token class
- */
- token: string;
- }
- }
- declare module monaco.worker {
- export interface IMirrorModel {
- readonly uri: Uri;
- readonly version: number;
- getValue(): string;
- }
- export interface IWorkerContext {
- /**
- * Get all available mirror models in this worker.
- */
- getMirrorModels(): IMirrorModel[];
- }
- }
- declare module monaco.languages.typescript {
- enum ModuleKind {
- None = 0,
- CommonJS = 1,
- AMD = 2,
- UMD = 3,
- System = 4,
- ES2015 = 5,
- }
- enum JsxEmit {
- None = 0,
- Preserve = 1,
- React = 2,
- }
- enum NewLineKind {
- CarriageReturnLineFeed = 0,
- LineFeed = 1,
- }
- enum ScriptTarget {
- ES3 = 0,
- ES5 = 1,
- ES2015 = 2,
- ES2016 = 3,
- ES2017 = 4,
- ESNext = 5,
- Latest = 5,
- }
- export enum ModuleResolutionKind {
- Classic = 1,
- NodeJs = 2,
- }
- type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[];
- interface CompilerOptions {
- allowJs?: boolean;
- allowSyntheticDefaultImports?: boolean;
- allowUnreachableCode?: boolean;
- allowUnusedLabels?: boolean;
- alwaysStrict?: boolean;
- baseUrl?: string;
- charset?: string;
- declaration?: boolean;
- declarationDir?: string;
- disableSizeLimit?: boolean;
- emitBOM?: boolean;
- emitDecoratorMetadata?: boolean;
- experimentalDecorators?: boolean;
- forceConsistentCasingInFileNames?: boolean;
- importHelpers?: boolean;
- inlineSourceMap?: boolean;
- inlineSources?: boolean;
- isolatedModules?: boolean;
- jsx?: JsxEmit;
- lib?: string[];
- locale?: string;
- mapRoot?: string;
- maxNodeModuleJsDepth?: number;
- module?: ModuleKind;
- moduleResolution?: ModuleResolutionKind;
- newLine?: NewLineKind;
- noEmit?: boolean;
- noEmitHelpers?: boolean;
- noEmitOnError?: boolean;
- noErrorTruncation?: boolean;
- noFallthroughCasesInSwitch?: boolean;
- noImplicitAny?: boolean;
- noImplicitReturns?: boolean;
- noImplicitThis?: boolean;
- noUnusedLocals?: boolean;
- noUnusedParameters?: boolean;
- noImplicitUseStrict?: boolean;
- noLib?: boolean;
- noResolve?: boolean;
- out?: string;
- outDir?: string;
- outFile?: string;
- preserveConstEnums?: boolean;
- project?: string;
- reactNamespace?: string;
- jsxFactory?: string;
- removeComments?: boolean;
- rootDir?: string;
- rootDirs?: string[];
- skipLibCheck?: boolean;
- skipDefaultLibCheck?: boolean;
- sourceMap?: boolean;
- sourceRoot?: string;
- strictNullChecks?: boolean;
- suppressExcessPropertyErrors?: boolean;
- suppressImplicitAnyIndexErrors?: boolean;
- target?: ScriptTarget;
- traceResolution?: boolean;
- types?: string[];
- /** Paths used to compute primary types search locations */
- typeRoots?: string[];
- [option: string]: CompilerOptionsValue | undefined;
- }
- export interface DiagnosticsOptions {
- noSemanticValidation?: boolean;
- noSyntaxValidation?: boolean;
- }
- export interface LanguageServiceDefaults {
- /**
- * Add an additional source file to the language service. Use this
- * for typescript (definition) files that won't be loaded as editor
- * document, like `jquery.d.ts`.
- *
- * @param content The file content
- * @param filePath An optional file path
- * @returns A disposabled which will remove the file from the
- * language service upon disposal.
- */
- addExtraLib(content: string, filePath?: string): IDisposable;
- /**
- * Set TypeScript compiler options.
- */
- setCompilerOptions(options: CompilerOptions): void;
- /**
- * Configure whether syntactic and/or semantic validation should
- * be performed
- */
- setDiagnosticsOptions(options: DiagnosticsOptions): void;
- /**
- * Configure when the worker shuts down. By default that is 2mins.
- *
- * @param value The maximun idle time in milliseconds. Values less than one
- * mean never shut down.
- */
- setMaximunWorkerIdleTime(value: number): void;
- /**
- * Configure if all existing models should be eagerly sync'd
- * to the worker on start or restart.
- */
- setEagerModelSync(value: boolean): void;
- }
- export var typescriptDefaults: LanguageServiceDefaults;
- export var javascriptDefaults: LanguageServiceDefaults;
- export var getTypeScriptWorker: () => monaco.Promise<any>;
- export var getJavaScriptWorker: () => monaco.Promise<any>;
- }
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- declare module monaco.languages.css {
- export interface DiagnosticsOptions {
- readonly validate?: boolean;
- readonly lint?: {
- readonly compatibleVendorPrefixes?: 'ignore' | 'warning' | 'error',
- readonly vendorPrefix?: 'ignore' | 'warning' | 'error',
- readonly duplicateProperties?: 'ignore' | 'warning' | 'error',
- readonly emptyRules?: 'ignore' | 'warning' | 'error',
- readonly importStatement?: 'ignore' | 'warning' | 'error',
- readonly boxModel?: 'ignore' | 'warning' | 'error',
- readonly universalSelector?: 'ignore' | 'warning' | 'error',
- readonly zeroUnits?: 'ignore' | 'warning' | 'error',
- readonly fontFaceProperties?: 'ignore' | 'warning' | 'error',
- readonly hexColorLength?: 'ignore' | 'warning' | 'error',
- readonly argumentsInColorFunction?: 'ignore' | 'warning' | 'error',
- readonly unknownProperties?: 'ignore' | 'warning' | 'error',
- readonly ieHack?: 'ignore' | 'warning' | 'error',
- readonly unknownVendorSpecificProperties?: 'ignore' | 'warning' | 'error',
- readonly propertyIgnoredDueToDisplay?: 'ignore' | 'warning' | 'error',
- readonly important?: 'ignore' | 'warning' | 'error',
- readonly float?: 'ignore' | 'warning' | 'error',
- readonly idSelector?: 'ignore' | 'warning' | 'error'
- }
- }
- export interface LanguageServiceDefaults {
- readonly onDidChange: IEvent<LanguageServiceDefaults>;
- readonly diagnosticsOptions: DiagnosticsOptions;
- setDiagnosticsOptions(options: DiagnosticsOptions): void;
- }
- export var cssDefaults: LanguageServiceDefaults;
- export var lessDefaults: LanguageServiceDefaults;
- export var scssDefaults: LanguageServiceDefaults;
- }
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- declare module monaco.languages.json {
- export interface DiagnosticsOptions {
- /**
- * If set, the validator will be enabled and perform syntax validation as well as schema based validation.
- */
- readonly validate?: boolean;
- /**
- * If set, comments are tolerated. If set to false, syntax errors will be emmited for comments.
- */
- readonly allowComments?: boolean;
- /**
- * A list of known schemas and/or associations of schemas to file names.
- */
- readonly schemas?: {
- /**
- * The URI of the schema, which is also the identifier of the schema.
- */
- readonly uri: string;
- /**
- * A list of file names that are associated to the schema. The '*' wildcard can be used. For example '*.schema.json', 'package.json'
- */
- readonly fileMatch?: string[];
- /**
- * The schema for the given URI.
- */
- readonly schema?: any;
- }[];
- }
- export interface LanguageServiceDefaults {
- readonly onDidChange: IEvent<LanguageServiceDefaults>;
- readonly diagnosticsOptions: DiagnosticsOptions;
- setDiagnosticsOptions(options: DiagnosticsOptions): void;
- }
- export var jsonDefaults: LanguageServiceDefaults;
- }
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- declare module monaco.languages.html {
- export interface HTMLFormatConfiguration {
- readonly tabSize: number;
- readonly insertSpaces: boolean;
- readonly wrapLineLength: number;
- readonly unformatted: string;
- readonly contentUnformatted: string;
- readonly indentInnerHtml: boolean;
- readonly preserveNewLines: boolean;
- readonly maxPreserveNewLines: number;
- readonly indentHandlebars: boolean;
- readonly endWithNewline: boolean;
- readonly extraLiners: string;
- readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline';
- }
- export interface CompletionConfiguration {
- [provider: string]: boolean;
- }
- export interface Options {
- /**
- * If set, comments are tolerated. If set to false, syntax errors will be emmited for comments.
- */
- readonly format?: HTMLFormatConfiguration;
- /**
- * A list of known schemas and/or associations of schemas to file names.
- */
- readonly suggest?: CompletionConfiguration;
- }
- export interface LanguageServiceDefaults {
- readonly onDidChange: IEvent<LanguageServiceDefaults>;
- readonly options: Options;
- setOptions(options: Options): void;
- }
- export var htmlDefaults: LanguageServiceDefaults;
- export var handlebarDefaults: LanguageServiceDefaults;
- export var razorDefaults: LanguageServiceDefaults;
- }
|