import * as path from 'path'; import { generateTheme, IColorSet } from 'vscode-theme-generator'; const themeName = 'Elementary'; const colors = { white: '#FFFFFF', cyan: '#008080', red: '#ff0000', green: '#00b300', ubuntuOrange: '#e95420', titleBarGray: '#dcdcdc', inactiveTitleBarGray: '#ececec', titleBarText: '#5e5e5e', titleBarTextInactive: '#848484', menuGray: '#f5f5f5', menuSelectionGray: '#d6d6d6', bodyGray: '#eff0f1', editorGray: '#2f2f2f', sideBarGray: '#e2e2e2', highlightGray: '#cccccc', commentGray: '#8c8c8c', textGray: '#5e5e5e', textSelectionGray: '#92a2a0', ubuntuWarmGray: '#aea79f', editorBackground: '#fdf6e3', editorGutter: '#eee8d5', lineNumberGray: '#93a1a1', tabsBackground: '#fbefce', tabsBorder: '#e9d18d', activityBarGray: '#d1d1d1', syntaxOrange: '#cb5226', syntaxGold: '#b78e1d', syntaxTeal: '#49b8b9', syntaxLightGray: '#aab5b1', syntaxLavender: '#727dc9', } const colorSet: IColorSet = { type: 'light', base: { background: colors.bodyGray, foreground: colors.textGray, color1: colors.textSelectionGray, color2: colors.red, color3: colors.syntaxGold, color4: colors.syntaxTeal, }, syntax: { comment: colors.syntaxLightGray, function: colors.syntaxLavender, functionCall: colors.syntaxLavender, keyword: colors.syntaxOrange, markdownQuote: colors.syntaxLightGray, storage: colors.syntaxOrange, }, terminal: { black: '#586e75', red: '#cb4b16', green: '#859900', yellow: '#b58900', blue: '#268bd2', magenta: '#d33682', cyan: '#2aa198', white: '#eeeeee', brightBlack: '#073642', brightRed: '#dc322f', brightGreen: '#859900', brightYellow: '#b58900', brightBlue: '#268bd2', brightMagenta: '#ec0048', brightCyan: '#2aa198', brightWhite: '#94a3a5', }, ui: { invisibles: colors.tabsBorder, findMatchHighlight: colors.menuSelectionGray, findRangeHighlight: colors.menuSelectionGray, guide: colors.tabsBorder, rangeHighlight: colors.menuSelectionGray, selection: colors.textSelectionGray, selectionHighlight: colors.menuSelectionGray, }, overrides: { 'activityBar.background': colors.activityBarGray, 'activityBar.foreground': colors.textGray, // 'debugToolBar.background': colors.white, 'dropdown.background': colors.menuGray, 'editor.background': colors.editorBackground, 'editorCursor.foreground': colors.textGray, 'editorGroupHeader.tabsBackground': colors.tabsBackground, 'editorGroupHeader.tabsBorder': colors.tabsBorder, 'editorGutter.background': colors.editorGutter, 'editorHoverWidget.background': colors.tabsBackground, 'editorIndentGuide.activeBackground': colors.textSelectionGray, 'editorLineNumber.foreground': colors.lineNumberGray, 'editorMarkerNavigation.background': colors.tabsBackground, 'editorRuler.foreground': colors.tabsBorder, 'editorSuggestWidget.background': colors.tabsBackground, 'editorWidget.background': colors.tabsBackground, 'input.background': colors.menuGray, 'list.activeSelectionBackground': colors.textSelectionGray, 'list.hoverBackground': colors.highlightGray, 'list.inactiveSelectionBackground': colors.highlightGray, 'menu.background': colors.menuGray, 'menu.selectionBackground': colors.menuSelectionGray, 'menu.selectionForeground': colors.textGray, // 'menubar.selectionBackground': colors.white, // 'menubar.selectionForeground': colors.textGray, 'panel.background': colors.tabsBackground, 'panel.border': colors.tabsBorder, 'peekViewEditor.background': colors.tabsBackground, 'peekViewResult.background': colors.tabsBackground, 'peekViewTitle.background': colors.tabsBackground, 'sideBar.background': colors.sideBarGray, 'sideBarSectionHeader.background': colors.activityBarGray, // 'statusBar.background': colors.white, // 'statusBar.debuggingForeground': colors.white, 'statusBar.foreground': colors.textGray, 'tab.activeBorder': colors.editorBackground, 'tab.border': colors.tabsBorder, 'tab.inactiveBackground': colors.tabsBackground, 'tab.inactiveBorder': colors.tabsBorder, // 'tab.unfocusedInactiveBackground': colors.bodyGray, 'terminal.background': '#252e32', 'terminal.foreground': '#94a3a5', 'titleBar.activeBackground': colors.titleBarGray, 'titleBar.activeForeground': colors.titleBarText, 'titleBar.inactiveBackground': colors.inactiveTitleBarGray, 'titleBar.inactiveForeground': colors.titleBarTextInactive, } }; var fileName = themeName .toLowerCase() .replace(/\[\w*\]/, '') .trim() .replace(/\s+/, '-') + '.json'; generateTheme(themeName, colorSet, path.join(__dirname, fileName));