diff --git a/src/plantuml/intellisense/languageCompletion.ts b/src/plantuml/intellisense/languageCompletion.ts index e420d30..83495c3 100644 --- a/src/plantuml/intellisense/languageCompletion.ts +++ b/src/plantuml/intellisense/languageCompletion.ts @@ -1,6 +1,14 @@ import * as vscode from 'vscode'; -const preDefinedWords = ";type\n;29\nabstract\nactor\nagent\narchimate\nartifact\nboundary\ncard\nclass\ncloud\ncomponent\ncontrol\ndatabase\ndiamond\nentity\nenum\nfile\nfolder\nframe\ninterface\nnode\nobject\npackage\nparticipant\nqueue\nrectangle\nstack\nstate\nstorage\nusecase\n\n;keyword\n;71\n@enddot\n@endsalt\n@enduml\n@startdot\n@startsalt\n@startuml\nactivate\nagain\nallow_mixing\nallowmixing\nalso\nalt\nas\nautonumber\nbottom\nbox\nbreak\ncaption\ncenter\ncreate\ncritical\ndeactivate\ndestroy\ndown\nelse\nelseif\nend\nendif\nendwhile\nfootbox\nfooter\nfork\ngroup\nheader\nhide\nhnote\nif\nis\nkill\nleft\nlegend\nlink\nloop\nnamespace\nnewpage\nnote\nof\non\nopt\norder\nover\npackage\npage\npar\npartition\nref\nrepeat\nreturn\nright\nrnote\nrotate\nshow\nskin\nskinparam\nstart\nstop\ntitle\ntop\ntop to bottom direction\nup\nwhile\n\n;preprocessor\n;12\n!define\n!definelong\n!else\n!enddefinelong\n!endif\n!exit\n!if\n!ifdef\n!ifndef\n!include\n!pragma\n!undef\n\n;skinparameter\n;514\nActivityBackgroundColor\nActivityBarColor\nActivityBorderColor\nActivityBorderThickness\nActivityDiamondBackgroundColor\nActivityDiamondBorderColor\nActivityDiamondFontColor\nActivityDiamondFontName\nActivityDiamondFontSize\nActivityDiamondFontStyle\nActivityEndColor\nActivityFontColor\nActivityFontName\nActivityFontSize\nActivityFontStyle\nActivityStartColor\nActorBackgroundColor\nActorBorderColor\nActorFontColor\nActorFontName\nActorFontSize\nActorFontStyle\nActorStereotypeFontColor\nActorStereotypeFontName\nActorStereotypeFontSize\nActorStereotypeFontStyle\nAgentBackgroundColor\nAgentBorderColor\nAgentBorderThickness\nAgentFontColor\nAgentFontName\nAgentFontSize\nAgentFontStyle\nAgentStereotypeFontColor\nAgentStereotypeFontName\nAgentStereotypeFontSize\nAgentStereotypeFontStyle\nArrowColor\nArrowFontColor\nArrowFontName\nArrowFontSize\nArrowFontStyle\nArrowLollipopColor\nArrowMessageAlignment\nArrowThickness\nArtifactBackgroundColor\nArtifactBorderColor\nArtifactFontColor\nArtifactFontName\nArtifactFontSize\nArtifactFontStyle\nArtifactStereotypeFontColor\nArtifactStereotypeFontName\nArtifactStereotypeFontSize\nArtifactStereotypeFontStyle\nBackgroundColor\nBiddableBackgroundColor\nBiddableBorderColor\nBoundaryBackgroundColor\nBoundaryBorderColor\nBoundaryFontColor\nBoundaryFontName\nBoundaryFontSize\nBoundaryFontStyle\nBoundaryStereotypeFontColor\nBoundaryStereotypeFontName\nBoundaryStereotypeFontSize\nBoundaryStereotypeFontStyle\nBoxPadding\nCaptionFontColor\nCaptionFontName\nCaptionFontSize\nCaptionFontStyle\nCardBackgroundColor\nCardBorderColor\nCardBorderThickness\nCardFontColor\nCardFontName\nCardFontSize\nCardFontStyle\nCardStereotypeFontColor\nCardStereotypeFontName\nCardStereotypeFontSize\nCardStereotypeFontStyle\nCircledCharacterFontColor\nCircledCharacterFontName\nCircledCharacterFontSize\nCircledCharacterFontStyle\nCircledCharacterRadius\nClassAttributeFontColor\nClassAttributeFontName\nClassAttributeFontSize\nClassAttributeFontStyle\nClassAttributeIconSize\nClassBackgroundColor\nClassBorderColor\nClassBorderThickness\nClassFontColor\nClassFontName\nClassFontSize\nClassFontStyle\nClassHeaderBackgroundColor\nClassStereotypeFontColor\nClassStereotypeFontName\nClassStereotypeFontSize\nClassStereotypeFontStyle\nCloudBackgroundColor\nCloudBorderColor\nCloudFontColor\nCloudFontName\nCloudFontSize\nCloudFontStyle\nCloudStereotypeFontColor\nCloudStereotypeFontName\nCloudStereotypeFontSize\nCloudStereotypeFontStyle\nCollectionsBackgroundColor\nCollectionsBorderColor\nColorArrowSeparationSpace\nComponentBackgroundColor\nComponentBorderColor\nComponentBorderThickness\nComponentFontColor\nComponentFontName\nComponentFontSize\nComponentFontStyle\nComponentStereotypeFontColor\nComponentStereotypeFontName\nComponentStereotypeFontSize\nComponentStereotypeFontStyle\nComponentStyle\nConditionStyle\nControlBackgroundColor\nControlBorderColor\nControlFontColor\nControlFontName\nControlFontSize\nControlFontStyle\nControlStereotypeFontColor\nControlStereotypeFontName\nControlStereotypeFontSize\nControlStereotypeFontStyle\nDatabaseBackgroundColor\nDatabaseBorderColor\nDatabaseFontColor\nDatabaseFontName\nDatabaseFontSize\nDatabaseFontStyle\nDatabaseStereotypeFontColor\nDatabaseStereotypeFontName\nDatabaseStereotypeFontSize\nDatabaseStereotypeFontStyle\nDefaultFontColor\nDefaultFontName\nDefaultFontSize\nDefaultFontStyle\nDefaultMonospacedFontName\nDefaultTextAlignment\nDesignedBackgroundColor\nDesignedBorderColor\nDesignedDomainBorderThickness\nDesignedDomainFontColor\nDesignedDomainFontName\nDesignedDomainFontSize\nDesignedDomainFontStyle\nDesignedDomainStereotypeFontColor\nDesignedDomainStereotypeFontName\nDesignedDomainStereotypeFontSize\nDesignedDomainStereotypeFontStyle\nDiagramBorderColor\nDiagramBorderThickness\nDomainBackgroundColor\nDomainBorderColor\nDomainBorderThickness\nDomainFontColor\nDomainFontName\nDomainFontSize\nDomainFontStyle\nDomainStereotypeFontColor\nDomainStereotypeFontName\nDomainStereotypeFontSize\nDomainStereotypeFontStyle\nDpi\nEntityBackgroundColor\nEntityBorderColor\nEntityFontColor\nEntityFontName\nEntityFontSize\nEntityFontStyle\nEntityStereotypeFontColor\nEntityStereotypeFontName\nEntityStereotypeFontSize\nEntityStereotypeFontStyle\nFileBackgroundColor\nFileBorderColor\nFileFontColor\nFileFontName\nFileFontSize\nFileFontStyle\nFileStereotypeFontColor\nFileStereotypeFontName\nFileStereotypeFontSize\nFileStereotypeFontStyle\nFolderBackgroundColor\nFolderBorderColor\nFolderFontColor\nFolderFontName\nFolderFontSize\nFolderFontStyle\nFolderStereotypeFontColor\nFolderStereotypeFontName\nFolderStereotypeFontSize\nFolderStereotypeFontStyle\nFooterFontColor\nFooterFontName\nFooterFontSize\nFooterFontStyle\nFrameBackgroundColor\nFrameBorderColor\nFrameFontColor\nFrameFontName\nFrameFontSize\nFrameFontStyle\nFrameStereotypeFontColor\nFrameStereotypeFontName\nFrameStereotypeFontSize\nFrameStereotypeFontStyle\nGenericDisplay\nGuillemet\nHandwritten\nHeaderFontColor\nHeaderFontName\nHeaderFontSize\nHeaderFontStyle\nHyperlinkColor\nHyperlinkUnderline\nIconIEMandatoryColor\nIconPackageBackgroundColor\nIconPackageColor\nIconPrivateBackgroundColor\nIconPrivateColor\nIconProtectedBackgroundColor\nIconProtectedColor\nIconPublicBackgroundColor\nIconPublicColor\nInterfaceBackgroundColor\nInterfaceBorderColor\nInterfaceFontColor\nInterfaceFontName\nInterfaceFontSize\nInterfaceFontStyle\nInterfaceStereotypeFontColor\nInterfaceStereotypeFontName\nInterfaceStereotypeFontSize\nInterfaceStereotypeFontStyle\nLegendBackgroundColor\nLegendBorderColor\nLegendBorderThickness\nLegendFontColor\nLegendFontName\nLegendFontSize\nLegendFontStyle\nLexicalBackgroundColor\nLexicalBorderColor\nLinetype\nMachineBackgroundColor\nMachineBorderColor\nMachineBorderThickness\nMachineFontColor\nMachineFontName\nMachineFontSize\nMachineFontStyle\nMachineStereotypeFontColor\nMachineStereotypeFontName\nMachineStereotypeFontSize\nMachineStereotypeFontStyle\nMaxAsciiMessageLength\nMaxMessageSize\nMinClassWidth\nMonochrome\nNodeBackgroundColor\nNodeBorderColor\nNodeFontColor\nNodeFontName\nNodeFontSize\nNodeFontStyle\nNodeStereotypeFontColor\nNodeStereotypeFontName\nNodeStereotypeFontSize\nNodeStereotypeFontStyle\nNodesep\nNoteBackgroundColor\nNoteBorderColor\nNoteBorderThickness\nNoteFontColor\nNoteFontName\nNoteFontSize\nNoteFontStyle\nNoteShadowing\nNoteTextAlignment\nObjectAttributeFontColor\nObjectAttributeFontName\nObjectAttributeFontSize\nObjectAttributeFontStyle\nObjectBackgroundColor\nObjectBorderColor\nObjectBorderThickness\nObjectFontColor\nObjectFontName\nObjectFontSize\nObjectFontStyle\nObjectStereotypeFontColor\nObjectStereotypeFontName\nObjectStereotypeFontSize\nObjectStereotypeFontStyle\nPackageBackgroundColor\nPackageBorderColor\nPackageBorderThickness\nPackageFontColor\nPackageFontName\nPackageFontSize\nPackageFontStyle\nPackageStereotypeFontColor\nPackageStereotypeFontName\nPackageStereotypeFontSize\nPackageStereotypeFontStyle\nPackageStyle\nPackageTitleAlignment\nPadding\nPageBorderColor\nPageExternalColor\nPageMargin\nParticipantBackgroundColor\nParticipantBorderColor\nParticipantFontColor\nParticipantFontName\nParticipantFontSize\nParticipantFontStyle\nParticipantPadding\nPartitionBackgroundColor\nPartitionBorderColor\nPartitionBorderThickness\nPartitionFontColor\nPartitionFontName\nPartitionFontSize\nPartitionFontStyle\nPathHoverColor\nQueueBackgroundColor\nQueueBorderColor\nQueueFontColor\nQueueFontName\nQueueFontSize\nQueueFontStyle\nQueueStereotypeFontColor\nQueueStereotypeFontName\nQueueStereotypeFontSize\nQueueStereotypeFontStyle\nRanksep\nRectangleBackgroundColor\nRectangleBorderColor\nRectangleBorderThickness\nRectangleFontColor\nRectangleFontName\nRectangleFontSize\nRectangleFontStyle\nRectangleStereotypeFontColor\nRectangleStereotypeFontName\nRectangleStereotypeFontSize\nRectangleStereotypeFontStyle\nRequirementBackgroundColor\nRequirementBorderColor\nRequirementBorderThickness\nRequirementFontColor\nRequirementFontName\nRequirementFontSize\nRequirementFontStyle\nRequirementStereotypeFontColor\nRequirementStereotypeFontName\nRequirementStereotypeFontSize\nRequirementStereotypeFontStyle\nResponseMessageBelowArrow\nRoundCorner\nSameClassWidth\nSequenceActorBorderThickness\nSequenceArrowThickness\nSequenceBoxBackgroundColor\nSequenceBoxBorderColor\nSequenceBoxFontColor\nSequenceBoxFontName\nSequenceBoxFontSize\nSequenceBoxFontStyle\nSequenceDelayFontColor\nSequenceDelayFontName\nSequenceDelayFontSize\nSequenceDelayFontStyle\nSequenceDividerBackgroundColor\nSequenceDividerBorderColor\nSequenceDividerBorderThickness\nSequenceDividerFontColor\nSequenceDividerFontName\nSequenceDividerFontSize\nSequenceDividerFontStyle\nSequenceGroupBackgroundColor\nSequenceGroupBodyBackgroundColor\nSequenceGroupBorderColor\nSequenceGroupBorderThickness\nSequenceGroupFontColor\nSequenceGroupFontName\nSequenceGroupFontSize\nSequenceGroupFontStyle\nSequenceGroupHeaderFontColor\nSequenceGroupHeaderFontName\nSequenceGroupHeaderFontSize\nSequenceGroupHeaderFontStyle\nSequenceLifeLineBackgroundColor\nSequenceLifeLineBorderColor\nSequenceLifeLineBorderThickness\nSequenceMessageAlignment\nSequenceMessageTextAlignment\nSequenceNewpageSeparatorColor\nSequenceParticipant\nSequenceParticipantBorderThickness\nSequenceReferenceAlignment\nSequenceReferenceBackgroundColor\nSequenceReferenceBorderColor\nSequenceReferenceBorderThickness\nSequenceReferenceFontColor\nSequenceReferenceFontName\nSequenceReferenceFontSize\nSequenceReferenceFontStyle\nSequenceReferenceHeaderBackgroundColor\nSequenceStereotypeFontColor\nSequenceStereotypeFontName\nSequenceStereotypeFontSize\nSequenceStereotypeFontStyle\nSequenceTitleFontColor\nSequenceTitleFontName\nSequenceTitleFontSize\nSequenceTitleFontStyle\nShadowing\nStackBackgroundColor\nStackBorderColor\nStackFontColor\nStackFontName\nStackFontSize\nStackFontStyle\nStackStereotypeFontColor\nStackStereotypeFontName\nStackStereotypeFontSize\nStackStereotypeFontStyle\nStateAttributeFontColor\nStateAttributeFontName\nStateAttributeFontSize\nStateAttributeFontStyle\nStateBackgroundColor\nStateBorderColor\nStateEndColor\nStateFontColor\nStateFontName\nStateFontSize\nStateFontStyle\nStateStartColor\nStereotypeABackgroundColor\nStereotypeABorderColor\nStereotypeCBackgroundColor\nStereotypeCBorderColor\nStereotypeEBackgroundColor\nStereotypeEBorderColor\nStereotypeIBackgroundColor\nStereotypeIBorderColor\nStereotypeNBackgroundColor\nStereotypeNBorderColor\nStereotypePosition\nStorageBackgroundColor\nStorageBorderColor\nStorageFontColor\nStorageFontName\nStorageFontSize\nStorageFontStyle\nStorageStereotypeFontColor\nStorageStereotypeFontName\nStorageStereotypeFontSize\nStorageStereotypeFontStyle\nStyle\nSvglinkTarget\nSwimlaneBorderColor\nSwimlaneBorderThickness\nSwimlaneTitleFontColor\nSwimlaneTitleFontName\nSwimlaneTitleFontSize\nSwimlaneTitleFontStyle\nSwimlaneWidth\nSwimlaneWrapTitleWidth\nTabSize\nTitleBackgroundColor\nTitleBorderColor\nTitleBorderRoundCorner\nTitleBorderThickness\nTitleFontColor\nTitleFontName\nTitleFontSize\nTitleFontStyle\nUsecaseBackgroundColor\nUsecaseBorderColor\nUsecaseBorderThickness\nUsecaseFontColor\nUsecaseFontName\nUsecaseFontSize\nUsecaseFontStyle\nUsecaseStereotypeFontColor\nUsecaseStereotypeFontName\nUsecaseStereotypeFontSize\nUsecaseStereotypeFontStyle\nWrapWidth\n\n;color\n;154\nAPPLICATION\nAliceBlue\nAntiqueWhite\nAqua\nAquamarine\nAzure\nBUSINESS\nBeige\nBisque\nBlack\nBlanchedAlmond\nBlue\nBlueViolet\nBrown\nBurlyWood\nCadetBlue\nChartreuse\nChocolate\nCoral\nCornflowerBlue\nCornsilk\nCrimson\nCyan\nDarkBlue\nDarkCyan\nDarkGoldenRod\nDarkGray\nDarkGreen\nDarkGrey\nDarkKhaki\nDarkMagenta\nDarkOliveGreen\nDarkOrchid\nDarkRed\nDarkSalmon\nDarkSeaGreen\nDarkSlateBlue\nDarkSlateGray\nDarkSlateGrey\nDarkTurquoise\nDarkViolet\nDarkorange\nDeepPink\nDeepSkyBlue\nDimGray\nDimGrey\nDodgerBlue\nFireBrick\nFloralWhite\nForestGreen\nFuchsia\nGainsboro\nGhostWhite\nGold\nGoldenRod\nGray\nGreen\nGreenYellow\nGrey\nHoneyDew\nHotPink\nIMPLEMENTATION\nIndianRed\nIndigo\nIvory\nKhaki\nLavender\nLavenderBlush\nLawnGreen\nLemonChiffon\nLightBlue\nLightCoral\nLightCyan\nLightGoldenRodYellow\nLightGray\nLightGreen\nLightGrey\nLightPink\nLightSalmon\nLightSeaGreen\nLightSkyBlue\nLightSlateGray\nLightSlateGrey\nLightSteelBlue\nLightYellow\nLime\nLimeGreen\nLinen\nMOTIVATION\nMagenta\nMaroon\nMediumAquaMarine\nMediumBlue\nMediumOrchid\nMediumPurple\nMediumSeaGreen\nMediumSlateBlue\nMediumSpringGreen\nMediumTurquoise\nMediumVioletRed\nMidnightBlue\nMintCream\nMistyRose\nMoccasin\nNavajoWhite\nNavy\nOldLace\nOlive\nOliveDrab\nOrange\nOrangeRed\nOrchid\nPHYSICAL\nPaleGoldenRod\nPaleGreen\nPaleTurquoise\nPaleVioletRed\nPapayaWhip\nPeachPuff\nPeru\nPink\nPlum\nPowderBlue\nPurple\nRed\nRosyBrown\nRoyalBlue\nSTRATEGY\nSaddleBrown\nSalmon\nSandyBrown\nSeaGreen\nSeaShell\nSienna\nSilver\nSkyBlue\nSlateBlue\nSlateGray\nSlateGrey\nSnow\nSpringGreen\nSteelBlue\nTECHNOLOGY\nTan\nTeal\nThistle\nTomato\nTurquoise\nViolet\nWheat\nWhite\nWhiteSmoke\nYellow\nYellowGreen\n\n;EOF\n,"; +const typewords = ["abstract", "actor", "agent", "archimate", "artifact", "boundary", "card", "class", "cloud", "component", "control", "database", "diamond", "entity", "enum", "file", "folder", "frame", "interface", "node", "object", "package", "participant", "queue", "rectangle", "stack", "state", "storage", "usecase"]; + +const keywords = ["@enddot", "@endsalt", "@enduml", "@startdot", "@startsalt", "@startuml", "activate", "again", "allow_mixing", "allowmixing", "also", "alt", "as", "autonumber", "bold", "bottom", "box", "break", "caption", "center", "circle", "create", "critical", "deactivate", "description", "destroy", "down", "else", "elseif", "empty", "end", "endif", "endwhile", "false", "footbox", "footer", "fork", "group", "header", "hide", "hnote", "if", "is", "italic", "kill", "left", "legend", "link", "loop", "members", "namespace", "newpage", "note", "of", "on", "opt", "order", "over", "package", "page", "par", "partition", "plain", "ref", "repeat", "return", "right", "rnote", "rotate", "show", "skin", "skinparam", "start", "stop", "strictuml", "title", "top", "top to bottom direction", "true", "up", "while"]; + +const preprocessor = ["!define", "!definelong", "!else", "!enddefinelong", "!endif", "!exit", "!if", "!ifdef", "!ifndef", "!include", "!pragma", "!undef"]; + +const skinparameter = ["ActivityBackgroundColor", "ActivityBarColor", "ActivityBorderColor", "ActivityBorderThickness", "ActivityDiamondBackgroundColor", "ActivityDiamondBorderColor", "ActivityDiamondFontColor", "ActivityDiamondFontName", "ActivityDiamondFontSize", "ActivityDiamondFontStyle", "ActivityEndColor", "ActivityFontColor", "ActivityFontName", "ActivityFontSize", "ActivityFontStyle", "ActivityStartColor", "ActorBackgroundColor", "ActorBorderColor", "ActorFontColor", "ActorFontName", "ActorFontSize", "ActorFontStyle", "ActorStereotypeFontColor", "ActorStereotypeFontName", "ActorStereotypeFontSize", "ActorStereotypeFontStyle", "AgentBackgroundColor", "AgentBorderColor", "AgentBorderThickness", "AgentFontColor", "AgentFontName", "AgentFontSize", "AgentFontStyle", "AgentStereotypeFontColor", "AgentStereotypeFontName", "AgentStereotypeFontSize", "AgentStereotypeFontStyle", "ArrowColor", "ArrowFontColor", "ArrowFontName", "ArrowFontSize", "ArrowFontStyle", "ArrowLollipopColor", "ArrowMessageAlignment", "ArrowThickness", "ArtifactBackgroundColor", "ArtifactBorderColor", "ArtifactFontColor", "ArtifactFontName", "ArtifactFontSize", "ArtifactFontStyle", "ArtifactStereotypeFontColor", "ArtifactStereotypeFontName", "ArtifactStereotypeFontSize", "ArtifactStereotypeFontStyle", "BackgroundColor", "BiddableBackgroundColor", "BiddableBorderColor", "BoundaryBackgroundColor", "BoundaryBorderColor", "BoundaryFontColor", "BoundaryFontName", "BoundaryFontSize", "BoundaryFontStyle", "BoundaryStereotypeFontColor", "BoundaryStereotypeFontName", "BoundaryStereotypeFontSize", "BoundaryStereotypeFontStyle", "BoxPadding", "CaptionFontColor", "CaptionFontName", "CaptionFontSize", "CaptionFontStyle", "CardBackgroundColor", "CardBorderColor", "CardBorderThickness", "CardFontColor", "CardFontName", "CardFontSize", "CardFontStyle", "CardStereotypeFontColor", "CardStereotypeFontName", "CardStereotypeFontSize", "CardStereotypeFontStyle", "CircledCharacterFontColor", "CircledCharacterFontName", "CircledCharacterFontSize", "CircledCharacterFontStyle", "CircledCharacterRadius", "ClassAttributeFontColor", "ClassAttributeFontName", "ClassAttributeFontSize", "ClassAttributeFontStyle", "ClassAttributeIconSize", "ClassBackgroundColor", "ClassBorderColor", "ClassBorderThickness", "ClassFontColor", "ClassFontName", "ClassFontSize", "ClassFontStyle", "ClassHeaderBackgroundColor", "ClassStereotypeFontColor", "ClassStereotypeFontName", "ClassStereotypeFontSize", "ClassStereotypeFontStyle", "CloudBackgroundColor", "CloudBorderColor", "CloudFontColor", "CloudFontName", "CloudFontSize", "CloudFontStyle", "CloudStereotypeFontColor", "CloudStereotypeFontName", "CloudStereotypeFontSize", "CloudStereotypeFontStyle", "CollectionsBackgroundColor", "CollectionsBorderColor", "ColorArrowSeparationSpace", "ComponentBackgroundColor", "ComponentBorderColor", "ComponentBorderThickness", "ComponentFontColor", "ComponentFontName", "ComponentFontSize", "ComponentFontStyle", "ComponentStereotypeFontColor", "ComponentStereotypeFontName", "ComponentStereotypeFontSize", "ComponentStereotypeFontStyle", "ComponentStyle", "ConditionStyle", "ControlBackgroundColor", "ControlBorderColor", "ControlFontColor", "ControlFontName", "ControlFontSize", "ControlFontStyle", "ControlStereotypeFontColor", "ControlStereotypeFontName", "ControlStereotypeFontSize", "ControlStereotypeFontStyle", "DatabaseBackgroundColor", "DatabaseBorderColor", "DatabaseFontColor", "DatabaseFontName", "DatabaseFontSize", "DatabaseFontStyle", "DatabaseStereotypeFontColor", "DatabaseStereotypeFontName", "DatabaseStereotypeFontSize", "DatabaseStereotypeFontStyle", "DefaultFontColor", "DefaultFontName", "DefaultFontSize", "DefaultFontStyle", "DefaultMonospacedFontName", "DefaultTextAlignment", "DesignedBackgroundColor", "DesignedBorderColor", "DesignedDomainBorderThickness", "DesignedDomainFontColor", "DesignedDomainFontName", "DesignedDomainFontSize", "DesignedDomainFontStyle", "DesignedDomainStereotypeFontColor", "DesignedDomainStereotypeFontName", "DesignedDomainStereotypeFontSize", "DesignedDomainStereotypeFontStyle", "DiagramBorderColor", "DiagramBorderThickness", "DomainBackgroundColor", "DomainBorderColor", "DomainBorderThickness", "DomainFontColor", "DomainFontName", "DomainFontSize", "DomainFontStyle", "DomainStereotypeFontColor", "DomainStereotypeFontName", "DomainStereotypeFontSize", "DomainStereotypeFontStyle", "Dpi", "EntityBackgroundColor", "EntityBorderColor", "EntityFontColor", "EntityFontName", "EntityFontSize", "EntityFontStyle", "EntityStereotypeFontColor", "EntityStereotypeFontName", "EntityStereotypeFontSize", "EntityStereotypeFontStyle", "FileBackgroundColor", "FileBorderColor", "FileFontColor", "FileFontName", "FileFontSize", "FileFontStyle", "FileStereotypeFontColor", "FileStereotypeFontName", "FileStereotypeFontSize", "FileStereotypeFontStyle", "FolderBackgroundColor", "FolderBorderColor", "FolderFontColor", "FolderFontName", "FolderFontSize", "FolderFontStyle", "FolderStereotypeFontColor", "FolderStereotypeFontName", "FolderStereotypeFontSize", "FolderStereotypeFontStyle", "FooterFontColor", "FooterFontName", "FooterFontSize", "FooterFontStyle", "FrameBackgroundColor", "FrameBorderColor", "FrameFontColor", "FrameFontName", "FrameFontSize", "FrameFontStyle", "FrameStereotypeFontColor", "FrameStereotypeFontName", "FrameStereotypeFontSize", "FrameStereotypeFontStyle", "GenericDisplay", "Guillemet", "Handwritten", "HeaderFontColor", "HeaderFontName", "HeaderFontSize", "HeaderFontStyle", "HyperlinkColor", "HyperlinkUnderline", "IconIEMandatoryColor", "IconPackageBackgroundColor", "IconPackageColor", "IconPrivateBackgroundColor", "IconPrivateColor", "IconProtectedBackgroundColor", "IconProtectedColor", "IconPublicBackgroundColor", "IconPublicColor", "InterfaceBackgroundColor", "InterfaceBorderColor", "InterfaceFontColor", "InterfaceFontName", "InterfaceFontSize", "InterfaceFontStyle", "InterfaceStereotypeFontColor", "InterfaceStereotypeFontName", "InterfaceStereotypeFontSize", "InterfaceStereotypeFontStyle", "LegendBackgroundColor", "LegendBorderColor", "LegendBorderThickness", "LegendFontColor", "LegendFontName", "LegendFontSize", "LegendFontStyle", "LexicalBackgroundColor", "LexicalBorderColor", "Linetype", "MachineBackgroundColor", "MachineBorderColor", "MachineBorderThickness", "MachineFontColor", "MachineFontName", "MachineFontSize", "MachineFontStyle", "MachineStereotypeFontColor", "MachineStereotypeFontName", "MachineStereotypeFontSize", "MachineStereotypeFontStyle", "MaxAsciiMessageLength", "MaxMessageSize", "MinClassWidth", "Monochrome", "NodeBackgroundColor", "NodeBorderColor", "NodeFontColor", "NodeFontName", "NodeFontSize", "NodeFontStyle", "NodeStereotypeFontColor", "NodeStereotypeFontName", "NodeStereotypeFontSize", "NodeStereotypeFontStyle", "Nodesep", "NoteBackgroundColor", "NoteBorderColor", "NoteBorderThickness", "NoteFontColor", "NoteFontName", "NoteFontSize", "NoteFontStyle", "NoteShadowing", "NoteTextAlignment", "ObjectAttributeFontColor", "ObjectAttributeFontName", "ObjectAttributeFontSize", "ObjectAttributeFontStyle", "ObjectBackgroundColor", "ObjectBorderColor", "ObjectBorderThickness", "ObjectFontColor", "ObjectFontName", "ObjectFontSize", "ObjectFontStyle", "ObjectStereotypeFontColor", "ObjectStereotypeFontName", "ObjectStereotypeFontSize", "ObjectStereotypeFontStyle", "PackageBackgroundColor", "PackageBorderColor", "PackageBorderThickness", "PackageFontColor", "PackageFontName", "PackageFontSize", "PackageFontStyle", "PackageStereotypeFontColor", "PackageStereotypeFontName", "PackageStereotypeFontSize", "PackageStereotypeFontStyle", "PackageStyle", "PackageTitleAlignment", "Padding", "PageBorderColor", "PageExternalColor", "PageMargin", "ParticipantBackgroundColor", "ParticipantBorderColor", "ParticipantFontColor", "ParticipantFontName", "ParticipantFontSize", "ParticipantFontStyle", "ParticipantPadding", "PartitionBackgroundColor", "PartitionBorderColor", "PartitionBorderThickness", "PartitionFontColor", "PartitionFontName", "PartitionFontSize", "PartitionFontStyle", "PathHoverColor", "QueueBackgroundColor", "QueueBorderColor", "QueueFontColor", "QueueFontName", "QueueFontSize", "QueueFontStyle", "QueueStereotypeFontColor", "QueueStereotypeFontName", "QueueStereotypeFontSize", "QueueStereotypeFontStyle", "Ranksep", "RectangleBackgroundColor", "RectangleBorderColor", "RectangleBorderThickness", "RectangleFontColor", "RectangleFontName", "RectangleFontSize", "RectangleFontStyle", "RectangleStereotypeFontColor", "RectangleStereotypeFontName", "RectangleStereotypeFontSize", "RectangleStereotypeFontStyle", "RequirementBackgroundColor", "RequirementBorderColor", "RequirementBorderThickness", "RequirementFontColor", "RequirementFontName", "RequirementFontSize", "RequirementFontStyle", "RequirementStereotypeFontColor", "RequirementStereotypeFontName", "RequirementStereotypeFontSize", "RequirementStereotypeFontStyle", "ResponseMessageBelowArrow", "RoundCorner", "SameClassWidth", "SequenceActorBorderThickness", "SequenceArrowThickness", "SequenceBoxBackgroundColor", "SequenceBoxBorderColor", "SequenceBoxFontColor", "SequenceBoxFontName", "SequenceBoxFontSize", "SequenceBoxFontStyle", "SequenceDelayFontColor", "SequenceDelayFontName", "SequenceDelayFontSize", "SequenceDelayFontStyle", "SequenceDividerBackgroundColor", "SequenceDividerBorderColor", "SequenceDividerBorderThickness", "SequenceDividerFontColor", "SequenceDividerFontName", "SequenceDividerFontSize", "SequenceDividerFontStyle", "SequenceGroupBackgroundColor", "SequenceGroupBodyBackgroundColor", "SequenceGroupBorderColor", "SequenceGroupBorderThickness", "SequenceGroupFontColor", "SequenceGroupFontName", "SequenceGroupFontSize", "SequenceGroupFontStyle", "SequenceGroupHeaderFontColor", "SequenceGroupHeaderFontName", "SequenceGroupHeaderFontSize", "SequenceGroupHeaderFontStyle", "SequenceLifeLineBackgroundColor", "SequenceLifeLineBorderColor", "SequenceLifeLineBorderThickness", "SequenceMessageAlignment", "SequenceMessageTextAlignment", "SequenceNewpageSeparatorColor", "SequenceParticipant", "SequenceParticipantBorderThickness", "SequenceReferenceAlignment", "SequenceReferenceBackgroundColor", "SequenceReferenceBorderColor", "SequenceReferenceBorderThickness", "SequenceReferenceFontColor", "SequenceReferenceFontName", "SequenceReferenceFontSize", "SequenceReferenceFontStyle", "SequenceReferenceHeaderBackgroundColor", "SequenceStereotypeFontColor", "SequenceStereotypeFontName", "SequenceStereotypeFontSize", "SequenceStereotypeFontStyle", "SequenceTitleFontColor", "SequenceTitleFontName", "SequenceTitleFontSize", "SequenceTitleFontStyle", "Shadowing", "StackBackgroundColor", "StackBorderColor", "StackFontColor", "StackFontName", "StackFontSize", "StackFontStyle", "StackStereotypeFontColor", "StackStereotypeFontName", "StackStereotypeFontSize", "StackStereotypeFontStyle", "StateAttributeFontColor", "StateAttributeFontName", "StateAttributeFontSize", "StateAttributeFontStyle", "StateBackgroundColor", "StateBorderColor", "StateEndColor", "StateFontColor", "StateFontName", "StateFontSize", "StateFontStyle", "StateStartColor", "StereotypeABackgroundColor", "StereotypeABorderColor", "StereotypeCBackgroundColor", "StereotypeCBorderColor", "StereotypeEBackgroundColor", "StereotypeEBorderColor", "StereotypeIBackgroundColor", "StereotypeIBorderColor", "StereotypeNBackgroundColor", "StereotypeNBorderColor", "StereotypePosition", "StorageBackgroundColor", "StorageBorderColor", "StorageFontColor", "StorageFontName", "StorageFontSize", "StorageFontStyle", "StorageStereotypeFontColor", "StorageStereotypeFontName", "StorageStereotypeFontSize", "StorageStereotypeFontStyle", "Style", "SvglinkTarget", "SwimlaneBorderColor", "SwimlaneBorderThickness", "SwimlaneTitleFontColor", "SwimlaneTitleFontName", "SwimlaneTitleFontSize", "SwimlaneTitleFontStyle", "SwimlaneWidth", "SwimlaneWrapTitleWidth", "TabSize", "TitleBackgroundColor", "TitleBorderColor", "TitleBorderRoundCorner", "TitleBorderThickness", "TitleFontColor", "TitleFontName", "TitleFontSize", "TitleFontStyle", "UsecaseBackgroundColor", "UsecaseBorderColor", "UsecaseBorderThickness", "UsecaseFontColor", "UsecaseFontName", "UsecaseFontSize", "UsecaseFontStyle", "UsecaseStereotypeFontColor", "UsecaseStereotypeFontName", "UsecaseStereotypeFontSize", "UsecaseStereotypeFontStyle", "WrapWidth"]; + +const colors = ["APPLICATION", "AliceBlue", "AntiqueWhite", "Aqua", "Aquamarine", "Azure", "BUSINESS", "Beige", "Bisque", "Black", "BlanchedAlmond", "Blue", "BlueViolet", "Brown", "BurlyWood", "CadetBlue", "Chartreuse", "Chocolate", "Coral", "CornflowerBlue", "Cornsilk", "Crimson", "Cyan", "DarkBlue", "DarkCyan", "DarkGoldenRod", "DarkGray", "DarkGreen", "DarkGrey", "DarkKhaki", "DarkMagenta", "DarkOliveGreen", "DarkOrchid", "DarkRed", "DarkSalmon", "DarkSeaGreen", "DarkSlateBlue", "DarkSlateGray", "DarkSlateGrey", "DarkTurquoise", "DarkViolet", "Darkorange", "DeepPink", "DeepSkyBlue", "DimGray", "DimGrey", "DodgerBlue", "FireBrick", "FloralWhite", "ForestGreen", "Fuchsia", "Gainsboro", "GhostWhite", "Gold", "GoldenRod", "Gray", "Green", "GreenYellow", "Grey", "HoneyDew", "HotPink", "IMPLEMENTATION", "IndianRed", "Indigo", "Ivory", "Khaki", "Lavender", "LavenderBlush", "LawnGreen", "LemonChiffon", "LightBlue", "LightCoral", "LightCyan", "LightGoldenRodYellow", "LightGray", "LightGreen", "LightGrey", "LightPink", "LightSalmon", "LightSeaGreen", "LightSkyBlue", "LightSlateGray", "LightSlateGrey", "LightSteelBlue", "LightYellow", "Lime", "LimeGreen", "Linen", "MOTIVATION", "Magenta", "Maroon", "MediumAquaMarine", "MediumBlue", "MediumOrchid", "MediumPurple", "MediumSeaGreen", "MediumSlateBlue", "MediumSpringGreen", "MediumTurquoise", "MediumVioletRed", "MidnightBlue", "MintCream", "MistyRose", "Moccasin", "NavajoWhite", "Navy", "OldLace", "Olive", "OliveDrab", "Orange", "OrangeRed", "Orchid", "PHYSICAL", "PaleGoldenRod", "PaleGreen", "PaleTurquoise", "PaleVioletRed", "PapayaWhip", "PeachPuff", "Peru", "Pink", "Plum", "PowderBlue", "Purple", "Red", "RosyBrown", "RoyalBlue", "STRATEGY", "SaddleBrown", "Salmon", "SandyBrown", "SeaGreen", "SeaShell", "Sienna", "Silver", "SkyBlue", "SlateBlue", "SlateGray", "SlateGrey", "Snow", "SpringGreen", "SteelBlue", "TECHNOLOGY", "Tan", "Teal", "Thistle", "Tomato", "Turquoise", "Violet", "Wheat", "White", "WhiteSmoke", "Yellow", "YellowGreen"]; export var dicLanguageWords = new Set([]); let cachedItems: vscode.CompletionItem[] = undefined; @@ -12,50 +20,34 @@ interface LanguageWord { name: string, } -function processWords(value: string): LanguageWord[] { +function processWords(predefinedWords: string[][], itemKinds: vscode.CompletionItemKind[]): LanguageWord[] { let results: LanguageWord[] = []; - let words = value.split('\n').map(w => w.trim()); - let curKind: vscode.CompletionItemKind = undefined; - words.forEach( - word => { - if (!word) return; - let label = word.replace(REG_CLEAN_LABEL, ""); - if (!label) return; - if (word.substr(0, 1) == ';') { - switch (word) { - case ";type": - curKind = vscode.CompletionItemKind.Struct - return; - case ";keyword": - curKind = vscode.CompletionItemKind.Keyword - return; - case ";preprocessor": - curKind = vscode.CompletionItemKind.Function - return; - case ";skinparameter": - curKind = vscode.CompletionItemKind.Field - return; - case ";color": - curKind = vscode.CompletionItemKind.Color - return; - default: - return; - } - } - if (!curKind) return; + let label = ""; + let theObject: LanguageWord = undefined; + + predefinedWords.forEach((wordList, i) => { + wordList.forEach(word => { dicLanguageWords.add(word); - results.push({ label: label, name: word, kind: curKind }); - } - ) + label = word.replace(REG_CLEAN_LABEL, ""); + theObject = { label: label, name: word, kind: itemKinds[i] }; + //console.log("Pushing: " + JSON.stringify(theObject)); + results.push(theObject); + }) + }); + return results; } export async function LanguageCompletionItems(): Promise { if (cachedItems !== undefined) return Promise.resolve(cachedItems); - let words = processWords(preDefinedWords); + let words = processWords( + [typewords, keywords, preprocessor, skinparameter, colors], + [vscode.CompletionItemKind.Struct, vscode.CompletionItemKind.Keyword, + vscode.CompletionItemKind.Function, vscode.CompletionItemKind.Field, + vscode.CompletionItemKind.Color] + ); cachedItems = words.map(word => { - const item = new vscode.CompletionItem(word.label, word.kind); item.insertText = new vscode.SnippetString(word.name); return item;