chrome-devtools-frontend 1.0.1512147 → 1.0.1513662
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/cookbook/release_management.md +15 -13
- package/docs/get_the_code.md +114 -35
- package/front_end/Images/src/ai-explorer-badge.svg +114 -0
- package/front_end/Images/src/code-whisperer-badge.svg +166 -0
- package/front_end/Images/src/devtools-user-badge.svg +129 -0
- package/front_end/Images/src/dom-detective-badge.svg +136 -0
- package/front_end/Images/src/speedster-badge.svg +166 -0
- package/front_end/core/common/Color.ts +40 -44
- package/front_end/core/common/Console.ts +4 -4
- package/front_end/core/common/ParsedURL.ts +14 -14
- package/front_end/core/common/ResourceType.ts +20 -20
- package/front_end/core/common/SegmentedRange.ts +13 -14
- package/front_end/core/common/Settings.ts +4 -4
- package/front_end/core/common/StringOutputStream.ts +4 -4
- package/front_end/core/host/GdpClient.ts +76 -2
- package/front_end/core/host/InspectorFrontendHost.ts +4 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
- package/front_end/core/host/ResourceLoader.ts +2 -2
- package/front_end/core/host/UserMetrics.ts +0 -2
- package/front_end/core/i18n/NumberFormatter.ts +7 -0
- package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
- package/front_end/core/root/Runtime.ts +5 -2
- package/front_end/core/sdk/AccessibilityModel.ts +48 -48
- package/front_end/core/sdk/AnimationModel.ts +78 -79
- package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
- package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
- package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
- package/front_end/core/sdk/CSSMedia.ts +22 -22
- package/front_end/core/sdk/CSSModel.ts +4 -4
- package/front_end/core/sdk/CSSProperty.ts +9 -9
- package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
- package/front_end/core/sdk/CSSRule.ts +3 -3
- package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
- package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
- package/front_end/core/sdk/ChildTargetManager.ts +6 -6
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
- package/front_end/core/sdk/ConsoleModel.ts +24 -24
- package/front_end/core/sdk/Cookie.ts +16 -16
- package/front_end/core/sdk/CookieParser.ts +6 -6
- package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
- package/front_end/core/sdk/DOMModel.ts +113 -113
- package/front_end/core/sdk/DebuggerModel.ts +102 -103
- package/front_end/core/sdk/EmulationModel.ts +6 -6
- package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
- package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
- package/front_end/core/sdk/IsolateManager.ts +26 -26
- package/front_end/core/sdk/LayerTreeBase.ts +29 -30
- package/front_end/core/sdk/OverlayModel.ts +6 -6
- package/front_end/core/sdk/Resource.ts +43 -43
- package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
- package/front_end/core/sdk/RuntimeModel.ts +12 -13
- package/front_end/core/sdk/SDKModel.ts +3 -3
- package/front_end/core/sdk/Script.ts +17 -17
- package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
- package/front_end/core/sdk/ServerTiming.ts +2 -2
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
- package/front_end/core/sdk/SourceMap.ts +10 -10
- package/front_end/core/sdk/StorageKeyManager.ts +12 -12
- package/front_end/core/sdk/Target.ts +33 -34
- package/front_end/core/sdk/TargetManager.ts +20 -20
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
- package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
- package/front_end/entrypoints/main/MainImpl.ts +16 -14
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +20 -0
- package/front_end/generated/protocol-mapping.d.ts +4 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +20 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +18 -35
- package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +7 -6
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +246 -119
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +187 -73
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +106 -100
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +20 -27
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +151 -0
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +10 -9
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +21 -0
- package/front_end/models/badges/SpeedsterBadge.ts +7 -2
- package/front_end/models/badges/StarterBadge.ts +6 -1
- package/front_end/models/badges/UserBadges.ts +61 -9
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
- package/front_end/models/bindings/FileUtils.ts +15 -15
- package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
- package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
- package/front_end/models/emulation/DeviceModeModel.ts +123 -131
- package/front_end/models/emulation/EmulatedDevices.ts +22 -22
- package/front_end/models/extensions/ExtensionPanel.ts +24 -24
- package/front_end/models/extensions/ExtensionServer.ts +4 -4
- package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
- package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
- package/front_end/models/trace/EventsSerializer.ts +5 -5
- package/front_end/models/trace/LanternComputationData.ts +10 -10
- package/front_end/models/trace/ModelImpl.ts +32 -54
- package/front_end/models/trace/Processor.ts +28 -30
- package/front_end/models/trace/extras/FilmStrip.ts +6 -6
- package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
- package/front_end/models/trace/extras/ThirdParties.ts +16 -17
- package/front_end/models/trace/extras/TraceFilter.ts +1 -1
- package/front_end/models/trace/handlers/Threads.ts +10 -10
- package/front_end/models/trace/handlers/helpers.ts +9 -9
- package/front_end/models/trace/handlers/types.ts +3 -3
- package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
- package/front_end/models/trace/insights/Cache.ts +8 -4
- package/front_end/models/trace/insights/DOMSize.ts +8 -5
- package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
- package/front_end/models/trace/insights/FontDisplay.ts +3 -4
- package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
- package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
- package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
- package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
- package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
- package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
- package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
- package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
- package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
- package/front_end/models/trace/insights/ThirdParties.ts +4 -5
- package/front_end/models/trace/insights/Viewport.ts +8 -5
- package/front_end/models/trace/insights/types.ts +1 -0
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
- package/front_end/panels/animation/AnimationTimeline.ts +5 -5
- package/front_end/panels/animation/AnimationUI.ts +22 -23
- package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
- package/front_end/panels/application/DOMStorageModel.ts +23 -23
- package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
- package/front_end/panels/application/IndexedDBModel.ts +1 -0
- package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
- package/front_end/panels/application/ServiceWorkersView.ts +0 -53
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
- package/front_end/panels/common/BadgeNotification.ts +140 -10
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +30 -9
- package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
- package/front_end/panels/console/ConsolePrompt.ts +8 -5
- package/front_end/panels/console/ConsoleView.ts +13 -13
- package/front_end/panels/console/ConsoleViewport.ts +29 -29
- package/front_end/panels/coverage/CoverageModel.ts +22 -22
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
- package/front_end/panels/elements/DOMPath.ts +2 -2
- package/front_end/panels/elements/ElementsPanel.ts +13 -13
- package/front_end/panels/elements/ElementsTreeElement.ts +30 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +44 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +7 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +54 -50
- package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
- package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
- package/front_end/panels/emulation/DeviceModeView.ts +6 -6
- package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
- package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
- package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
- package/front_end/panels/layer_viewer/TransformController.ts +34 -36
- package/front_end/panels/layers/LayerTreeModel.ts +41 -40
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
- package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
- package/front_end/panels/media/PlayerMessagesView.ts +5 -5
- package/front_end/panels/media/TickingFlameChart.ts +24 -24
- package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
- package/front_end/panels/network/NetworkItemView.ts +4 -4
- package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
- package/front_end/panels/network/NetworkPanel.ts +8 -5
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
- package/front_end/panels/profiler/ProfileHeader.ts +25 -25
- package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
- package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
- package/front_end/panels/security/OriginTreeElement.ts +8 -8
- package/front_end/panels/security/SecurityPanel.ts +5 -5
- package/front_end/panels/settings/SettingsScreen.ts +18 -18
- package/front_end/panels/settings/components/SyncSection.ts +26 -8
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
- package/front_end/panels/sources/NavigatorView.ts +43 -46
- package/front_end/panels/sources/SourcesPanel.ts +35 -35
- package/front_end/panels/sources/SourcesView.ts +13 -13
- package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
- package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
- package/front_end/panels/timeline/CountersGraph.ts +16 -16
- package/front_end/panels/timeline/EntriesFilter.ts +4 -3
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
- package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
- package/front_end/panels/timeline/Initiators.ts +10 -10
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
- package/front_end/panels/timeline/ModificationsManager.ts +8 -15
- package/front_end/panels/timeline/TargetForEvent.ts +2 -2
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
- package/front_end/panels/timeline/ThreadAppender.ts +13 -13
- package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
- package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
- package/front_end/panels/timeline/TimelineFilters.ts +5 -5
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
- package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
- package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
- package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
- package/front_end/panels/timeline/TimelinePanel.ts +73 -68
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
- package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
- package/front_end/panels/timeline/TimelineUIUtils.ts +47 -46
- package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
- package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
- package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
- package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
- package/front_end/panels/timeline/components/DetailsView.ts +4 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
- package/front_end/panels/timeline/components/Sidebar.ts +4 -14
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
- package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
- package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
- package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
- package/front_end/panels/timeline/utils/AIContext.ts +17 -19
- package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
- package/front_end/panels/timeline/utils/EntryName.ts +2 -2
- package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
- package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
- package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
- package/front_end/panels/timeline/utils/Helpers.ts +0 -18
- package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/json5/rebuild.sh +1 -1
- package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
- package/front_end/third_party/lit/lib/decorators.js +5 -5
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.js +8 -13
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +26 -9
- package/front_end/third_party/lit/lib/lit.js +5 -5
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.js +2 -2
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/third-party-web/rebuild.sh +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +6 -7
- package/front_end/ui/legacy/ActionRegistration.ts +9 -9
- package/front_end/ui/legacy/DockController.ts +18 -18
- package/front_end/ui/legacy/FilterBar.ts +7 -7
- package/front_end/ui/legacy/Fragment.ts +4 -4
- package/front_end/ui/legacy/GlassPane.ts +12 -12
- package/front_end/ui/legacy/InspectorView.ts +5 -15
- package/front_end/ui/legacy/ListControl.ts +27 -27
- package/front_end/ui/legacy/ListWidget.ts +4 -4
- package/front_end/ui/legacy/PopoverHelper.ts +4 -4
- package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
- package/front_end/ui/legacy/TabbedPane.ts +74 -75
- package/front_end/ui/legacy/TextPrompt.ts +31 -31
- package/front_end/ui/legacy/Toolbar.ts +13 -14
- package/front_end/ui/legacy/ViewManager.ts +30 -31
- package/front_end/ui/legacy/Widget.ts +6 -6
- package/front_end/ui/legacy/XLink.ts +9 -9
- package/front_end/ui/legacy/ZoomManager.ts +9 -9
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/softDropDownButton.css +1 -1
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/Types.ts +0 -9
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"legacy.js","sources":["../node_modules/@codemirror/legacy-modes/mode/clojure.js","../node_modules/@codemirror/legacy-modes/mode/coffeescript.js","../node_modules/@codemirror/legacy-modes/mode/clike.js","../node_modules/@codemirror/legacy-modes/mode/css.js","../node_modules/@codemirror/legacy-modes/mode/go.js","../node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var atoms = [\"false\", \"nil\", \"true\"];\nvar specialForms = [\".\", \"catch\", \"def\", \"do\", \"if\", \"monitor-enter\",\n \"monitor-exit\", \"new\", \"quote\", \"recur\", \"set!\", \"throw\", \"try\", \"var\"];\nvar coreSymbols = [\"*\", \"*'\", \"*1\", \"*2\", \"*3\", \"*agent*\",\n \"*allow-unresolved-vars*\", \"*assert*\", \"*clojure-version*\",\n \"*command-line-args*\", \"*compile-files*\", \"*compile-path*\",\n \"*compiler-options*\", \"*data-readers*\", \"*default-data-reader-fn*\", \"*e\",\n \"*err*\", \"*file*\", \"*flush-on-newline*\", \"*fn-loader*\", \"*in*\",\n \"*math-context*\", \"*ns*\", \"*out*\", \"*print-dup*\", \"*print-length*\",\n \"*print-level*\", \"*print-meta*\", \"*print-namespace-maps*\",\n \"*print-readably*\", \"*read-eval*\", \"*reader-resolver*\", \"*source-path*\",\n \"*suppress-read*\", \"*unchecked-math*\", \"*use-context-classloader*\",\n \"*verbose-defrecords*\", \"*warn-on-reflection*\", \"+\", \"+'\", \"-\", \"-'\",\n \"->\", \"->>\", \"->ArrayChunk\", \"->Eduction\", \"->Vec\", \"->VecNode\",\n \"->VecSeq\", \"-cache-protocol-fn\", \"-reset-methods\", \"..\", \"/\", \"<\", \"<=\",\n \"=\", \"==\", \">\", \">=\", \"EMPTY-NODE\", \"Inst\", \"StackTraceElement->vec\",\n \"Throwable->map\", \"accessor\", \"aclone\", \"add-classpath\", \"add-watch\",\n \"agent\", \"agent-error\", \"agent-errors\", \"aget\", \"alength\", \"alias\",\n \"all-ns\", \"alter\", \"alter-meta!\", \"alter-var-root\", \"amap\", \"ancestors\",\n \"and\", \"any?\", \"apply\", \"areduce\", \"array-map\", \"as->\", \"aset\",\n \"aset-boolean\", \"aset-byte\", \"aset-char\", \"aset-double\", \"aset-float\",\n \"aset-int\", \"aset-long\", \"aset-short\", \"assert\", \"assoc\", \"assoc!\",\n \"assoc-in\", \"associative?\", \"atom\", \"await\", \"await-for\", \"await1\",\n \"bases\", \"bean\", \"bigdec\", \"bigint\", \"biginteger\", \"binding\", \"bit-and\",\n \"bit-and-not\", \"bit-clear\", \"bit-flip\", \"bit-not\", \"bit-or\", \"bit-set\",\n \"bit-shift-left\", \"bit-shift-right\", \"bit-test\", \"bit-xor\", \"boolean\",\n \"boolean-array\", \"boolean?\", \"booleans\", \"bound-fn\", \"bound-fn*\",\n \"bound?\", \"bounded-count\", \"butlast\", \"byte\", \"byte-array\", \"bytes\",\n \"bytes?\", \"case\", \"cast\", \"cat\", \"char\", \"char-array\",\n \"char-escape-string\", \"char-name-string\", \"char?\", \"chars\", \"chunk\",\n \"chunk-append\", \"chunk-buffer\", \"chunk-cons\", \"chunk-first\", \"chunk-next\",\n \"chunk-rest\", \"chunked-seq?\", \"class\", \"class?\", \"clear-agent-errors\",\n \"clojure-version\", \"coll?\", \"comment\", \"commute\", \"comp\", \"comparator\",\n \"compare\", \"compare-and-set!\", \"compile\", \"complement\", \"completing\",\n \"concat\", \"cond\", \"cond->\", \"cond->>\", \"condp\", \"conj\", \"conj!\", \"cons\",\n \"constantly\", \"construct-proxy\", \"contains?\", \"count\", \"counted?\",\n \"create-ns\", \"create-struct\", \"cycle\", \"dec\", \"dec'\", \"decimal?\",\n \"declare\", \"dedupe\", \"default-data-readers\", \"definline\", \"definterface\",\n \"defmacro\", \"defmethod\", \"defmulti\", \"defn\", \"defn-\", \"defonce\",\n \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\", \"delay\", \"delay?\",\n \"deliver\", \"denominator\", \"deref\", \"derive\", \"descendants\", \"destructure\",\n \"disj\", \"disj!\", \"dissoc\", \"dissoc!\", \"distinct\", \"distinct?\", \"doall\",\n \"dorun\", \"doseq\", \"dosync\", \"dotimes\", \"doto\", \"double\", \"double-array\",\n \"double?\", \"doubles\", \"drop\", \"drop-last\", \"drop-while\", \"eduction\",\n \"empty\", \"empty?\", \"ensure\", \"ensure-reduced\", \"enumeration-seq\",\n \"error-handler\", \"error-mode\", \"eval\", \"even?\", \"every-pred\", \"every?\",\n \"ex-data\", \"ex-info\", \"extend\", \"extend-protocol\", \"extend-type\",\n \"extenders\", \"extends?\", \"false?\", \"ffirst\", \"file-seq\", \"filter\",\n \"filterv\", \"find\", \"find-keyword\", \"find-ns\", \"find-protocol-impl\",\n \"find-protocol-method\", \"find-var\", \"first\", \"flatten\", \"float\",\n \"float-array\", \"float?\", \"floats\", \"flush\", \"fn\", \"fn?\", \"fnext\", \"fnil\",\n \"for\", \"force\", \"format\", \"frequencies\", \"future\", \"future-call\",\n \"future-cancel\", \"future-cancelled?\", \"future-done?\", \"future?\",\n \"gen-class\", \"gen-interface\", \"gensym\", \"get\", \"get-in\", \"get-method\",\n \"get-proxy-class\", \"get-thread-bindings\", \"get-validator\", \"group-by\",\n \"halt-when\", \"hash\", \"hash-combine\", \"hash-map\", \"hash-ordered-coll\",\n \"hash-set\", \"hash-unordered-coll\", \"ident?\", \"identical?\", \"identity\",\n \"if-let\", \"if-not\", \"if-some\", \"ifn?\", \"import\", \"in-ns\", \"inc\", \"inc'\",\n \"indexed?\", \"init-proxy\", \"inst-ms\", \"inst-ms*\", \"inst?\", \"instance?\",\n \"int\", \"int-array\", \"int?\", \"integer?\", \"interleave\", \"intern\",\n \"interpose\", \"into\", \"into-array\", \"ints\", \"io!\", \"isa?\", \"iterate\",\n \"iterator-seq\", \"juxt\", \"keep\", \"keep-indexed\", \"key\", \"keys\", \"keyword\",\n \"keyword?\", \"last\", \"lazy-cat\", \"lazy-seq\", \"let\", \"letfn\", \"line-seq\",\n \"list\", \"list*\", \"list?\", \"load\", \"load-file\", \"load-reader\",\n \"load-string\", \"loaded-libs\", \"locking\", \"long\", \"long-array\", \"longs\",\n \"loop\", \"macroexpand\", \"macroexpand-1\", \"make-array\", \"make-hierarchy\",\n \"map\", \"map-entry?\", \"map-indexed\", \"map?\", \"mapcat\", \"mapv\", \"max\",\n \"max-key\", \"memfn\", \"memoize\", \"merge\", \"merge-with\", \"meta\",\n \"method-sig\", \"methods\", \"min\", \"min-key\", \"mix-collection-hash\", \"mod\",\n \"munge\", \"name\", \"namespace\", \"namespace-munge\", \"nat-int?\", \"neg-int?\",\n \"neg?\", \"newline\", \"next\", \"nfirst\", \"nil?\", \"nnext\", \"not\", \"not-any?\",\n \"not-empty\", \"not-every?\", \"not=\", \"ns\", \"ns-aliases\", \"ns-imports\",\n \"ns-interns\", \"ns-map\", \"ns-name\", \"ns-publics\", \"ns-refers\",\n \"ns-resolve\", \"ns-unalias\", \"ns-unmap\", \"nth\", \"nthnext\", \"nthrest\",\n \"num\", \"number?\", \"numerator\", \"object-array\", \"odd?\", \"or\", \"parents\",\n \"partial\", \"partition\", \"partition-all\", \"partition-by\", \"pcalls\", \"peek\",\n \"persistent!\", \"pmap\", \"pop\", \"pop!\", \"pop-thread-bindings\", \"pos-int?\",\n \"pos?\", \"pr\", \"pr-str\", \"prefer-method\", \"prefers\",\n \"primitives-classnames\", \"print\", \"print-ctor\", \"print-dup\",\n \"print-method\", \"print-simple\", \"print-str\", \"printf\", \"println\",\n \"println-str\", \"prn\", \"prn-str\", \"promise\", \"proxy\",\n \"proxy-call-with-super\", \"proxy-mappings\", \"proxy-name\", \"proxy-super\",\n \"push-thread-bindings\", \"pvalues\", \"qualified-ident?\",\n \"qualified-keyword?\", \"qualified-symbol?\", \"quot\", \"rand\", \"rand-int\",\n \"rand-nth\", \"random-sample\", \"range\", \"ratio?\", \"rational?\",\n \"rationalize\", \"re-find\", \"re-groups\", \"re-matcher\", \"re-matches\",\n \"re-pattern\", \"re-seq\", \"read\", \"read-line\", \"read-string\",\n \"reader-conditional\", \"reader-conditional?\", \"realized?\", \"record?\",\n \"reduce\", \"reduce-kv\", \"reduced\", \"reduced?\", \"reductions\", \"ref\",\n \"ref-history-count\", \"ref-max-history\", \"ref-min-history\", \"ref-set\",\n \"refer\", \"refer-clojure\", \"reify\", \"release-pending-sends\", \"rem\",\n \"remove\", \"remove-all-methods\", \"remove-method\", \"remove-ns\",\n \"remove-watch\", \"repeat\", \"repeatedly\", \"replace\", \"replicate\", \"require\",\n \"reset!\", \"reset-meta!\", \"reset-vals!\", \"resolve\", \"rest\",\n \"restart-agent\", \"resultset-seq\", \"reverse\", \"reversible?\", \"rseq\",\n \"rsubseq\", \"run!\", \"satisfies?\", \"second\", \"select-keys\", \"send\",\n \"send-off\", \"send-via\", \"seq\", \"seq?\", \"seqable?\", \"seque\", \"sequence\",\n \"sequential?\", \"set\", \"set-agent-send-executor!\",\n \"set-agent-send-off-executor!\", \"set-error-handler!\", \"set-error-mode!\",\n \"set-validator!\", \"set?\", \"short\", \"short-array\", \"shorts\", \"shuffle\",\n \"shutdown-agents\", \"simple-ident?\", \"simple-keyword?\", \"simple-symbol?\",\n \"slurp\", \"some\", \"some->\", \"some->>\", \"some-fn\", \"some?\", \"sort\",\n \"sort-by\", \"sorted-map\", \"sorted-map-by\", \"sorted-set\", \"sorted-set-by\",\n \"sorted?\", \"special-symbol?\", \"spit\", \"split-at\", \"split-with\", \"str\",\n \"string?\", \"struct\", \"struct-map\", \"subs\", \"subseq\", \"subvec\", \"supers\",\n \"swap!\", \"swap-vals!\", \"symbol\", \"symbol?\", \"sync\", \"tagged-literal\",\n \"tagged-literal?\", \"take\", \"take-last\", \"take-nth\", \"take-while\", \"test\",\n \"the-ns\", \"thread-bound?\", \"time\", \"to-array\", \"to-array-2d\",\n \"trampoline\", \"transduce\", \"transient\", \"tree-seq\", \"true?\", \"type\",\n \"unchecked-add\", \"unchecked-add-int\", \"unchecked-byte\", \"unchecked-char\",\n \"unchecked-dec\", \"unchecked-dec-int\", \"unchecked-divide-int\",\n \"unchecked-double\", \"unchecked-float\", \"unchecked-inc\",\n \"unchecked-inc-int\", \"unchecked-int\", \"unchecked-long\",\n \"unchecked-multiply\", \"unchecked-multiply-int\", \"unchecked-negate\",\n \"unchecked-negate-int\", \"unchecked-remainder-int\", \"unchecked-short\",\n \"unchecked-subtract\", \"unchecked-subtract-int\", \"underive\", \"unquote\",\n \"unquote-splicing\", \"unreduced\", \"unsigned-bit-shift-right\", \"update\",\n \"update-in\", \"update-proxy\", \"uri?\", \"use\", \"uuid?\", \"val\", \"vals\",\n \"var-get\", \"var-set\", \"var?\", \"vary-meta\", \"vec\", \"vector\", \"vector-of\",\n \"vector?\", \"volatile!\", \"volatile?\", \"vreset!\", \"vswap!\", \"when\",\n \"when-first\", \"when-let\", \"when-not\", \"when-some\", \"while\",\n \"with-bindings\", \"with-bindings*\", \"with-in-str\", \"with-loading-context\",\n \"with-local-vars\", \"with-meta\", \"with-open\", \"with-out-str\",\n \"with-precision\", \"with-redefs\", \"with-redefs-fn\", \"xml-seq\", \"zero?\",\n \"zipmap\"];\nvar haveBodyParameter = [\n \"->\", \"->>\", \"as->\", \"binding\", \"bound-fn\", \"case\", \"catch\", \"comment\",\n \"cond\", \"cond->\", \"cond->>\", \"condp\", \"def\", \"definterface\", \"defmethod\",\n \"defn\", \"defmacro\", \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\",\n \"do\", \"doseq\", \"dotimes\", \"doto\", \"extend\", \"extend-protocol\",\n \"extend-type\", \"fn\", \"for\", \"future\", \"if\", \"if-let\", \"if-not\", \"if-some\",\n \"let\", \"letfn\", \"locking\", \"loop\", \"ns\", \"proxy\", \"reify\", \"struct-map\",\n \"some->\", \"some->>\", \"try\", \"when\", \"when-first\", \"when-let\", \"when-not\",\n \"when-some\", \"while\", \"with-bindings\", \"with-bindings*\", \"with-in-str\",\n \"with-loading-context\", \"with-local-vars\", \"with-meta\", \"with-open\",\n \"with-out-str\", \"with-precision\", \"with-redefs\", \"with-redefs-fn\"];\n\nvar atom = createLookupMap(atoms);\nvar specialForm = createLookupMap(specialForms);\nvar coreSymbol = createLookupMap(coreSymbols);\nvar hasBodyParameter = createLookupMap(haveBodyParameter);\nvar delimiter = /^(?:[\\\\\\[\\]\\s\"(),;@^`{}~]|$)/;\nvar numberLiteral = /^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/;\nvar characterLiteral = /^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\n// simple-namespace := /^[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*/\n// simple-symbol := /^(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)/\n// qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>\nvar qualifiedSymbol = /^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\nfunction base(stream, state) {\n if (stream.eatSpace() || stream.eat(\",\")) return [\"space\", null];\n if (stream.match(numberLiteral)) return [null, \"number\"];\n if (stream.match(characterLiteral)) return [null, \"string.special\"];\n if (stream.eat(/^\"/)) return (state.tokenize = inString)(stream, state);\n if (stream.eat(/^[(\\[{]/)) return [\"open\", \"bracket\"];\n if (stream.eat(/^[)\\]}]/)) return [\"close\", \"bracket\"];\n if (stream.eat(/^;/)) {stream.skipToEnd(); return [\"space\", \"comment\"];}\n if (stream.eat(/^[#'@^`~]/)) return [null, \"meta\"];\n\n var matches = stream.match(qualifiedSymbol);\n var symbol = matches && matches[0];\n\n if (!symbol) {\n // advance stream by at least one character so we don't get stuck.\n stream.next();\n stream.eatWhile(function (c) {return !is(c, delimiter);});\n return [null, \"error\"];\n }\n\n if (symbol === \"comment\" && state.lastToken === \"(\")\n return (state.tokenize = inComment)(stream, state);\n if (is(symbol, atom) || symbol.charAt(0) === \":\") return [\"symbol\", \"atom\"];\n if (is(symbol, specialForm) || is(symbol, coreSymbol)) return [\"symbol\", \"keyword\"];\n if (state.lastToken === \"(\") return [\"symbol\", \"builtin\"]; // other operator\n\n return [\"symbol\", \"variable\"];\n}\n\nfunction inString(stream, state) {\n var escaped = false, next;\n\n while (next = stream.next()) {\n if (next === \"\\\"\" && !escaped) {state.tokenize = base; break;}\n escaped = !escaped && next === \"\\\\\";\n }\n\n return [null, \"string\"];\n}\n\nfunction inComment(stream, state) {\n var parenthesisCount = 1;\n var next;\n\n while (next = stream.next()) {\n if (next === \")\") parenthesisCount--;\n if (next === \"(\") parenthesisCount++;\n if (parenthesisCount === 0) {\n stream.backUp(1);\n state.tokenize = base;\n break;\n }\n }\n\n return [\"space\", \"comment\"];\n}\n\nfunction createLookupMap(words) {\n var obj = {};\n\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n\n return obj;\n}\n\nfunction is(value, test) {\n if (test instanceof RegExp) return test.test(value);\n if (test instanceof Object) return test.propertyIsEnumerable(value);\n}\n\nexport const clojure = {\n name: \"clojure\",\n startState: function () {\n return {\n ctx: {prev: null, start: 0, indentTo: 0},\n lastToken: null,\n tokenize: base\n };\n },\n\n token: function (stream, state) {\n if (stream.sol() && (typeof state.ctx.indentTo !== \"number\"))\n state.ctx.indentTo = state.ctx.start + 1;\n\n var typeStylePair = state.tokenize(stream, state);\n var type = typeStylePair[0];\n var style = typeStylePair[1];\n var current = stream.current();\n\n if (type !== \"space\") {\n if (state.lastToken === \"(\" && state.ctx.indentTo === null) {\n if (type === \"symbol\" && is(current, hasBodyParameter))\n state.ctx.indentTo = state.ctx.start + stream.indentUnit;\n else state.ctx.indentTo = \"next\";\n } else if (state.ctx.indentTo === \"next\") {\n state.ctx.indentTo = stream.column();\n }\n\n state.lastToken = current;\n }\n\n if (type === \"open\")\n state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n else if (type === \"close\") state.ctx = state.ctx.prev || state.ctx;\n\n return style;\n },\n\n indent: function (state) {\n var i = state.ctx.indentTo;\n\n return (typeof i === \"number\") ?\n i :\n state.ctx.start + 1;\n },\n\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n commentTokens: {line: \";;\"},\n autocomplete: [].concat(atoms, specialForms, coreSymbols)\n }\n};\n","var ERRORCLASS = \"error\";\n\nfunction wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n}\n\nvar operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\nvar delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\nvar identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\nvar atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\nvar wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n \"is\", \"isnt\", \"in\",\n \"instanceof\", \"typeof\"]);\nvar indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\nvar commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\nvar keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\nindentKeywords = wordRegexp(indentKeywords);\n\n\nvar stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\nvar regexPrefixes = /^(\\/{3}|\\/)/;\nvar commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\nvar constants = wordRegexp(commonConstants);\n\n// Tokenizers\nfunction tokenBase(stream, state) {\n // Handle scope changes\n if (stream.sol()) {\n if (state.scope.align === null) state.scope.align = false;\n var scopeOffset = state.scope.offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n return \"indent\";\n } else if (lineOffset < scopeOffset) {\n return \"dedent\";\n }\n return null;\n } else {\n if (scopeOffset > 0) {\n dedent(stream, state);\n }\n }\n }\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle docco title comment (single line)\n if (stream.match(\"####\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle multi line comments\n if (stream.match(\"###\")) {\n state.tokenize = longComment;\n return state.tokenize(stream, state);\n }\n\n // Single line comment\n if (ch === \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle number literals\n if (stream.match(/^-?[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\d+\\.\\d*/)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\.\\d+/)) {\n floatLiteral = true;\n }\n\n if (floatLiteral) {\n // prevent from getting extra . on 1..\n if (stream.peek() == \".\"){\n stream.backUp(1);\n }\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^-?0x[0-9a-f]+/i)) {\n intLiteral = true;\n }\n // Decimal\n if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^-?0(?![\\dx])/i)) {\n intLiteral = true;\n }\n if (intLiteral) {\n return \"number\";\n }\n }\n\n // Handle strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenFactory(stream.current(), false, \"string\");\n return state.tokenize(stream, state);\n }\n // Handle regex literals\n if (stream.match(regexPrefixes)) {\n if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n state.tokenize = tokenFactory(stream.current(), true, \"string.special\");\n return state.tokenize(stream, state);\n } else {\n stream.backUp(1);\n }\n }\n\n\n\n // Handle operators and delimiters\n if (stream.match(operators) || stream.match(wordOperators)) {\n return \"operator\";\n }\n if (stream.match(delimiters)) {\n return \"punctuation\";\n }\n\n if (stream.match(constants)) {\n return \"atom\";\n }\n\n if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n return \"property\";\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(identifiers)) {\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n}\n\nfunction tokenFactory(delimiter, singleline, outclass) {\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\/\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol()) {\n return outclass;\n }\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return outclass;\n } else {\n stream.eat(/['\"\\/]/);\n }\n }\n if (singleline) {\n state.tokenize = tokenBase;\n }\n return outclass;\n };\n}\n\nfunction longComment(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^#]/);\n if (stream.match(\"###\")) {\n state.tokenize = tokenBase;\n break;\n }\n stream.eatWhile(\"#\");\n }\n return \"comment\";\n}\n\nfunction indent(stream, state, type = \"coffee\") {\n var offset = 0, align = false, alignOffset = null;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (scope.type === \"coffee\" || scope.type == \"}\") {\n offset = scope.offset + stream.indentUnit;\n break;\n }\n }\n if (type !== \"coffee\") {\n align = null;\n alignOffset = stream.column() + stream.current().length;\n } else if (state.scope.align) {\n state.scope.align = false;\n }\n state.scope = {\n offset: offset,\n type: type,\n prev: state.scope,\n align: align,\n alignOffset: alignOffset\n };\n}\n\nfunction dedent(stream, state) {\n if (!state.scope.prev) return;\n if (state.scope.type === \"coffee\") {\n var _indent = stream.indentation();\n var matched = false;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (_indent === scope.offset) {\n matched = true;\n break;\n }\n }\n if (!matched) {\n return true;\n }\n while (state.scope.prev && state.scope.offset !== _indent) {\n state.scope = state.scope.prev;\n }\n return false;\n } else {\n state.scope = state.scope.prev;\n return false;\n }\n}\n\nfunction tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle scope changes.\n if (current === \"return\") {\n state.dedent = true;\n }\n if (((current === \"->\" || current === \"=>\") && stream.eol())\n || style === \"indent\") {\n indent(stream, state);\n }\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n }\n if (indentKeywords.exec(current)){\n indent(stream, state);\n }\n if (current == \"then\"){\n dedent(stream, state);\n }\n\n\n if (style === \"dedent\") {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index !== -1) {\n while (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n if (state.scope.type == current)\n state.scope = state.scope.prev;\n }\n if (state.dedent && stream.eol()) {\n if (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n state.dedent = false;\n }\n\n return style == \"indent\" || style == \"dedent\" ? null : style;\n}\n\nexport const coffeeScript = {\n name: \"coffeescript\",\n startState: function() {\n return {\n tokenize: tokenBase,\n scope: {offset: 0, type:\"coffee\", prev: null, align: false},\n prop: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var fillAlign = state.scope.align === null && state.scope;\n if (fillAlign && stream.sol()) fillAlign.align = false;\n\n var style = tokenLexer(stream, state);\n if (style && style != \"comment\") {\n if (fillAlign) fillAlign.align = true;\n state.prop = style == \"punctuation\" && stream.current() == \".\"\n }\n\n return style;\n },\n\n indent: function(state, text) {\n if (state.tokenize != tokenBase) return 0;\n var scope = state.scope;\n var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n var closes = closer && scope.type === text.charAt(0);\n if (scope.align)\n return scope.alignOffset - (closes ? 1 : 0);\n else\n return (closes ? scope.prev : scope).offset;\n },\n\n languageData: {\n commentTokens: {line: \"#\"}\n }\n};\n","function Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nexport function clike(parserConfig) {\n var statementIndentUnit = parserConfig.statementIndentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n name: parserConfig.name,\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter, context) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine && isTopScope(state.context))\n return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, context.unit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit || context.unit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + (statementIndentUnit || context.unit);\n\n return ctx.indented + (closing ? 0 : context.unit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? context.unit : 0);\n },\n\n languageData: {\n indentOnInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n autocomplete: Object.keys(keywords).concat(Object.keys(types)).concat(Object.keys(builtin)).concat(Object.keys(atoms)),\n ...parserConfig.languageData\n }\n };\n};\n\nfunction words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\nfunction contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n}\nvar cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n// Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\nvar cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\nvar objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\nvar objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n// Do not use this. Use the cTypes function below. This is global just to avoid\n// excessive calls when cTypes is being called multiple times during a parse.\nvar basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n// Do not use this. Use the objCTypes function below. This is global just to avoid\n// excessive calls when objCTypes is being called multiple times during a parse.\nvar basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n// Returns true if identifier is a \"C\" type.\n// C type is defined as those that are reserved by the compiler (basicTypes),\n// and those that end in _t (Reserved by POSIX for types)\n// http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\nfunction cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n}\n\n// Returns true if identifier is a \"Objective C\" type.\nfunction objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n}\n\nvar cBlockKeywords = \"case do else for if switch while struct enum union\";\nvar cDefKeywords = \"struct enum union\";\n\nfunction cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n}\n\nfunction pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n}\n\n// For C and C++ (and ObjC): identifiers starting with __\n// or _ followed by a capital letter are reserved for the compiler.\nfunction cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n}\n\nfunction cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n}\n\nfunction cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n}\n\nfunction cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n}\n\n// C#-style strings where \"\" escapes a quote.\nfunction tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n}\n\n// C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n// <delim> can be a string up to 16 characters long.\nfunction tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n}\n\nexport const c = clike({\n name: \"c\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const cpp = clike({\n name: \"cpp\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n});\n\nexport const java = clike({\n name: \"java\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"var byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match(/\"\"$/)) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n }\n }\n})\n\nexport const csharp = clike({\n name: \"csharp\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in init interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly record ref required return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace record struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n});\n\nfunction tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n}\n\nfunction tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n}\n\nexport const scala = clike({\n name: \"scala\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"character\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nfunction tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const kotlin = clike({\n name: \"kotlin\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nexport const shader = clike({\n name: \"shader\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook}\n})\n\nexport const nesC = clike({\n name: \"nesc\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook}\n})\n\nexport const objectiveC = clike({\n name: \"objectivec\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const objectiveCpp = clike({\n name: \"objectivecpp\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n})\n\nexport const squirrel = clike({\n name: \"squirrel\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook}\n})\n\n// Ceylon Strings need to deal with interpolation\nvar stringTokenizer = null;\nfunction tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const ceylon = clike({\n name: \"ceylon\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"string.special\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variableName.special\";\n }\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n})\n\nfunction pushInterpolationStack(state) {\n (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);\n}\n\nfunction popInterpolationStack(state) {\n return (state.interpolationStack || (state.interpolationStack = [])).pop();\n}\n\nfunction sizeInterpolationStack(state) {\n return state.interpolationStack ? state.interpolationStack.length : 0;\n}\n\nfunction tokenDartString(quote, stream, state, raw) {\n var tripleQuoted = false;\n if (stream.eat(quote)) {\n if (stream.eat(quote)) tripleQuoted = true;\n else return \"string\"; //empty string\n }\n function tokenStringHelper(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!raw && !escaped && stream.peek() == \"$\") {\n pushInterpolationStack(state);\n state.tokenize = tokenInterpolation;\n return \"string\";\n }\n var next = stream.next();\n if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {\n state.tokenize = null;\n break;\n }\n escaped = !raw && !escaped && next == \"\\\\\";\n }\n return \"string\";\n }\n state.tokenize = tokenStringHelper;\n return tokenStringHelper(stream, state);\n}\n\nfunction tokenInterpolation(stream, state) {\n stream.eat(\"$\");\n if (stream.eat(\"{\")) {\n // let clike handle the content of ${...},\n // we take over again when \"}\" appears (see hooks).\n state.tokenize = null;\n } else {\n state.tokenize = tokenInterpolationIdentifier;\n }\n return null;\n}\n\nfunction tokenInterpolationIdentifier(stream, state) {\n stream.eatWhile(/[\\w_]/);\n state.tokenize = popInterpolationStack(state);\n return \"variable\";\n}\n\nexport const dart = clike({\n name: \"dart\",\n keywords: words(\"this super static final const abstract class extends external factory \" +\n \"implements mixin get native set typedef with enum throw rethrow assert break case \" +\n \"continue default in return new deferred async await covariant try catch finally \" +\n \"do else for if switch while import library export part of show hide is as extension \" +\n \"on yield late required sealed base interface when inline\"),\n blockKeywords: words(\"try catch finally do else for if switch while\"),\n builtin: words(\"void bool num int double dynamic var String Null Never\"),\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\.]/);\n return \"meta\";\n },\n\n // custom string handling to deal with triple-quoted strings and string interpolation\n \"'\": function(stream, state) {\n return tokenDartString(\"'\", stream, state, false);\n },\n \"\\\"\": function(stream, state) {\n return tokenDartString(\"\\\"\", stream, state, false);\n },\n \"r\": function(stream, state) {\n var peek = stream.peek();\n if (peek == \"'\" || peek == \"\\\"\") {\n return tokenDartString(stream.next(), stream, state, true);\n }\n return false;\n },\n\n \"}\": function(_stream, state) {\n // \"}\" is end of interpolation, if interpolation stack is non-empty\n if (sizeInterpolationStack(state) > 0) {\n state.tokenize = popInterpolationStack(state);\n return null;\n }\n return false;\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n },\n token: function(stream, _, style) {\n if (style == \"variable\") {\n // Assume uppercase symbols are classes\n var isUpper = RegExp('^[_$]*[A-Z][a-zA-Z0-9_$]*$','g');\n if (isUpper.test(stream.current())) {\n return 'type';\n }\n }\n }\n }\n})\n","export function mkCSS(parserConfig) {\n parserConfig = {...defaults, ...parserConfig}\n var inline = parserConfig.inline\n\n var tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = parserConfig.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"def\", \"variable-definition\");\n return ret(\"variableName\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variableName.function\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : stream.indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override = \"error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(stream.current())) {\n override = \"error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variableName.constant\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n name: parserConfig.name,\n startState: function() {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter, iCx) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - iCx.unit);\n }\n }\n return indent;\n },\n\n languageData: {\n indentOnInput: /^\\s*\\}$/,\n commentTokens: {line: lineComment, block: {open: \"/*\", close: \"*/\"}},\n autocomplete: allWords\n }\n };\n};\n\nfunction keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n}\n\nvar documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n], documentTypes = keySet(documentTypes_);\n\nvar mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n], mediaTypes = keySet(mediaTypes_);\n\nvar mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n], mediaFeatures = keySet(mediaFeatures_);\n\nvar mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n], mediaValueKeywords = keySet(mediaValueKeywords_);\n\nvar propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n], propertyKeywords = keySet(propertyKeywords_);\n\nvar nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\nvar fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n], fontProperties = keySet(fontProperties_);\n\nvar counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n], counterDescriptors = keySet(counterDescriptors_);\n\nvar colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n], colorKeywords = keySet(colorKeywords_);\n\nvar valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n], valueKeywords = keySet(valueKeywords_);\n\nvar allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n\nexport const keywords = {properties: propertyKeywords_, colors: colorKeywords_,\n fonts: fontProperties_, values: valueKeywords_, all: allWords}\n\nconst defaults = {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n}\n\nexport const css = mkCSS({name: \"css\"})\n\nfunction tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n}\n\nexport const sCSS = mkCSS({\n name: \"scss\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName.special\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n }\n})\n\nexport const less = mkCSS({\n name: \"less\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n }\n})\n\nexport const gss = mkCSS({\n name: \"gss\",\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n})\n","var keywords = {\n \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true, \"error\": true,\n \"rune\":true, \"any\":true, \"comparable\":true\n};\n\nvar atoms = {\n \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"delete\":true, \"imag\":true,\n \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n \"println\":true, \"real\":true, \"recover\":true\n};\n\nvar isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\nvar curPunc;\n\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (/[\\d\\.]/.test(ch)) {\n if (ch == \".\") {\n stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n } else if (ch == \"0\") {\n stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n } else {\n stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n }\n return \"number\";\n }\n if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n stream.eatWhile(isOperatorChar);\n return \"operator\";\n }\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n var cur = stream.current();\n if (keywords.propertyIsEnumerable(cur)) {\n if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n return \"keyword\";\n }\n if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n return \"variable\";\n}\n\nfunction tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && quote != \"`\" && next == \"\\\\\";\n }\n if (end || !(escaped || quote == \"`\"))\n state.tokenize = tokenBase;\n return \"string\";\n };\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n}\n\nfunction Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type) {\n return state.context = new Context(state.indented, col, type, null, state.context);\n}\nfunction popContext(state) {\n if (!state.context.prev) return;\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\n// Interface\n\nexport const go = {\n name: \"go\",\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n if (ctx.type == \"case\") ctx.type = \"}\";\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"case\") ctx.type = \"case\";\n else if (curPunc == \"}\" && ctx.type == \"}\") popContext(state);\n else if (curPunc == ctx.type) popContext(state);\n state.startOfLine = false;\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n if (state.tokenize != tokenBase && state.tokenize != null) return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) return ctx.indented;\n var closing = firstChar == ctx.type;\n if (ctx.align) return ctx.column + (closing ? 0 : 1);\n else return ctx.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: /^\\s([{}]|case |default\\s*:)$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}}\n }\n};\n\n","var words = {};\nfunction define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n return 'string.special'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n};\n\nfunction tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n}\n\nvar tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string.special\"\n }\n}\n\nfunction tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n name: \"shell\",\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n commentTokens: {line: \"#\"}\n }\n};\n"],"names":["atoms","specialForms","coreSymbols","atom","createLookupMap","specialForm","coreSymbol","hasBodyParameter","delimiter","numberLiteral","characterLiteral","qualifiedSymbol","base","stream","state","eatSpace","eat","match","tokenize","inString","skipToEnd","matches","symbol","lastToken","inComment","is","charAt","next","eatWhile","c","escaped","parenthesisCount","backUp","words","obj","i","length","value","test","RegExp","Object","propertyIsEnumerable","clojure","name","startState","ctx","prev","start","indentTo","token","sol","typeStylePair","type","style","current","indentUnit","column","indent","languageData","closeBrackets","brackets","commentTokens","line","autocomplete","concat","ERRORCLASS","wordRegexp","join","operators","delimiters","identifiers","atProp","wordOperators","indentKeywords","keywords","stringPrefixes","regexPrefixes","constants","tokenBase","scope","align","scopeOffset","offset","lineOffset","indentation","dedent","ch","peek","longComment","floatLiteral","intLiteral","tokenFactory","prop","singleline","outclass","eol","alignOffset","_indent","matched","coffeeScript","fillAlign","delimiter_index","indexOf","slice","exec","tokenLexer","text","closer","closes","Context","indented","info","this","pushContext","col","context","popContext","t","typeBefore","pos","prevToken","string","typeAtEndOfLine","isTopScope","clike","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","types","builtin","blockKeywords","defKeywords","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","number","isOperatorChar","isIdentifierChar","isReservedIdentifier","quote","result","end","tokenComment","cur","contains","maybeEnd","maybeEOL","typeFirstDefinitions","startOfLine","undefined","styleDefs","textAfter","firstChar","closing","dontIndentStatements","hook","unit","switchBlock","allmanIndentation","indentOnInput","block","open","close","keys","str","split","word","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","pointerHook","_stream","cIsReservedIdentifier","toLowerCase","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","replace","tokenTripleString","tokenNestedComment","depth","u","U","L","R","scala","cx","kotlin","intendSwitch","tripleString","skipTo","stringTokenizer","tokenCeylonString","pushInterpolationStack","interpolationStack","push","popInterpolationStack","pop","tokenDartString","raw","tripleQuoted","tokenStringHelper","tokenInterpolation","tokenInterpolationIdentifier","first","toUpperCase","dart","r","sizeInterpolationStack","_","mkCSS","override","inline","defaults","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","propertyKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenString","tokenParenthesized","pass","states","popAndPass","n","wordAsValue","hasOwnProperty","stateArg","top","atBlock","iCx","Math","max","allWords","keySet","array","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","tokenCComment","css","$","gss","break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","var","bool","byte","complex64","complex128","float32","float64","int8","int16","int32","int64","uint8","uint16","uint32","uint64","int","uint","uintptr","error","rune","any","comparable","true","false","iota","nil","append","cap","complex","copy","delete","imag","len","make","new","panic","print","println","real","recover","define","dict","commonAtoms","commonKeywords","commonCommands","tokens","unshift","tokenDollar","heredoc","shift","tokenStringStart","shell"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|
1
|
+
{"version":3,"file":"legacy.js","sources":["../node_modules/@codemirror/legacy-modes/mode/clojure.js","../node_modules/@codemirror/legacy-modes/mode/coffeescript.js","../node_modules/@codemirror/legacy-modes/mode/clike.js","../node_modules/@codemirror/legacy-modes/mode/css.js","../node_modules/@codemirror/legacy-modes/mode/go.js","../node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var atoms = [\"false\", \"nil\", \"true\"];\nvar specialForms = [\".\", \"catch\", \"def\", \"do\", \"if\", \"monitor-enter\",\n \"monitor-exit\", \"new\", \"quote\", \"recur\", \"set!\", \"throw\", \"try\", \"var\"];\nvar coreSymbols = [\"*\", \"*'\", \"*1\", \"*2\", \"*3\", \"*agent*\",\n \"*allow-unresolved-vars*\", \"*assert*\", \"*clojure-version*\",\n \"*command-line-args*\", \"*compile-files*\", \"*compile-path*\",\n \"*compiler-options*\", \"*data-readers*\", \"*default-data-reader-fn*\", \"*e\",\n \"*err*\", \"*file*\", \"*flush-on-newline*\", \"*fn-loader*\", \"*in*\",\n \"*math-context*\", \"*ns*\", \"*out*\", \"*print-dup*\", \"*print-length*\",\n \"*print-level*\", \"*print-meta*\", \"*print-namespace-maps*\",\n \"*print-readably*\", \"*read-eval*\", \"*reader-resolver*\", \"*source-path*\",\n \"*suppress-read*\", \"*unchecked-math*\", \"*use-context-classloader*\",\n \"*verbose-defrecords*\", \"*warn-on-reflection*\", \"+\", \"+'\", \"-\", \"-'\",\n \"->\", \"->>\", \"->ArrayChunk\", \"->Eduction\", \"->Vec\", \"->VecNode\",\n \"->VecSeq\", \"-cache-protocol-fn\", \"-reset-methods\", \"..\", \"/\", \"<\", \"<=\",\n \"=\", \"==\", \">\", \">=\", \"EMPTY-NODE\", \"Inst\", \"StackTraceElement->vec\",\n \"Throwable->map\", \"accessor\", \"aclone\", \"add-classpath\", \"add-watch\",\n \"agent\", \"agent-error\", \"agent-errors\", \"aget\", \"alength\", \"alias\",\n \"all-ns\", \"alter\", \"alter-meta!\", \"alter-var-root\", \"amap\", \"ancestors\",\n \"and\", \"any?\", \"apply\", \"areduce\", \"array-map\", \"as->\", \"aset\",\n \"aset-boolean\", \"aset-byte\", \"aset-char\", \"aset-double\", \"aset-float\",\n \"aset-int\", \"aset-long\", \"aset-short\", \"assert\", \"assoc\", \"assoc!\",\n \"assoc-in\", \"associative?\", \"atom\", \"await\", \"await-for\", \"await1\",\n \"bases\", \"bean\", \"bigdec\", \"bigint\", \"biginteger\", \"binding\", \"bit-and\",\n \"bit-and-not\", \"bit-clear\", \"bit-flip\", \"bit-not\", \"bit-or\", \"bit-set\",\n \"bit-shift-left\", \"bit-shift-right\", \"bit-test\", \"bit-xor\", \"boolean\",\n \"boolean-array\", \"boolean?\", \"booleans\", \"bound-fn\", \"bound-fn*\",\n \"bound?\", \"bounded-count\", \"butlast\", \"byte\", \"byte-array\", \"bytes\",\n \"bytes?\", \"case\", \"cast\", \"cat\", \"char\", \"char-array\",\n \"char-escape-string\", \"char-name-string\", \"char?\", \"chars\", \"chunk\",\n \"chunk-append\", \"chunk-buffer\", \"chunk-cons\", \"chunk-first\", \"chunk-next\",\n \"chunk-rest\", \"chunked-seq?\", \"class\", \"class?\", \"clear-agent-errors\",\n \"clojure-version\", \"coll?\", \"comment\", \"commute\", \"comp\", \"comparator\",\n \"compare\", \"compare-and-set!\", \"compile\", \"complement\", \"completing\",\n \"concat\", \"cond\", \"cond->\", \"cond->>\", \"condp\", \"conj\", \"conj!\", \"cons\",\n \"constantly\", \"construct-proxy\", \"contains?\", \"count\", \"counted?\",\n \"create-ns\", \"create-struct\", \"cycle\", \"dec\", \"dec'\", \"decimal?\",\n \"declare\", \"dedupe\", \"default-data-readers\", \"definline\", \"definterface\",\n \"defmacro\", \"defmethod\", \"defmulti\", \"defn\", \"defn-\", \"defonce\",\n \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\", \"delay\", \"delay?\",\n \"deliver\", \"denominator\", \"deref\", \"derive\", \"descendants\", \"destructure\",\n \"disj\", \"disj!\", \"dissoc\", \"dissoc!\", \"distinct\", \"distinct?\", \"doall\",\n \"dorun\", \"doseq\", \"dosync\", \"dotimes\", \"doto\", \"double\", \"double-array\",\n \"double?\", \"doubles\", \"drop\", \"drop-last\", \"drop-while\", \"eduction\",\n \"empty\", \"empty?\", \"ensure\", \"ensure-reduced\", \"enumeration-seq\",\n \"error-handler\", \"error-mode\", \"eval\", \"even?\", \"every-pred\", \"every?\",\n \"ex-data\", \"ex-info\", \"extend\", \"extend-protocol\", \"extend-type\",\n \"extenders\", \"extends?\", \"false?\", \"ffirst\", \"file-seq\", \"filter\",\n \"filterv\", \"find\", \"find-keyword\", \"find-ns\", \"find-protocol-impl\",\n \"find-protocol-method\", \"find-var\", \"first\", \"flatten\", \"float\",\n \"float-array\", \"float?\", \"floats\", \"flush\", \"fn\", \"fn?\", \"fnext\", \"fnil\",\n \"for\", \"force\", \"format\", \"frequencies\", \"future\", \"future-call\",\n \"future-cancel\", \"future-cancelled?\", \"future-done?\", \"future?\",\n \"gen-class\", \"gen-interface\", \"gensym\", \"get\", \"get-in\", \"get-method\",\n \"get-proxy-class\", \"get-thread-bindings\", \"get-validator\", \"group-by\",\n \"halt-when\", \"hash\", \"hash-combine\", \"hash-map\", \"hash-ordered-coll\",\n \"hash-set\", \"hash-unordered-coll\", \"ident?\", \"identical?\", \"identity\",\n \"if-let\", \"if-not\", \"if-some\", \"ifn?\", \"import\", \"in-ns\", \"inc\", \"inc'\",\n \"indexed?\", \"init-proxy\", \"inst-ms\", \"inst-ms*\", \"inst?\", \"instance?\",\n \"int\", \"int-array\", \"int?\", \"integer?\", \"interleave\", \"intern\",\n \"interpose\", \"into\", \"into-array\", \"ints\", \"io!\", \"isa?\", \"iterate\",\n \"iterator-seq\", \"juxt\", \"keep\", \"keep-indexed\", \"key\", \"keys\", \"keyword\",\n \"keyword?\", \"last\", \"lazy-cat\", \"lazy-seq\", \"let\", \"letfn\", \"line-seq\",\n \"list\", \"list*\", \"list?\", \"load\", \"load-file\", \"load-reader\",\n \"load-string\", \"loaded-libs\", \"locking\", \"long\", \"long-array\", \"longs\",\n \"loop\", \"macroexpand\", \"macroexpand-1\", \"make-array\", \"make-hierarchy\",\n \"map\", \"map-entry?\", \"map-indexed\", \"map?\", \"mapcat\", \"mapv\", \"max\",\n \"max-key\", \"memfn\", \"memoize\", \"merge\", \"merge-with\", \"meta\",\n \"method-sig\", \"methods\", \"min\", \"min-key\", \"mix-collection-hash\", \"mod\",\n \"munge\", \"name\", \"namespace\", \"namespace-munge\", \"nat-int?\", \"neg-int?\",\n \"neg?\", \"newline\", \"next\", \"nfirst\", \"nil?\", \"nnext\", \"not\", \"not-any?\",\n \"not-empty\", \"not-every?\", \"not=\", \"ns\", \"ns-aliases\", \"ns-imports\",\n \"ns-interns\", \"ns-map\", \"ns-name\", \"ns-publics\", \"ns-refers\",\n \"ns-resolve\", \"ns-unalias\", \"ns-unmap\", \"nth\", \"nthnext\", \"nthrest\",\n \"num\", \"number?\", \"numerator\", \"object-array\", \"odd?\", \"or\", \"parents\",\n \"partial\", \"partition\", \"partition-all\", \"partition-by\", \"pcalls\", \"peek\",\n \"persistent!\", \"pmap\", \"pop\", \"pop!\", \"pop-thread-bindings\", \"pos-int?\",\n \"pos?\", \"pr\", \"pr-str\", \"prefer-method\", \"prefers\",\n \"primitives-classnames\", \"print\", \"print-ctor\", \"print-dup\",\n \"print-method\", \"print-simple\", \"print-str\", \"printf\", \"println\",\n \"println-str\", \"prn\", \"prn-str\", \"promise\", \"proxy\",\n \"proxy-call-with-super\", \"proxy-mappings\", \"proxy-name\", \"proxy-super\",\n \"push-thread-bindings\", \"pvalues\", \"qualified-ident?\",\n \"qualified-keyword?\", \"qualified-symbol?\", \"quot\", \"rand\", \"rand-int\",\n \"rand-nth\", \"random-sample\", \"range\", \"ratio?\", \"rational?\",\n \"rationalize\", \"re-find\", \"re-groups\", \"re-matcher\", \"re-matches\",\n \"re-pattern\", \"re-seq\", \"read\", \"read-line\", \"read-string\",\n \"reader-conditional\", \"reader-conditional?\", \"realized?\", \"record?\",\n \"reduce\", \"reduce-kv\", \"reduced\", \"reduced?\", \"reductions\", \"ref\",\n \"ref-history-count\", \"ref-max-history\", \"ref-min-history\", \"ref-set\",\n \"refer\", \"refer-clojure\", \"reify\", \"release-pending-sends\", \"rem\",\n \"remove\", \"remove-all-methods\", \"remove-method\", \"remove-ns\",\n \"remove-watch\", \"repeat\", \"repeatedly\", \"replace\", \"replicate\", \"require\",\n \"reset!\", \"reset-meta!\", \"reset-vals!\", \"resolve\", \"rest\",\n \"restart-agent\", \"resultset-seq\", \"reverse\", \"reversible?\", \"rseq\",\n \"rsubseq\", \"run!\", \"satisfies?\", \"second\", \"select-keys\", \"send\",\n \"send-off\", \"send-via\", \"seq\", \"seq?\", \"seqable?\", \"seque\", \"sequence\",\n \"sequential?\", \"set\", \"set-agent-send-executor!\",\n \"set-agent-send-off-executor!\", \"set-error-handler!\", \"set-error-mode!\",\n \"set-validator!\", \"set?\", \"short\", \"short-array\", \"shorts\", \"shuffle\",\n \"shutdown-agents\", \"simple-ident?\", \"simple-keyword?\", \"simple-symbol?\",\n \"slurp\", \"some\", \"some->\", \"some->>\", \"some-fn\", \"some?\", \"sort\",\n \"sort-by\", \"sorted-map\", \"sorted-map-by\", \"sorted-set\", \"sorted-set-by\",\n \"sorted?\", \"special-symbol?\", \"spit\", \"split-at\", \"split-with\", \"str\",\n \"string?\", \"struct\", \"struct-map\", \"subs\", \"subseq\", \"subvec\", \"supers\",\n \"swap!\", \"swap-vals!\", \"symbol\", \"symbol?\", \"sync\", \"tagged-literal\",\n \"tagged-literal?\", \"take\", \"take-last\", \"take-nth\", \"take-while\", \"test\",\n \"the-ns\", \"thread-bound?\", \"time\", \"to-array\", \"to-array-2d\",\n \"trampoline\", \"transduce\", \"transient\", \"tree-seq\", \"true?\", \"type\",\n \"unchecked-add\", \"unchecked-add-int\", \"unchecked-byte\", \"unchecked-char\",\n \"unchecked-dec\", \"unchecked-dec-int\", \"unchecked-divide-int\",\n \"unchecked-double\", \"unchecked-float\", \"unchecked-inc\",\n \"unchecked-inc-int\", \"unchecked-int\", \"unchecked-long\",\n \"unchecked-multiply\", \"unchecked-multiply-int\", \"unchecked-negate\",\n \"unchecked-negate-int\", \"unchecked-remainder-int\", \"unchecked-short\",\n \"unchecked-subtract\", \"unchecked-subtract-int\", \"underive\", \"unquote\",\n \"unquote-splicing\", \"unreduced\", \"unsigned-bit-shift-right\", \"update\",\n \"update-in\", \"update-proxy\", \"uri?\", \"use\", \"uuid?\", \"val\", \"vals\",\n \"var-get\", \"var-set\", \"var?\", \"vary-meta\", \"vec\", \"vector\", \"vector-of\",\n \"vector?\", \"volatile!\", \"volatile?\", \"vreset!\", \"vswap!\", \"when\",\n \"when-first\", \"when-let\", \"when-not\", \"when-some\", \"while\",\n \"with-bindings\", \"with-bindings*\", \"with-in-str\", \"with-loading-context\",\n \"with-local-vars\", \"with-meta\", \"with-open\", \"with-out-str\",\n \"with-precision\", \"with-redefs\", \"with-redefs-fn\", \"xml-seq\", \"zero?\",\n \"zipmap\"];\nvar haveBodyParameter = [\n \"->\", \"->>\", \"as->\", \"binding\", \"bound-fn\", \"case\", \"catch\", \"comment\",\n \"cond\", \"cond->\", \"cond->>\", \"condp\", \"def\", \"definterface\", \"defmethod\",\n \"defn\", \"defmacro\", \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\",\n \"do\", \"doseq\", \"dotimes\", \"doto\", \"extend\", \"extend-protocol\",\n \"extend-type\", \"fn\", \"for\", \"future\", \"if\", \"if-let\", \"if-not\", \"if-some\",\n \"let\", \"letfn\", \"locking\", \"loop\", \"ns\", \"proxy\", \"reify\", \"struct-map\",\n \"some->\", \"some->>\", \"try\", \"when\", \"when-first\", \"when-let\", \"when-not\",\n \"when-some\", \"while\", \"with-bindings\", \"with-bindings*\", \"with-in-str\",\n \"with-loading-context\", \"with-local-vars\", \"with-meta\", \"with-open\",\n \"with-out-str\", \"with-precision\", \"with-redefs\", \"with-redefs-fn\"];\n\nvar atom = createLookupMap(atoms);\nvar specialForm = createLookupMap(specialForms);\nvar coreSymbol = createLookupMap(coreSymbols);\nvar hasBodyParameter = createLookupMap(haveBodyParameter);\nvar delimiter = /^(?:[\\\\\\[\\]\\s\"(),;@^`{}~]|$)/;\nvar numberLiteral = /^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/;\nvar characterLiteral = /^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\n// simple-namespace := /^[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*/\n// simple-symbol := /^(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)/\n// qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>\nvar qualifiedSymbol = /^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\nfunction base(stream, state) {\n if (stream.eatSpace() || stream.eat(\",\")) return [\"space\", null];\n if (stream.match(numberLiteral)) return [null, \"number\"];\n if (stream.match(characterLiteral)) return [null, \"string.special\"];\n if (stream.eat(/^\"/)) return (state.tokenize = inString)(stream, state);\n if (stream.eat(/^[(\\[{]/)) return [\"open\", \"bracket\"];\n if (stream.eat(/^[)\\]}]/)) return [\"close\", \"bracket\"];\n if (stream.eat(/^;/)) {stream.skipToEnd(); return [\"space\", \"comment\"];}\n if (stream.eat(/^[#'@^`~]/)) return [null, \"meta\"];\n\n var matches = stream.match(qualifiedSymbol);\n var symbol = matches && matches[0];\n\n if (!symbol) {\n // advance stream by at least one character so we don't get stuck.\n stream.next();\n stream.eatWhile(function (c) {return !is(c, delimiter);});\n return [null, \"error\"];\n }\n\n if (symbol === \"comment\" && state.lastToken === \"(\")\n return (state.tokenize = inComment)(stream, state);\n if (is(symbol, atom) || symbol.charAt(0) === \":\") return [\"symbol\", \"atom\"];\n if (is(symbol, specialForm) || is(symbol, coreSymbol)) return [\"symbol\", \"keyword\"];\n if (state.lastToken === \"(\") return [\"symbol\", \"builtin\"]; // other operator\n\n return [\"symbol\", \"variable\"];\n}\n\nfunction inString(stream, state) {\n var escaped = false, next;\n\n while (next = stream.next()) {\n if (next === \"\\\"\" && !escaped) {state.tokenize = base; break;}\n escaped = !escaped && next === \"\\\\\";\n }\n\n return [null, \"string\"];\n}\n\nfunction inComment(stream, state) {\n var parenthesisCount = 1;\n var next;\n\n while (next = stream.next()) {\n if (next === \")\") parenthesisCount--;\n if (next === \"(\") parenthesisCount++;\n if (parenthesisCount === 0) {\n stream.backUp(1);\n state.tokenize = base;\n break;\n }\n }\n\n return [\"space\", \"comment\"];\n}\n\nfunction createLookupMap(words) {\n var obj = {};\n\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n\n return obj;\n}\n\nfunction is(value, test) {\n if (test instanceof RegExp) return test.test(value);\n if (test instanceof Object) return test.propertyIsEnumerable(value);\n}\n\nexport const clojure = {\n name: \"clojure\",\n startState: function () {\n return {\n ctx: {prev: null, start: 0, indentTo: 0},\n lastToken: null,\n tokenize: base\n };\n },\n\n token: function (stream, state) {\n if (stream.sol() && (typeof state.ctx.indentTo !== \"number\"))\n state.ctx.indentTo = state.ctx.start + 1;\n\n var typeStylePair = state.tokenize(stream, state);\n var type = typeStylePair[0];\n var style = typeStylePair[1];\n var current = stream.current();\n\n if (type !== \"space\") {\n if (state.lastToken === \"(\" && state.ctx.indentTo === null) {\n if (type === \"symbol\" && is(current, hasBodyParameter))\n state.ctx.indentTo = state.ctx.start + stream.indentUnit;\n else state.ctx.indentTo = \"next\";\n } else if (state.ctx.indentTo === \"next\") {\n state.ctx.indentTo = stream.column();\n }\n\n state.lastToken = current;\n }\n\n if (type === \"open\")\n state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n else if (type === \"close\") state.ctx = state.ctx.prev || state.ctx;\n\n return style;\n },\n\n indent: function (state) {\n var i = state.ctx.indentTo;\n\n return (typeof i === \"number\") ?\n i :\n state.ctx.start + 1;\n },\n\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n commentTokens: {line: \";;\"},\n autocomplete: [].concat(atoms, specialForms, coreSymbols)\n }\n};\n","var ERRORCLASS = \"error\";\n\nfunction wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n}\n\nvar operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\nvar delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\nvar identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\nvar atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\nvar wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n \"is\", \"isnt\", \"in\",\n \"instanceof\", \"typeof\"]);\nvar indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\nvar commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\nvar keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\nindentKeywords = wordRegexp(indentKeywords);\n\n\nvar stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\nvar regexPrefixes = /^(\\/{3}|\\/)/;\nvar commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\nvar constants = wordRegexp(commonConstants);\n\n// Tokenizers\nfunction tokenBase(stream, state) {\n // Handle scope changes\n if (stream.sol()) {\n if (state.scope.align === null) state.scope.align = false;\n var scopeOffset = state.scope.offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n return \"indent\";\n } else if (lineOffset < scopeOffset) {\n return \"dedent\";\n }\n return null;\n } else {\n if (scopeOffset > 0) {\n dedent(stream, state);\n }\n }\n }\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle docco title comment (single line)\n if (stream.match(\"####\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle multi line comments\n if (stream.match(\"###\")) {\n state.tokenize = longComment;\n return state.tokenize(stream, state);\n }\n\n // Single line comment\n if (ch === \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle number literals\n if (stream.match(/^-?[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\d+\\.\\d*/)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\.\\d+/)) {\n floatLiteral = true;\n }\n\n if (floatLiteral) {\n // prevent from getting extra . on 1..\n if (stream.peek() == \".\"){\n stream.backUp(1);\n }\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^-?0x[0-9a-f]+/i)) {\n intLiteral = true;\n }\n // Decimal\n if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^-?0(?![\\dx])/i)) {\n intLiteral = true;\n }\n if (intLiteral) {\n return \"number\";\n }\n }\n\n // Handle strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenFactory(stream.current(), false, \"string\");\n return state.tokenize(stream, state);\n }\n // Handle regex literals\n if (stream.match(regexPrefixes)) {\n if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n state.tokenize = tokenFactory(stream.current(), true, \"string.special\");\n return state.tokenize(stream, state);\n } else {\n stream.backUp(1);\n }\n }\n\n\n\n // Handle operators and delimiters\n if (stream.match(operators) || stream.match(wordOperators)) {\n return \"operator\";\n }\n if (stream.match(delimiters)) {\n return \"punctuation\";\n }\n\n if (stream.match(constants)) {\n return \"atom\";\n }\n\n if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n return \"property\";\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(identifiers)) {\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n}\n\nfunction tokenFactory(delimiter, singleline, outclass) {\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\/\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol()) {\n return outclass;\n }\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return outclass;\n } else {\n stream.eat(/['\"\\/]/);\n }\n }\n if (singleline) {\n state.tokenize = tokenBase;\n }\n return outclass;\n };\n}\n\nfunction longComment(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^#]/);\n if (stream.match(\"###\")) {\n state.tokenize = tokenBase;\n break;\n }\n stream.eatWhile(\"#\");\n }\n return \"comment\";\n}\n\nfunction indent(stream, state, type = \"coffee\") {\n var offset = 0, align = false, alignOffset = null;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (scope.type === \"coffee\" || scope.type == \"}\") {\n offset = scope.offset + stream.indentUnit;\n break;\n }\n }\n if (type !== \"coffee\") {\n align = null;\n alignOffset = stream.column() + stream.current().length;\n } else if (state.scope.align) {\n state.scope.align = false;\n }\n state.scope = {\n offset: offset,\n type: type,\n prev: state.scope,\n align: align,\n alignOffset: alignOffset\n };\n}\n\nfunction dedent(stream, state) {\n if (!state.scope.prev) return;\n if (state.scope.type === \"coffee\") {\n var _indent = stream.indentation();\n var matched = false;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (_indent === scope.offset) {\n matched = true;\n break;\n }\n }\n if (!matched) {\n return true;\n }\n while (state.scope.prev && state.scope.offset !== _indent) {\n state.scope = state.scope.prev;\n }\n return false;\n } else {\n state.scope = state.scope.prev;\n return false;\n }\n}\n\nfunction tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle scope changes.\n if (current === \"return\") {\n state.dedent = true;\n }\n if (((current === \"->\" || current === \"=>\") && stream.eol())\n || style === \"indent\") {\n indent(stream, state);\n }\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n }\n if (indentKeywords.exec(current)){\n indent(stream, state);\n }\n if (current == \"then\"){\n dedent(stream, state);\n }\n\n\n if (style === \"dedent\") {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index !== -1) {\n while (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n if (state.scope.type == current)\n state.scope = state.scope.prev;\n }\n if (state.dedent && stream.eol()) {\n if (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n state.dedent = false;\n }\n\n return style == \"indent\" || style == \"dedent\" ? null : style;\n}\n\nexport const coffeeScript = {\n name: \"coffeescript\",\n startState: function() {\n return {\n tokenize: tokenBase,\n scope: {offset: 0, type:\"coffee\", prev: null, align: false},\n prop: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var fillAlign = state.scope.align === null && state.scope;\n if (fillAlign && stream.sol()) fillAlign.align = false;\n\n var style = tokenLexer(stream, state);\n if (style && style != \"comment\") {\n if (fillAlign) fillAlign.align = true;\n state.prop = style == \"punctuation\" && stream.current() == \".\"\n }\n\n return style;\n },\n\n indent: function(state, text) {\n if (state.tokenize != tokenBase) return 0;\n var scope = state.scope;\n var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n var closes = closer && scope.type === text.charAt(0);\n if (scope.align)\n return scope.alignOffset - (closes ? 1 : 0);\n else\n return (closes ? scope.prev : scope).offset;\n },\n\n languageData: {\n commentTokens: {line: \"#\"}\n }\n};\n","function Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nexport function clike(parserConfig) {\n var statementIndentUnit = parserConfig.statementIndentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n name: parserConfig.name,\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter, context) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine && isTopScope(state.context))\n return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, context.unit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit || context.unit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + (statementIndentUnit || context.unit);\n\n return ctx.indented + (closing ? 0 : context.unit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? context.unit : 0);\n },\n\n languageData: {\n indentOnInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n autocomplete: Object.keys(keywords).concat(Object.keys(types)).concat(Object.keys(builtin)).concat(Object.keys(atoms)),\n ...parserConfig.languageData\n }\n };\n};\n\nfunction words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\nfunction contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n}\nvar cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n// Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\nvar cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\nvar objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\nvar objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n// Do not use this. Use the cTypes function below. This is global just to avoid\n// excessive calls when cTypes is being called multiple times during a parse.\nvar basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n// Do not use this. Use the objCTypes function below. This is global just to avoid\n// excessive calls when objCTypes is being called multiple times during a parse.\nvar basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n// Returns true if identifier is a \"C\" type.\n// C type is defined as those that are reserved by the compiler (basicTypes),\n// and those that end in _t (Reserved by POSIX for types)\n// http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\nfunction cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n}\n\n// Returns true if identifier is a \"Objective C\" type.\nfunction objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n}\n\nvar cBlockKeywords = \"case do else for if switch while struct enum union\";\nvar cDefKeywords = \"struct enum union\";\n\nfunction cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n}\n\nfunction pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n}\n\n// For C and C++ (and ObjC): identifiers starting with __\n// or _ followed by a capital letter are reserved for the compiler.\nfunction cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n}\n\nfunction cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n}\n\nfunction cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n}\n\nfunction cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n}\n\n// C#-style strings where \"\" escapes a quote.\nfunction tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n}\n\n// C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n// <delim> can be a string up to 16 characters long.\nfunction tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n}\n\nexport const c = clike({\n name: \"c\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const cpp = clike({\n name: \"cpp\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n});\n\nexport const java = clike({\n name: \"java\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"var byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match(/\"\"$/)) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n }\n }\n})\n\nexport const csharp = clike({\n name: \"csharp\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in init interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly record ref required return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace record struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n});\n\nfunction tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n}\n\nfunction tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n}\n\nexport const scala = clike({\n name: \"scala\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"character\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nfunction tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const kotlin = clike({\n name: \"kotlin\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nexport const shader = clike({\n name: \"shader\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook}\n})\n\nexport const nesC = clike({\n name: \"nesc\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook}\n})\n\nexport const objectiveC = clike({\n name: \"objectivec\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const objectiveCpp = clike({\n name: \"objectivecpp\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n})\n\nexport const squirrel = clike({\n name: \"squirrel\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook}\n})\n\n// Ceylon Strings need to deal with interpolation\nvar stringTokenizer = null;\nfunction tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const ceylon = clike({\n name: \"ceylon\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"string.special\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variableName.special\";\n }\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n})\n\nfunction pushInterpolationStack(state) {\n (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);\n}\n\nfunction popInterpolationStack(state) {\n return (state.interpolationStack || (state.interpolationStack = [])).pop();\n}\n\nfunction sizeInterpolationStack(state) {\n return state.interpolationStack ? state.interpolationStack.length : 0;\n}\n\nfunction tokenDartString(quote, stream, state, raw) {\n var tripleQuoted = false;\n if (stream.eat(quote)) {\n if (stream.eat(quote)) tripleQuoted = true;\n else return \"string\"; //empty string\n }\n function tokenStringHelper(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!raw && !escaped && stream.peek() == \"$\") {\n pushInterpolationStack(state);\n state.tokenize = tokenInterpolation;\n return \"string\";\n }\n var next = stream.next();\n if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {\n state.tokenize = null;\n break;\n }\n escaped = !raw && !escaped && next == \"\\\\\";\n }\n return \"string\";\n }\n state.tokenize = tokenStringHelper;\n return tokenStringHelper(stream, state);\n}\n\nfunction tokenInterpolation(stream, state) {\n stream.eat(\"$\");\n if (stream.eat(\"{\")) {\n // let clike handle the content of ${...},\n // we take over again when \"}\" appears (see hooks).\n state.tokenize = null;\n } else {\n state.tokenize = tokenInterpolationIdentifier;\n }\n return null;\n}\n\nfunction tokenInterpolationIdentifier(stream, state) {\n stream.eatWhile(/[\\w_]/);\n state.tokenize = popInterpolationStack(state);\n return \"variable\";\n}\n\nexport const dart = clike({\n name: \"dart\",\n keywords: words(\"this super static final const abstract class extends external factory \" +\n \"implements mixin get native set typedef with enum throw rethrow assert break case \" +\n \"continue default in return new deferred async await covariant try catch finally \" +\n \"do else for if switch while import library export part of show hide is as extension \" +\n \"on yield late required sealed base interface when inline\"),\n blockKeywords: words(\"try catch finally do else for if switch while\"),\n builtin: words(\"void bool num int double dynamic var String Null Never\"),\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\.]/);\n return \"meta\";\n },\n\n // custom string handling to deal with triple-quoted strings and string interpolation\n \"'\": function(stream, state) {\n return tokenDartString(\"'\", stream, state, false);\n },\n \"\\\"\": function(stream, state) {\n return tokenDartString(\"\\\"\", stream, state, false);\n },\n \"r\": function(stream, state) {\n var peek = stream.peek();\n if (peek == \"'\" || peek == \"\\\"\") {\n return tokenDartString(stream.next(), stream, state, true);\n }\n return false;\n },\n\n \"}\": function(_stream, state) {\n // \"}\" is end of interpolation, if interpolation stack is non-empty\n if (sizeInterpolationStack(state) > 0) {\n state.tokenize = popInterpolationStack(state);\n return null;\n }\n return false;\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n },\n token: function(stream, _, style) {\n if (style == \"variable\") {\n // Assume uppercase symbols are classes\n var isUpper = RegExp('^[_$]*[A-Z][a-zA-Z0-9_$]*$','g');\n if (isUpper.test(stream.current())) {\n return 'type';\n }\n }\n }\n }\n})\n","export function mkCSS(parserConfig) {\n parserConfig = {...defaults, ...parserConfig}\n var inline = parserConfig.inline\n\n var tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = parserConfig.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"def\", \"variable-definition\");\n return ret(\"variableName\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variableName.function\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : stream.indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override = \"error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(stream.current())) {\n override = \"error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variableName.constant\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n name: parserConfig.name,\n startState: function() {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter, iCx) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - iCx.unit);\n }\n }\n return indent;\n },\n\n languageData: {\n indentOnInput: /^\\s*\\}$/,\n commentTokens: {line: lineComment, block: {open: \"/*\", close: \"*/\"}},\n autocomplete: allWords\n }\n };\n};\n\nfunction keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n}\n\nvar documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n], documentTypes = keySet(documentTypes_);\n\nvar mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n], mediaTypes = keySet(mediaTypes_);\n\nvar mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n], mediaFeatures = keySet(mediaFeatures_);\n\nvar mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n], mediaValueKeywords = keySet(mediaValueKeywords_);\n\nvar propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n], propertyKeywords = keySet(propertyKeywords_);\n\nvar nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\nvar fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n], fontProperties = keySet(fontProperties_);\n\nvar counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n], counterDescriptors = keySet(counterDescriptors_);\n\nvar colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n], colorKeywords = keySet(colorKeywords_);\n\nvar valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n], valueKeywords = keySet(valueKeywords_);\n\nvar allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n\nexport const keywords = {properties: propertyKeywords_, colors: colorKeywords_,\n fonts: fontProperties_, values: valueKeywords_, all: allWords}\n\nconst defaults = {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n}\n\nexport const css = mkCSS({name: \"css\"})\n\nfunction tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n}\n\nexport const sCSS = mkCSS({\n name: \"scss\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName.special\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n }\n})\n\nexport const less = mkCSS({\n name: \"less\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n }\n})\n\nexport const gss = mkCSS({\n name: \"gss\",\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n})\n","var keywords = {\n \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true, \"error\": true,\n \"rune\":true, \"any\":true, \"comparable\":true\n};\n\nvar atoms = {\n \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"delete\":true, \"imag\":true,\n \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n \"println\":true, \"real\":true, \"recover\":true\n};\n\nvar isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\nvar curPunc;\n\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (/[\\d\\.]/.test(ch)) {\n if (ch == \".\") {\n stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n } else if (ch == \"0\") {\n stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n } else {\n stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n }\n return \"number\";\n }\n if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n stream.eatWhile(isOperatorChar);\n return \"operator\";\n }\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n var cur = stream.current();\n if (keywords.propertyIsEnumerable(cur)) {\n if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n return \"keyword\";\n }\n if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n return \"variable\";\n}\n\nfunction tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && quote != \"`\" && next == \"\\\\\";\n }\n if (end || !(escaped || quote == \"`\"))\n state.tokenize = tokenBase;\n return \"string\";\n };\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n}\n\nfunction Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type) {\n return state.context = new Context(state.indented, col, type, null, state.context);\n}\nfunction popContext(state) {\n if (!state.context.prev) return;\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\n// Interface\n\nexport const go = {\n name: \"go\",\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n if (ctx.type == \"case\") ctx.type = \"}\";\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"case\") ctx.type = \"case\";\n else if (curPunc == \"}\" && ctx.type == \"}\") popContext(state);\n else if (curPunc == ctx.type) popContext(state);\n state.startOfLine = false;\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n if (state.tokenize != tokenBase && state.tokenize != null) return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) return ctx.indented;\n var closing = firstChar == ctx.type;\n if (ctx.align) return ctx.column + (closing ? 0 : 1);\n else return ctx.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: /^\\s([{}]|case |default\\s*:)$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}}\n }\n};\n\n","var words = {};\nfunction define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n return 'string.special'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n};\n\nfunction tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n}\n\nvar tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string.special\"\n }\n}\n\nfunction tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n name: \"shell\",\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n commentTokens: {line: \"#\"}\n }\n};\n"],"names":["atoms","specialForms","coreSymbols","atom","createLookupMap","specialForm","coreSymbol","hasBodyParameter","delimiter","numberLiteral","characterLiteral","qualifiedSymbol","base","stream","state","eatSpace","eat","match","tokenize","inString","skipToEnd","matches","symbol","lastToken","inComment","is","charAt","next","eatWhile","c","escaped","parenthesisCount","backUp","words","obj","i","length","value","test","RegExp","Object","propertyIsEnumerable","clojure","name","startState","ctx","prev","start","indentTo","token","sol","typeStylePair","type","style","current","indentUnit","column","indent","languageData","closeBrackets","brackets","commentTokens","line","autocomplete","concat","ERRORCLASS","wordRegexp","join","operators","delimiters","identifiers","atProp","wordOperators","indentKeywords","keywords","stringPrefixes","regexPrefixes","constants","tokenBase","scope","align","scopeOffset","offset","lineOffset","indentation","dedent","ch","peek","longComment","floatLiteral","intLiteral","tokenFactory","prop","singleline","outclass","eol","alignOffset","_indent","matched","coffeeScript","fillAlign","delimiter_index","indexOf","slice","exec","tokenLexer","text","closer","closes","Context","indented","info","this","pushContext","col","context","popContext","t","typeBefore","pos","prevToken","string","typeAtEndOfLine","isTopScope","clike","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","types","builtin","blockKeywords","defKeywords","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","number","isOperatorChar","isIdentifierChar","isReservedIdentifier","quote","result","end","tokenComment","cur","contains","maybeEnd","maybeEOL","typeFirstDefinitions","startOfLine","undefined","styleDefs","textAfter","firstChar","closing","dontIndentStatements","hook","unit","switchBlock","allmanIndentation","indentOnInput","block","open","close","keys","str","split","word","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","pointerHook","_stream","cIsReservedIdentifier","toLowerCase","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","replace","tokenTripleString","tokenNestedComment","depth","u","U","L","R","scala","cx","kotlin","tripleString","skipTo","stringTokenizer","tokenCeylonString","pushInterpolationStack","interpolationStack","push","popInterpolationStack","pop","tokenDartString","raw","tripleQuoted","tokenStringHelper","tokenInterpolation","tokenInterpolationIdentifier","first","toUpperCase","dart","r","sizeInterpolationStack","_","mkCSS","override","inline","defaults","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","propertyKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenString","tokenParenthesized","pass","states","popAndPass","n","wordAsValue","hasOwnProperty","stateArg","top","atBlock","iCx","Math","max","allWords","keySet","array","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","tokenCComment","css","$","gss","break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","var","bool","byte","complex64","complex128","float32","float64","int8","int16","int32","int64","uint8","uint16","uint32","uint64","int","uint","uintptr","error","rune","any","comparable","true","false","iota","nil","append","cap","complex","copy","delete","imag","len","make","new","panic","print","println","real","recover","define","dict","commonAtoms","commonKeywords","commonCommands","tokens","unshift","tokenDollar","heredoc","shift","tokenStringStart","shell"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|