Skip to content

Atom's iconic One Dark theme, now in midnight blurple, in Visual Studio Code.

License

Notifications You must be signed in to change notification settings

one-midnight-theme/vscode-one-midnight

 
 

Repository files navigation

Atom's iconic One Dark theme, now in deep midnight blurple.

Preview in vscode.dev Version

SCREENSHOTS

ScreenShot

ScreenShot

Installation

One Midnight is not yet available on the VSCode Marketplace, but you can install it locally very easily:

git clone https://github.com/one-midnight-theme/vscode-one-midnight.git && cd vscode-one-midnight && npm run build-local

Note: You must have yarn installed to do this.

Donation

If you like this extension, you could donate to the creator of its predecessor, One Dark Pro, via PayPal. It will encourage them to make the original extension better and better, which will in turn make this one better!

Tweaks & theming

If you want to play around with new colors, use the setting workbench.colorCustomizations to customize the currently selected theme. For example, you can add this snippet in your "settings.json" file:

"workbench.colorCustomizations": {
  "tab.activeBackground": "#282c34",
  "activityBar.background": "#282c34",
  "sideBar.background": "#282c34",
  "tab.activeBorder": "#d19a66",
}

or use the setting editor.tokenColorCustomizations

"editor.tokenColorCustomizations": {
  "[One Midnight]": {
    "textMateRules": [
      {
        "scope": ["source.python"],
        "settings": {
          "foreground": "#e06c75"
        }
      }
    ]
  }
}

Italic

You could set this in your setting.json to make code be italic

"editor.tokenColorCustomizations": {
    "textMateRules": [
      {
        "name": "italic font",
        "scope": [
          "comment",
          "keyword",
          "storage",
          "keyword.control",
          "keyword.control.from",
          "keyword.control.flow",
          "keyword.operator.new",
          "keyword.control.import",
          "keyword.control.export",
          "keyword.control.default",
          "keyword.control.trycatch",
          "keyword.control.conditional",
          "storage.type",
          "storage.type.class",
          "storage.modifier.tsx",
          "storage.type.function",
          "storage.modifier.async",
          "variable.language",
          "variable.language.this",
          "variable.language.super",
          "meta.class",
          "meta.var.expr",
          "constant.language.null",
          "support.type.primitive",
          "entity.name.method.js",
          "entity.other.attribute-name",
          "punctuation.definition.comment",
          "text.html.basic entity.other.attribute-name",
          "tag.decorator.js entity.name.tag.js",
          "tag.decorator.js punctuation.definition.tag.js",
          "source.js constant.other.object.key.js string.unquoted.label.js",
        ],
        "settings": {
          "fontStyle": "italic",
        }
      },
    ]
  }

more info

Python & Pylance users

For Python users I recommend using the Pylance extension for fast, feature-rich language support.

Semantic colors can be customized in settings.json by associating the Pylance semantic token types and modifiers with the desired colors.

  • Semantic token types

    • class, enum
    • parameter, variable, property, enumMember
    • function, member
    • module
    • intrinsic
    • magicFunction (dunder methods)
    • selfParameter, clsParameter
  • Semantic token modifiers

    • declaration
    • readonly, static, abstract
    • async
    • typeHint, typeHintComment
    • decorator
    • builtin

The scope inspector tool allows you to explore what semantic tokens are present in a source file and what theme rules they match to.

Example of customizing semantic colors in settings.json:

{
  "editor.semanticTokenColorCustomizations": {
    "[One Midnight]": {
      // Apply to this theme only
      "enabled": true,
      "rules": {
        "magicFunction:python": "#ee0000",
        "function.declaration:python": "#990000",
        "*.decorator:python": "#0000dd",
        "*.typeHint:python": "#5500aa",
        "*.typeHintComment:python": "#aaaaaa",
        "parameter:python": "#aaaaaa"
      }
    }
  }
}

Please check the official documentation, Theme Color Reference and Theme Color, for more helpful information.

More info

CHANGELOG

CHANGELOG.MD

DOCS & CONTRIBUTE

This document (https://binaryify.github.io/OneDark-Pro/) includes instructions on how to install and edit the theme.

To help with documentation, first fork and clone this repository.

cd to the OneMidnight folder

Run yarn

Then run npm run docs to serve the documentation locally at localhost:3000.

Contributors

This project exists thanks to all the people who contributed to the original "One Dark Pro" theme: Contributors

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.0%
  • JavaScript 2.0%