ThisistherepositoryforthebackendofTabNine,theall-languageautocompleter.Therearenosourcefilesherebecausethebackendisclosedsource.
Youcanmakefeaturerequestsbyfilinganissue.Youarealsowelcometomakepullrequestsforchangestotheconfigurationfiles.
languages.ymldetermineswhichfileextensionsareconsideredpartofthesamelanguage.(Forexample,identifiersfrom.cfileswillbesuggestedin.hfiles.)
language_tokenization.jsondetermineshowlanguagesaretokenized.Forexample,identifierscancontaindashesinLisp,butnotinJava.
Ifyourfeaturerequestisspecifictoaparticulareditor'sTabNineclient,pleasefileanissueinoneoftheserepositories:
VSCodeSublimeTextVimAtomYoumaybeinterestedintheseTabNineclientswrittenbythirdparties:
NOTE:Codotaisnotvalidatinganycodeinthosepluginsandisnotresponsibleforthembyanymeans.
EmacsVim(Deoplete)EclipseYourclienthttps://github.com/codota/TabNine/blob/master/HowToWriteAClient.mdChangelogsIfnewfeaturesdon'tworkforyou,checkthatyouhavethemostrecentversionbytypingTabNine::versionintoyourtexteditor.Ifyoudon'thavethemostrecentversion,tryrestartingyoureditor.
2.3.0-2.3.7(Febuary10,2020)PreventingexcessiveCPUandmemoryconsumption2.2.0-2.2.2(January8,2020)SwitchfromselfsignedcertificatetoLet'sEncryptFixLSPconfigurationforGoLangandClang2.1.0(August24,2019)TabNineLocalisnowenabledbydefault2.0.0—2.0.10(July15—August20,2019)DeepTabNineCandownloadandrunTabNineLocalmodelsCanconnecttoTabNineCloudSimplifiedbracketpairinglogicSimplifiedfilesystemeventhandlingAddedaconfigurationpanelforviewingsettingsandlogswhichcanbeaccessedbytypingTabNine::config1.0.14(May16,2019)TabNinenolongerwatchesforfilesystemeventsinignoreddirectories(closes#43).TabNinenowwaitsuntilacompletionisrequestedtostartthelanguageserver(closes#50).Fileswiththe.dextensionarenowrecognizedasDsourcefiles(closes#56).AddedLSPdefaultconfigurationforPureScript.Fixedalogicerrorthatcausedindexsizetobetrackedincorrectlyinsomecases.1.0.10(December1,2018)Fixedaninternallogicerrorwhichcouldputindexingthreadsintoabadstate,leadingtoaninfiniteloop(mightclose#24,we'llsee).TabNinenowconsidersawiderrangeofpossibilitieswhencompletinginazero-charcontext(i.e.whentherearenocharactersimmediatelybeforethecursor).TabNinenowincludes-inidentifierswhenparsingRacketcode.1.0.9(November27,2018)TabNinenowusesthecontextafterthecursortofilteritssuggestions.Forexample,iftherearetokensonthesamelineasthecursor,TabNinewillnotmakeasuggestionendinginasemicolon(unlesstherearealreadyinstancesinthecodebaseofsemicolonsoccurringinthemiddleofaline).TabNineremovestokensmatchingtheregex\d.*[a-zA-Z].*\d.*[a-zA-Z]fromtheprojectindex.Thisissupposedtopreventlongkeysorbase64literalsfromoccurringinautocompletionsuggestions.Thetokensarenotfilteredfromthedirectoryindexorthefileindex.TabNinenowrecognizes.tsxfilesasTypeScriptratherthan.xml(closes#21).TabNineonlychecksitsversiondirectory,notitstargetdirectory,whenauto-updatingorwritingregistrationkeys.(ThisfixesanissueassociatedwithDOSpathshortening.)1.0.7(November20,2018)Semanticcompletionisadded!ThisallowsTabNinetointegratewithanylanguageserverthatimplementstheLanguageServerProtocol.TabNinewillintegratethelanguageserver'ssuggestionswithitsown.Forexample,TabNinecansuggestmulti-tokencompletionswherethefirsttokenisprovidedbythelanguageserver.TabNinequeriesthelanguageserverasynchronously.So,ifthelanguageserverisslow,youwillseeTabNine'sresultsonly.Continuetypingtoseethelanguageserver'sresults.TabNinepassesalonganytypeinformationordocumentationprovidedbythelanguageserver.(TheSublimeandVSCodeclientsarenotyetupdatedtodisplaythedocumentation;thisiscomingsoon.)Seethesemanticcompletionguideforconfigurationhelp.Paidindexsizelimitincreasedto100MB(from15MB).Freeindexsizelimitincreasedto400KB(from200KB).Improvedindexingperformance.Increasedlicensepriceto$49/$99personal/business(from$29/$89).TabNinenowprovidesclosingbracketsforitssuggestions(soifitsuggestsfoo(itwilladditionallyinsert)totherightofthecursoroncethesuggestionisaccepted).TheeditorclientsdonotsupportthisyetasitrequiresanupgradetothecommunicationprotocolwithTabNine;thisiscomingsoon.Closes#11asthisisnolongeranissuewiththeTabNinebackend.TabNinenowsearchesallparentstofindtheprojectrootratherthanstoppingatthefirst.git.ThispermitsnestedGitrepositories(closes#5).TabNineprovidesanAPIcalltogettheregexitusestofindidentifiers(closes#7).TabNinenolongerindexesfilesin.git(closes#8).TabNinenowrespects.tabnineignorefiles(closes#15).TabNineallowsdisablingauto-updatebytypingTabNine::disable_auto_updateintoyourtexteditor(closes#14).TabNinenolongerstoresregistrationkeysandconfiginsamedirectorywhereitisinstalled.Thisshouldpreventregistrationkeysandconfigfrombeingoverwrittenbyclientupdates(closes#10).YoucantypeTabNine::config_dirtoseewhereconfigfilesarebeingstored.
评论