├── .gitignore ├── .supports-a-file-icon-customization ├── Default.sublime-commands ├── Icons.py ├── LICENSE ├── Preferences.sublime-settings ├── README.md ├── activation.py ├── assets ├── arrow-left.png ├── arrow-left@2x.png ├── arrow-left@3x.png ├── arrow-right.png ├── arrow-right@2x.png ├── arrow-right@3x.png ├── buffer.png ├── buffer@2x.png ├── buffer@3x.png ├── close.png ├── close@2x.png ├── close@3x.png ├── context.png ├── context@2x.png ├── context@3x.png ├── dirty.png ├── dirty@2x.png ├── dirty@3x.png ├── fold.png ├── fold@2x.png ├── fold@3x.png ├── folder-open-1.png ├── folder-open-1@2x.png ├── folder-open-1@3x.png ├── folder-open-2.png ├── folder-open-2@2x.png ├── folder-open-2@3x.png ├── folder-open-3.png ├── folder-open-3@2x.png ├── folder-open-3@3x.png ├── folder-open-4.png ├── folder-open-4@2x.png ├── folder-open-4@3x.png ├── folder-open-5.png ├── folder-open-5@2x.png ├── folder-open-5@3x.png ├── folder-open-6.png ├── folder-open-6@2x.png ├── folder-open-6@3x.png ├── folder-open.png ├── folder-open@1x.png ├── folder-open@2x.png ├── folder-symlink.png ├── folder-symlink@2x.png ├── folder-symlink@3x.png ├── folder.png ├── folder@2x.png ├── folder@3x.png ├── gitignore.png ├── gitignore@2x.png ├── gitignore@3x.png ├── highlight.png ├── highlight@2x.png ├── highlight@3x.png ├── input-bg.png ├── input-bg@2x.png ├── input-bg@3x.png ├── input-border.png ├── input-border@2x.png ├── input-border@3x.png ├── input-command.png ├── input-command@2x.png ├── input-command@3x.png ├── input-prompt.png ├── input-prompt@2x.png ├── input-prompt@3x.png ├── input-search.png ├── input-search@2x.png ├── input-search@3x.png ├── input-symbol.png ├── input-symbol@2x.png ├── input-symbol@3x.png ├── input-word.png ├── input-word@2x.png ├── input-word@3x.png ├── inselection.png ├── inselection@2x.png ├── inselection@3x.png ├── kind-bg.png ├── kind-bg@2x.png ├── kind-bg@3x.png ├── kind-border.png ├── kind-border@2x.png ├── kind-border@3x.png ├── matchcase.png ├── matchcase@2x.png ├── matchcase@3x.png ├── overflow-menu.png ├── overflow-menu@2x.png ├── overflow-menu@3x.png ├── overlay-bg.png ├── overlay-bg@2x.png ├── overlay-bg@3x.png ├── overlay-border.png ├── overlay-border@2x.png ├── overlay-border@3x.png ├── overlay-shadow.png ├── overlay-shadow@2x.png ├── overlay-shadow@3x.png ├── popup-bg.png ├── popup-bg@2x.png ├── popup-bg@3x.png ├── popup-border.png ├── popup-border@2x.png ├── popup-border@3x.png ├── popup-shadow.png ├── popup-shadow@2x.png ├── popup-shadow@3x.png ├── regex.png ├── regex@2x.png ├── regex@3x.png ├── replace-preserve-case.png ├── replace-preserve-case@2x.png ├── replace-preserve-case@3x.png ├── reverse.png ├── reverse@2x.png ├── reverse@3x.png ├── scrollbar-horizontal-wide.png ├── scrollbar-horizontal-wide@2x.png ├── scrollbar-horizontal-wide@3x.png ├── scrollbar-horizontal.png ├── scrollbar-horizontal@2x.png ├── scrollbar-horizontal@3x.png ├── scrollbar-vertical-wide.png ├── scrollbar-vertical-wide@2x.png ├── scrollbar-vertical-wide@3x.png ├── scrollbar-vertical.png ├── scrollbar-vertical@2x.png ├── scrollbar-vertical@3x.png ├── separator-bottom.png ├── separator-bottom@2x.png ├── separator-bottom@3x.png ├── separator-right.png ├── separator-right@2x.png ├── separator-right@3x.png ├── separator-sidebar.png ├── separator-sidebar@2x.png ├── separator-sidebar@3x.png ├── separator-top.png ├── separator-top@2x.png ├── separator-top@3x.png ├── sidebar-title.png ├── sidebar-title@2x.png ├── sidebar-title@3x.png ├── sidebar.png ├── sidebar@2x.png ├── sidebar@3x.png ├── spinner.png ├── spinner1.png ├── spinner10.png ├── spinner10@2x.png ├── spinner10@3x.png ├── spinner11.png ├── spinner11@2x.png ├── spinner11@3x.png ├── spinner1@2x.png ├── spinner1@3x.png ├── spinner2.png ├── spinner2@2x.png ├── spinner2@3x.png ├── spinner3.png ├── spinner3@2x.png ├── spinner3@3x.png ├── spinner4.png ├── spinner4@2x.png ├── spinner4@3x.png ├── spinner5.png ├── spinner5@2x.png ├── spinner5@3x.png ├── spinner6.png ├── spinner6@2x.png ├── spinner6@3x.png ├── spinner7.png ├── spinner7@2x.png ├── spinner7@3x.png ├── spinner8.png ├── spinner8@2x.png ├── spinner8@3x.png ├── spinner9.png ├── spinner9@2x.png ├── spinner9@3x.png ├── spinner@2x.png ├── spinner@3x.png ├── switch-panel.png ├── switch-panel@2x.png ├── switch-panel@3x.png ├── tab-border.png ├── tab-border@2x.png ├── tab-border@3x.png ├── tab.png ├── tab@2x.png ├── tab@3x.png ├── tabset-border.png ├── tabset-border@2x.png ├── tabset-border@3x.png ├── tree-highlight-border.png ├── tree-highlight-border@2x.png ├── tree-highlight-border@3x.png ├── tree-highlight.png ├── tree-highlight@2x.png ├── tree-highlight@3x.png ├── unfold.png ├── unfold@2x.png ├── unfold@3x.png ├── word.png ├── word@2x.png ├── word@3x.png ├── wrap.png ├── wrap@2x.png └── wrap@3x.png ├── ayu-dark.sublime-color-scheme ├── ayu-dark.sublime-theme ├── ayu-light.sublime-color-scheme ├── ayu-light.sublime-theme ├── ayu-mirage.sublime-color-scheme ├── ayu-mirage.sublime-theme ├── ayu.skins ├── dependencies.json ├── icons ├── file_type_angular.png ├── file_type_angular@2x.png ├── file_type_binary.png ├── file_type_binary@2x.png ├── file_type_c.png ├── file_type_c@2x.png ├── file_type_cpp.png ├── file_type_cpp@2x.png ├── file_type_csharp.png ├── file_type_csharp@2x.png ├── file_type_css.png ├── file_type_css@2x.png ├── file_type_default.png ├── file_type_default@2x.png ├── file_type_font.png ├── file_type_font@2x.png ├── file_type_git.png ├── file_type_git@2x.png ├── file_type_graphviz.png ├── file_type_graphviz@2x.png ├── file_type_groovy.png ├── file_type_groovy@2x.png ├── file_type_gruntfile.png ├── file_type_gruntfile@2x.png ├── file_type_haskell.png ├── file_type_haskell@2x.png ├── file_type_haxe.png ├── file_type_haxe@2x.png ├── file_type_image.png ├── file_type_image@2x.png ├── file_type_js.png ├── file_type_js@2x.png ├── file_type_json.png ├── file_type_json@2x.png ├── file_type_license.png ├── file_type_license@2x.png ├── file_type_liquid.png ├── file_type_liquid@2x.png ├── file_type_lisp.png ├── file_type_lisp@2x.png ├── file_type_lua.png ├── file_type_lua@2x.png ├── file_type_markdown.png ├── file_type_markdown@2x.png ├── file_type_mustache.png ├── file_type_mustache@2x.png ├── file_type_nodejs.png ├── file_type_nodejs@2x.png ├── file_type_npm.png ├── file_type_npm@2x.png ├── file_type_pdf.png ├── file_type_pdf@2x.png ├── file_type_perl.png ├── file_type_perl@2x.png ├── file_type_php.png ├── file_type_php@2x.png ├── file_type_procfile.png ├── file_type_procfile@2x.png ├── file_type_python.png ├── file_type_python@2x.png ├── file_type_ruby.png ├── file_type_ruby@2x.png ├── file_type_rust.png ├── file_type_rust@2x.png ├── file_type_sass.png ├── file_type_sass@2x.png ├── file_type_scss.png ├── file_type_scss@2x.png ├── file_type_shell.png ├── file_type_shell@2x.png ├── file_type_sketch.png ├── file_type_sketch@2x.png ├── file_type_source.png ├── file_type_source@2x.png ├── file_type_stata.png ├── file_type_stata@2x.png ├── file_type_swift.png ├── file_type_swift@2x.png ├── file_type_text.png ├── file_type_text@2x.png ├── file_type_todo.png ├── file_type_todo@2x.png ├── file_type_typescript.png ├── file_type_typescript@2x.png ├── file_type_vue.png ├── file_type_vue@2x.png ├── file_type_yaml.png └── file_type_yaml@2x.png ├── images ├── browse.png ├── dark-separator.png ├── hero.png ├── light-separator.png └── mirage-no-separator.png ├── messages.json ├── messages ├── 1.2.0.txt ├── 1.3.0.txt ├── 1.3.1.txt ├── 1.3.2.txt ├── 1.3.3.txt ├── 2.0.0.txt ├── 2.0.1.txt ├── 2.0.2.txt ├── 2.0.3.txt ├── 2.1.0.txt ├── 2.1.1.txt ├── 2.2.0.txt ├── 2.2.1.txt ├── 2.2.2.txt ├── 3.0.0.md ├── 3.0.1.md ├── 3.1.0.md ├── 3.1.1.md ├── 3.1.2.md ├── 3.1.4.md ├── 3.1.5.md ├── 3.1.6.md ├── 3.1.8.md ├── 3.2.0.md ├── 3.2.1.md ├── 4.0.0.md ├── 5.0.0.md ├── 5.0.1.md ├── 5.0.2.md ├── 5.0.3.md ├── 5.1.0.md ├── 6.0.0.md ├── 6.0.1.md ├── 6.0.2.md ├── 6.0.3.md ├── 6.1.0.md ├── 6.1.1.md ├── 6.1.2.md └── install.md ├── package.json ├── src ├── build.ts └── templates │ ├── index.ts │ ├── syntax.ts │ ├── ui.ts │ └── widget.ts ├── test ├── C.c ├── Example.dart ├── Golang.go ├── Haskell.hs ├── JSX.jsx ├── Java.java ├── JavaScript.js ├── Jupyter.ipynb ├── Python.py ├── Ruby.rb ├── TSX.tsx ├── TypeScript.ts ├── pubspec.lock └── pubspec.yaml ├── tsconfig.json ├── widgets ├── Widget - ayu-dark.stTheme ├── Widget - ayu-dark.sublime-settings ├── Widget - ayu-light.stTheme ├── Widget - ayu-light.sublime-settings ├── Widget - ayu-mirage.stTheme └── Widget - ayu-mirage.sublime-settings └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | ### OSX template 2 | .DS_Store 3 | .AppleDouble 4 | .LSOverride 5 | 6 | # Thumbnails 7 | ._* 8 | 9 | *.cache 10 | *.pyc 11 | npm-debug.log 12 | 13 | # Dependency directories 14 | node_modules 15 | jspm_packages 16 | 17 | # Optional npm cache directory 18 | .npm 19 | 20 | # color scheme gens 21 | /ayu-*.yml 22 | -------------------------------------------------------------------------------- /.supports-a-file-icon-customization: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/.supports-a-file-icon-customization -------------------------------------------------------------------------------- /Default.sublime-commands: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "caption": "ayu: Activate theme", 4 | "command": "ayu_activate" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /Icons.py: -------------------------------------------------------------------------------- 1 | """ 2 | A File Icon Installer 3 | """ 4 | 5 | import os 6 | import sublime 7 | 8 | ICONS_PACKAGE = "A File Icon" 9 | PKGCTRL_SETTINGS = "Package Control.sublime-settings" 10 | 11 | THEME_NAME = os.path.splitext( 12 | os.path.basename(os.path.dirname(__file__)) 13 | )[0] 14 | 15 | MSG = """\ 16 |
17 | 32 | 33 | {} requires A File Icon package for enhanced
support of 34 | the file-specific icons. 35 |

Would you like to install it?
36 |
Install Cancel 37 |
38 | """.format(THEME_NAME) 39 | 40 | 41 | def is_installed(): 42 | pkgctrl_settings = sublime.load_settings(PKGCTRL_SETTINGS) 43 | 44 | return ICONS_PACKAGE in set(pkgctrl_settings.get("installed_packages", [])) 45 | 46 | 47 | def on_navigate(href): 48 | if href.startswith("install"): 49 | install() 50 | else: 51 | hide() 52 | 53 | 54 | def install(): 55 | print("Installing `{}` ...".format(ICONS_PACKAGE)) 56 | sublime.active_window().run_command( 57 | "advanced_install_package", {"packages": ICONS_PACKAGE} 58 | ) 59 | hide() 60 | 61 | 62 | def hide(): 63 | sublime.active_window().active_view().hide_popup() 64 | 65 | 66 | def plugin_loaded(): 67 | from package_control import events 68 | 69 | if events.install(THEME_NAME) and not is_installed(): 70 | window = sublime.active_window() 71 | view = window.active_view() 72 | window.focus_view(view) 73 | row = int(view.rowcol(view.visible_region().a)[0] + 1) 74 | view.show_popup( 75 | MSG, 76 | location=view.text_point(row, 5), 77 | max_width=800, 78 | max_height=800, 79 | on_navigate=on_navigate 80 | ) 81 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Ike Ku 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Preferences.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | // ayu theme: Use native titlebars on macOs 3 | "ui_native_titlebar": false, 4 | 5 | // ayu theme: Show separators between panels 6 | "ui_separator": false, 7 | 8 | // ayu theme: Display wider scrollbars 9 | "ui_wide_scrollbars": false 10 | } 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![ayu](./images/hero.png) 2 | 3 | `ayu` is a simple theme with bright colors and comes in three versions — *dark*, *mirage* and *light* for all day long comfortable work. 4 | 5 | > All screenshots use wonderful [Pragmata Pro](https://fsd.it/shop/fonts/pragmatapro/) font 6 | 7 | ### File Icons 8 | 9 | `ayu` from version `3.0.0` supports customization via [A File Icon](https://github.com/SublimeText/AFileIcon) package. Please install it and restart Sublime for better experience. 10 | 11 | ### Custom UI fonts 12 | 13 | Since verion `5.0.0` monospaced fonts options were removed. But it's still possible to use your favourite font in the 14 | user interface of the theme, just follow through these simple steps: 15 | 16 | ![ayu mono](./images/browse.png) 17 | 18 | 1. Pull up command pallete via cmd/ctrl + shift + p 19 | 2. Type in `Browse packages` 20 | 3. Navigate to the `/User` folder 21 | 4. Create a file named `ayu-mirage.sublime-theme` to modify mirage or `ayu-light.sublime-theme` and `ayu-dark.sublime-theme` 22 | 5. Open that file in Sublime 23 | 6. Copy and paste following content: 24 | ```json 25 | [ 26 | { 27 | "class": "sidebar_label", 28 | "font.face": "PragmataPro Mono Liga" 29 | }, 30 | { 31 | "class": "sidebar_heading", 32 | "font.face": "PragmataPro Mono Liga" 33 | }, 34 | { 35 | "class": "tab_label", 36 | "font.face": "PragmataPro Mono Liga" 37 | }, 38 | { 39 | "class": "label_control", 40 | "font.face": "PragmataPro Mono Liga" 41 | }, 42 | { 43 | "class": "quick_panel_label", 44 | "font.face": "PragmataPro Mono Liga" 45 | }, 46 | { 47 | "class": "quick_panel_path_label", 48 | "font.face": "PragmataPro Mono Liga" 49 | } 50 | ] 51 | ``` 52 | 7. Replace `PragmataPro Mono Liga` with the font of your choice 53 | 8. Save and enjoy :) 54 | 55 | ### Screenshots 56 | 57 |
Light with ui_separator option on
58 | 59 | ![Light](images/light-separator.png) 60 | 61 | --- 62 | 63 | 64 |
Mirage with ui_separator option off
65 | 66 | ![Mirage](images/mirage-no-separator.png) 67 | 68 | --- 69 | 70 |
Dark with ui_separator option on
71 | 72 | ![Dark](images/dark-separator.png) 73 | 74 | ### Settings 75 | 76 | ```js 77 | "ui_native_titlebar": true, // use native titlebars on macOs 78 | "ui_separator": true, // separators between panels 79 | "ui_wide_scrollbars": true, // wider scrollbars 80 | ``` 81 | 82 | --- 83 | 84 | ### Installation 85 | 86 | ###### Recommended 87 | 88 | You can install `ayu` via [Package Control](https://packagecontrol.io/). 89 | 90 | 1. Press cmd/ctrl + shift + p to open the command palette. 91 | 2. Type `install package` and press enter. Then search for `ayu` 92 | 93 | ###### Manual 94 | 95 | 1. Download the [latest release](https://github.com/dempfi/ayu/releases/latest), extract and rename the directory to `ayu`. 96 | 2. Move the directory inside your sublime `/Packages` directory. *(Preferences > Browse packages...)* 97 | 98 | --- 99 | 100 | ### Activation 101 | 102 | ###### Recommended 103 | 104 | Open command palette via `Tools > Command Palette` (or cmd/ctrl + shift + p) and type `ayu: Activate theme`. 105 | 106 | 107 | ###### With Skins package 108 | 109 | [Skins](https://packagecontrol.io/packages/Skins) provides a simple and efficient way to change themes, save your own presets and quickly try out new looks. Activation is as simple as opening up the command palette, running `Select Skin` and choosing `Ayu - Dark` or `Ayu - Light` from the list. 110 | 111 | 112 | ###### Via Preferences 113 | 114 | Add these lines to your user settings *Preferences > Setting - User*: 115 | 116 | For light theme: 117 | 118 | ```js 119 | "theme": "ayu-light.sublime-theme", 120 | "color_scheme": "Packages/ayu/ayu-light.sublime-color-scheme", 121 | ``` 122 | 123 | For mirage theme: 124 | 125 | ```js 126 | "theme": "ayu-mirage.sublime-theme", 127 | "color_scheme": "Packages/ayu/ayu-mirage.sublime-color-scheme", 128 | ``` 129 | 130 | For dark theme: 131 | 132 | ```js 133 | "theme": "ayu-dark.sublime-theme", 134 | "color_scheme": "Packages/ayu/ayu-dark.sublime-color-scheme", 135 | ``` 136 | 137 | ### Sublime Text 3 138 | ayu no longer supports Sublime Text 3. But you still can download 139 | and install manually [latest supported version](https://github.com/dempfi/ayu/releases/tag/v5.1.0). 140 | 141 | ### Sublime Text 2 142 | 143 | ayu no longer supports Sublime Text 2. But you still can download 144 | and install manually [latest supported version](https://github.com/dempfi/ayu/releases/tag/3.2.2). 145 | 146 | ### Related projects and ports 147 | 148 | - `ayu` for Ace: https://github.com/ayu-theme/ayu-ace 149 | - `ayu` colors as NPM package: https://github.com/ayu-theme/ayu-colors 150 | - `ayu` for VSCode: https://github.com/teabyii/vscode-ayu 151 | - `ayu` for XCode: https://github.com/vburojevic/ayu-xcode-theme 152 | - `ayu` for [Kakoune](https://github.com/mawww/kakoune): https://github.com/icantjuddle/ayu-kak 153 | 154 |
155 | made with ❤️ by @dempfi 156 |
157 | -------------------------------------------------------------------------------- /activation.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import sublime 4 | import sublime_plugin 5 | import functools 6 | 7 | NO_SELECTION = -1 8 | PREFERENCES = 'Preferences.sublime-settings' 9 | THEMES = [ 'ayu-light', 'ayu-mirage', 'ayu-dark' ] 10 | 11 | 12 | def get_color_scheme(): 13 | return sublime.load_settings(PREFERENCES).get('color_scheme', '') 14 | 15 | 16 | def set_color_scheme(path): 17 | return sublime.load_settings(PREFERENCES).set('color_scheme', path) 18 | 19 | 20 | def preview_color_scheme(path): 21 | set_color_scheme(path) 22 | 23 | 24 | def activate_color_scheme(path): 25 | set_color_scheme(path) 26 | commit() 27 | 28 | 29 | def revert_color_scheme(path): 30 | set_color_scheme(path) 31 | 32 | 33 | def get_ui_theme(): 34 | return sublime.load_settings(PREFERENCES).get('theme', '') 35 | 36 | 37 | def set_ui_theme(path): 38 | return sublime.load_settings(PREFERENCES).set('theme', path) 39 | 40 | 41 | def preview_ui_theme(path): 42 | set_ui_theme(path) 43 | 44 | 45 | def activate_ui_theme(path): 46 | set_ui_theme(path) 47 | commit() 48 | 49 | 50 | def revert_ui_theme(path): 51 | set_ui_theme(path) 52 | 53 | 54 | def commit(): 55 | return sublime.save_settings(PREFERENCES) 56 | 57 | 58 | class AyuActivateCommand(sublime_plugin.WindowCommand): 59 | 60 | def display_list(self, themes): 61 | self.themes = themes 62 | self.initial_color_scheme = get_color_scheme() 63 | self.initial_ui_theme = get_ui_theme() 64 | 65 | quick_list = [theme.replace("-", " ") for theme in self.themes] 66 | self.quick_list = quick_list 67 | 68 | self.window.show_quick_panel(quick_list, self.on_done, on_highlight=self.on_highlighted) 69 | 70 | def on_highlighted(self, index): 71 | preview_color_scheme(self._quick_list_to_scheme(index)) 72 | preview_ui_theme(self._quick_list_to_theme(index)) 73 | 74 | def on_done(self, index): 75 | if index is NO_SELECTION: 76 | revert_color_scheme(self.initial_color_scheme) 77 | revert_ui_theme(self.initial_ui_theme) 78 | return 79 | 80 | color_scheme = self._quick_list_to_scheme(index) 81 | activate_color_scheme(color_scheme) 82 | 83 | ui_theme = self._quick_list_to_theme(index) 84 | activate_ui_theme(ui_theme) 85 | 86 | def _quick_list_to_scheme(self, index): 87 | return 'Packages/ayu/%s.sublime-color-scheme' % THEMES[index] 88 | 89 | def _quick_list_to_theme(self, index): 90 | return '%s.sublime-theme' % THEMES[index] 91 | 92 | def run(self): 93 | self.display_list(THEMES) 94 | -------------------------------------------------------------------------------- /assets/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/arrow-left.png -------------------------------------------------------------------------------- /assets/arrow-left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/arrow-left@2x.png -------------------------------------------------------------------------------- /assets/arrow-left@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/arrow-left@3x.png -------------------------------------------------------------------------------- /assets/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/arrow-right.png -------------------------------------------------------------------------------- /assets/arrow-right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/arrow-right@2x.png -------------------------------------------------------------------------------- /assets/arrow-right@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/arrow-right@3x.png -------------------------------------------------------------------------------- /assets/buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/buffer.png -------------------------------------------------------------------------------- /assets/buffer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/buffer@2x.png -------------------------------------------------------------------------------- /assets/buffer@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/buffer@3x.png -------------------------------------------------------------------------------- /assets/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/close.png -------------------------------------------------------------------------------- /assets/close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/close@2x.png -------------------------------------------------------------------------------- /assets/close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/close@3x.png -------------------------------------------------------------------------------- /assets/context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/context.png -------------------------------------------------------------------------------- /assets/context@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/context@2x.png -------------------------------------------------------------------------------- /assets/context@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/context@3x.png -------------------------------------------------------------------------------- /assets/dirty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/dirty.png -------------------------------------------------------------------------------- /assets/dirty@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/dirty@2x.png -------------------------------------------------------------------------------- /assets/dirty@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/dirty@3x.png -------------------------------------------------------------------------------- /assets/fold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/fold.png -------------------------------------------------------------------------------- /assets/fold@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/fold@2x.png -------------------------------------------------------------------------------- /assets/fold@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/fold@3x.png -------------------------------------------------------------------------------- /assets/folder-open-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-1.png -------------------------------------------------------------------------------- /assets/folder-open-1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-1@2x.png -------------------------------------------------------------------------------- /assets/folder-open-1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-1@3x.png -------------------------------------------------------------------------------- /assets/folder-open-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-2.png -------------------------------------------------------------------------------- /assets/folder-open-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-2@2x.png -------------------------------------------------------------------------------- /assets/folder-open-2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-2@3x.png -------------------------------------------------------------------------------- /assets/folder-open-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-3.png -------------------------------------------------------------------------------- /assets/folder-open-3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-3@2x.png -------------------------------------------------------------------------------- /assets/folder-open-3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-3@3x.png -------------------------------------------------------------------------------- /assets/folder-open-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-4.png -------------------------------------------------------------------------------- /assets/folder-open-4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-4@2x.png -------------------------------------------------------------------------------- /assets/folder-open-4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-4@3x.png -------------------------------------------------------------------------------- /assets/folder-open-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-5.png -------------------------------------------------------------------------------- /assets/folder-open-5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-5@2x.png -------------------------------------------------------------------------------- /assets/folder-open-5@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-5@3x.png -------------------------------------------------------------------------------- /assets/folder-open-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-6.png -------------------------------------------------------------------------------- /assets/folder-open-6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-6@2x.png -------------------------------------------------------------------------------- /assets/folder-open-6@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open-6@3x.png -------------------------------------------------------------------------------- /assets/folder-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open.png -------------------------------------------------------------------------------- /assets/folder-open@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open@1x.png -------------------------------------------------------------------------------- /assets/folder-open@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-open@2x.png -------------------------------------------------------------------------------- /assets/folder-symlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-symlink.png -------------------------------------------------------------------------------- /assets/folder-symlink@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-symlink@2x.png -------------------------------------------------------------------------------- /assets/folder-symlink@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder-symlink@3x.png -------------------------------------------------------------------------------- /assets/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder.png -------------------------------------------------------------------------------- /assets/folder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder@2x.png -------------------------------------------------------------------------------- /assets/folder@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/folder@3x.png -------------------------------------------------------------------------------- /assets/gitignore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/gitignore.png -------------------------------------------------------------------------------- /assets/gitignore@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/gitignore@2x.png -------------------------------------------------------------------------------- /assets/gitignore@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/gitignore@3x.png -------------------------------------------------------------------------------- /assets/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/highlight.png -------------------------------------------------------------------------------- /assets/highlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/highlight@2x.png -------------------------------------------------------------------------------- /assets/highlight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/highlight@3x.png -------------------------------------------------------------------------------- /assets/input-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-bg.png -------------------------------------------------------------------------------- /assets/input-bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-bg@2x.png -------------------------------------------------------------------------------- /assets/input-bg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-bg@3x.png -------------------------------------------------------------------------------- /assets/input-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-border.png -------------------------------------------------------------------------------- /assets/input-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-border@2x.png -------------------------------------------------------------------------------- /assets/input-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-border@3x.png -------------------------------------------------------------------------------- /assets/input-command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-command.png -------------------------------------------------------------------------------- /assets/input-command@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-command@2x.png -------------------------------------------------------------------------------- /assets/input-command@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-command@3x.png -------------------------------------------------------------------------------- /assets/input-prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-prompt.png -------------------------------------------------------------------------------- /assets/input-prompt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-prompt@2x.png -------------------------------------------------------------------------------- /assets/input-prompt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-prompt@3x.png -------------------------------------------------------------------------------- /assets/input-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-search.png -------------------------------------------------------------------------------- /assets/input-search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-search@2x.png -------------------------------------------------------------------------------- /assets/input-search@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-search@3x.png -------------------------------------------------------------------------------- /assets/input-symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-symbol.png -------------------------------------------------------------------------------- /assets/input-symbol@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-symbol@2x.png -------------------------------------------------------------------------------- /assets/input-symbol@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-symbol@3x.png -------------------------------------------------------------------------------- /assets/input-word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-word.png -------------------------------------------------------------------------------- /assets/input-word@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-word@2x.png -------------------------------------------------------------------------------- /assets/input-word@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/input-word@3x.png -------------------------------------------------------------------------------- /assets/inselection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/inselection.png -------------------------------------------------------------------------------- /assets/inselection@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/inselection@2x.png -------------------------------------------------------------------------------- /assets/inselection@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/inselection@3x.png -------------------------------------------------------------------------------- /assets/kind-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/kind-bg.png -------------------------------------------------------------------------------- /assets/kind-bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/kind-bg@2x.png -------------------------------------------------------------------------------- /assets/kind-bg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/kind-bg@3x.png -------------------------------------------------------------------------------- /assets/kind-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/kind-border.png -------------------------------------------------------------------------------- /assets/kind-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/kind-border@2x.png -------------------------------------------------------------------------------- /assets/kind-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/kind-border@3x.png -------------------------------------------------------------------------------- /assets/matchcase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/matchcase.png -------------------------------------------------------------------------------- /assets/matchcase@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/matchcase@2x.png -------------------------------------------------------------------------------- /assets/matchcase@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/matchcase@3x.png -------------------------------------------------------------------------------- /assets/overflow-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overflow-menu.png -------------------------------------------------------------------------------- /assets/overflow-menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overflow-menu@2x.png -------------------------------------------------------------------------------- /assets/overflow-menu@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overflow-menu@3x.png -------------------------------------------------------------------------------- /assets/overlay-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-bg.png -------------------------------------------------------------------------------- /assets/overlay-bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-bg@2x.png -------------------------------------------------------------------------------- /assets/overlay-bg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-bg@3x.png -------------------------------------------------------------------------------- /assets/overlay-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-border.png -------------------------------------------------------------------------------- /assets/overlay-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-border@2x.png -------------------------------------------------------------------------------- /assets/overlay-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-border@3x.png -------------------------------------------------------------------------------- /assets/overlay-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-shadow.png -------------------------------------------------------------------------------- /assets/overlay-shadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-shadow@2x.png -------------------------------------------------------------------------------- /assets/overlay-shadow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/overlay-shadow@3x.png -------------------------------------------------------------------------------- /assets/popup-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-bg.png -------------------------------------------------------------------------------- /assets/popup-bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-bg@2x.png -------------------------------------------------------------------------------- /assets/popup-bg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-bg@3x.png -------------------------------------------------------------------------------- /assets/popup-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-border.png -------------------------------------------------------------------------------- /assets/popup-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-border@2x.png -------------------------------------------------------------------------------- /assets/popup-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-border@3x.png -------------------------------------------------------------------------------- /assets/popup-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-shadow.png -------------------------------------------------------------------------------- /assets/popup-shadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-shadow@2x.png -------------------------------------------------------------------------------- /assets/popup-shadow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/popup-shadow@3x.png -------------------------------------------------------------------------------- /assets/regex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/regex.png -------------------------------------------------------------------------------- /assets/regex@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/regex@2x.png -------------------------------------------------------------------------------- /assets/regex@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/regex@3x.png -------------------------------------------------------------------------------- /assets/replace-preserve-case.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/replace-preserve-case.png -------------------------------------------------------------------------------- /assets/replace-preserve-case@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/replace-preserve-case@2x.png -------------------------------------------------------------------------------- /assets/replace-preserve-case@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/replace-preserve-case@3x.png -------------------------------------------------------------------------------- /assets/reverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/reverse.png -------------------------------------------------------------------------------- /assets/reverse@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/reverse@2x.png -------------------------------------------------------------------------------- /assets/reverse@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/reverse@3x.png -------------------------------------------------------------------------------- /assets/scrollbar-horizontal-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-horizontal-wide.png -------------------------------------------------------------------------------- /assets/scrollbar-horizontal-wide@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-horizontal-wide@2x.png -------------------------------------------------------------------------------- /assets/scrollbar-horizontal-wide@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-horizontal-wide@3x.png -------------------------------------------------------------------------------- /assets/scrollbar-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-horizontal.png -------------------------------------------------------------------------------- /assets/scrollbar-horizontal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-horizontal@2x.png -------------------------------------------------------------------------------- /assets/scrollbar-horizontal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-horizontal@3x.png -------------------------------------------------------------------------------- /assets/scrollbar-vertical-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-vertical-wide.png -------------------------------------------------------------------------------- /assets/scrollbar-vertical-wide@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-vertical-wide@2x.png -------------------------------------------------------------------------------- /assets/scrollbar-vertical-wide@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-vertical-wide@3x.png -------------------------------------------------------------------------------- /assets/scrollbar-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-vertical.png -------------------------------------------------------------------------------- /assets/scrollbar-vertical@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-vertical@2x.png -------------------------------------------------------------------------------- /assets/scrollbar-vertical@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/scrollbar-vertical@3x.png -------------------------------------------------------------------------------- /assets/separator-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-bottom.png -------------------------------------------------------------------------------- /assets/separator-bottom@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-bottom@2x.png -------------------------------------------------------------------------------- /assets/separator-bottom@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-bottom@3x.png -------------------------------------------------------------------------------- /assets/separator-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-right.png -------------------------------------------------------------------------------- /assets/separator-right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-right@2x.png -------------------------------------------------------------------------------- /assets/separator-right@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-right@3x.png -------------------------------------------------------------------------------- /assets/separator-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-sidebar.png -------------------------------------------------------------------------------- /assets/separator-sidebar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-sidebar@2x.png -------------------------------------------------------------------------------- /assets/separator-sidebar@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-sidebar@3x.png -------------------------------------------------------------------------------- /assets/separator-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-top.png -------------------------------------------------------------------------------- /assets/separator-top@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-top@2x.png -------------------------------------------------------------------------------- /assets/separator-top@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/separator-top@3x.png -------------------------------------------------------------------------------- /assets/sidebar-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/sidebar-title.png -------------------------------------------------------------------------------- /assets/sidebar-title@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/sidebar-title@2x.png -------------------------------------------------------------------------------- /assets/sidebar-title@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/sidebar-title@3x.png -------------------------------------------------------------------------------- /assets/sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/sidebar.png -------------------------------------------------------------------------------- /assets/sidebar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/sidebar@2x.png -------------------------------------------------------------------------------- /assets/sidebar@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/sidebar@3x.png -------------------------------------------------------------------------------- /assets/spinner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner.png -------------------------------------------------------------------------------- /assets/spinner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner1.png -------------------------------------------------------------------------------- /assets/spinner10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner10.png -------------------------------------------------------------------------------- /assets/spinner10@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner10@2x.png -------------------------------------------------------------------------------- /assets/spinner10@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner10@3x.png -------------------------------------------------------------------------------- /assets/spinner11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner11.png -------------------------------------------------------------------------------- /assets/spinner11@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner11@2x.png -------------------------------------------------------------------------------- /assets/spinner11@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner11@3x.png -------------------------------------------------------------------------------- /assets/spinner1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner1@2x.png -------------------------------------------------------------------------------- /assets/spinner1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner1@3x.png -------------------------------------------------------------------------------- /assets/spinner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner2.png -------------------------------------------------------------------------------- /assets/spinner2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner2@2x.png -------------------------------------------------------------------------------- /assets/spinner2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner2@3x.png -------------------------------------------------------------------------------- /assets/spinner3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner3.png -------------------------------------------------------------------------------- /assets/spinner3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner3@2x.png -------------------------------------------------------------------------------- /assets/spinner3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner3@3x.png -------------------------------------------------------------------------------- /assets/spinner4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner4.png -------------------------------------------------------------------------------- /assets/spinner4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner4@2x.png -------------------------------------------------------------------------------- /assets/spinner4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner4@3x.png -------------------------------------------------------------------------------- /assets/spinner5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner5.png -------------------------------------------------------------------------------- /assets/spinner5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner5@2x.png -------------------------------------------------------------------------------- /assets/spinner5@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner5@3x.png -------------------------------------------------------------------------------- /assets/spinner6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner6.png -------------------------------------------------------------------------------- /assets/spinner6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner6@2x.png -------------------------------------------------------------------------------- /assets/spinner6@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner6@3x.png -------------------------------------------------------------------------------- /assets/spinner7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner7.png -------------------------------------------------------------------------------- /assets/spinner7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner7@2x.png -------------------------------------------------------------------------------- /assets/spinner7@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner7@3x.png -------------------------------------------------------------------------------- /assets/spinner8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner8.png -------------------------------------------------------------------------------- /assets/spinner8@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner8@2x.png -------------------------------------------------------------------------------- /assets/spinner8@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner8@3x.png -------------------------------------------------------------------------------- /assets/spinner9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner9.png -------------------------------------------------------------------------------- /assets/spinner9@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner9@2x.png -------------------------------------------------------------------------------- /assets/spinner9@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner9@3x.png -------------------------------------------------------------------------------- /assets/spinner@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner@2x.png -------------------------------------------------------------------------------- /assets/spinner@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/spinner@3x.png -------------------------------------------------------------------------------- /assets/switch-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/switch-panel.png -------------------------------------------------------------------------------- /assets/switch-panel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/switch-panel@2x.png -------------------------------------------------------------------------------- /assets/switch-panel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/switch-panel@3x.png -------------------------------------------------------------------------------- /assets/tab-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tab-border.png -------------------------------------------------------------------------------- /assets/tab-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tab-border@2x.png -------------------------------------------------------------------------------- /assets/tab-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tab-border@3x.png -------------------------------------------------------------------------------- /assets/tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tab.png -------------------------------------------------------------------------------- /assets/tab@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tab@2x.png -------------------------------------------------------------------------------- /assets/tab@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tab@3x.png -------------------------------------------------------------------------------- /assets/tabset-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tabset-border.png -------------------------------------------------------------------------------- /assets/tabset-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tabset-border@2x.png -------------------------------------------------------------------------------- /assets/tabset-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tabset-border@3x.png -------------------------------------------------------------------------------- /assets/tree-highlight-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tree-highlight-border.png -------------------------------------------------------------------------------- /assets/tree-highlight-border@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tree-highlight-border@2x.png -------------------------------------------------------------------------------- /assets/tree-highlight-border@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tree-highlight-border@3x.png -------------------------------------------------------------------------------- /assets/tree-highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tree-highlight.png -------------------------------------------------------------------------------- /assets/tree-highlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tree-highlight@2x.png -------------------------------------------------------------------------------- /assets/tree-highlight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/tree-highlight@3x.png -------------------------------------------------------------------------------- /assets/unfold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/unfold.png -------------------------------------------------------------------------------- /assets/unfold@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/unfold@2x.png -------------------------------------------------------------------------------- /assets/unfold@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/unfold@3x.png -------------------------------------------------------------------------------- /assets/word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/word.png -------------------------------------------------------------------------------- /assets/word@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/word@2x.png -------------------------------------------------------------------------------- /assets/word@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/word@3x.png -------------------------------------------------------------------------------- /assets/wrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/wrap.png -------------------------------------------------------------------------------- /assets/wrap@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/wrap@2x.png -------------------------------------------------------------------------------- /assets/wrap@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/assets/wrap@3x.png -------------------------------------------------------------------------------- /ayu-dark.sublime-color-scheme: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ayu", 3 | "globals": { 4 | "background": "#10141c", 5 | "foreground": "#bfbdb6", 6 | "invisibles": "#bfbdb64d", 7 | "caret": "#e6b450", 8 | "block_caret": "#e6b4504d", 9 | "line_highlight": "#161a24", 10 | "accent": "#e6b450", 11 | "popup_css": "\n html, body {\n background-color: #141821;\n color: #bfbdb6;\n --mdpopups-font-mono: \"PragmataPro Mono Liga\", \"sf mono\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n --mdpopups-bg: #141821;\n --mdpopups-link: #59c2ff;\n }\n body {\n padding: 1px 3px;\n }\n a {\n color: rgba(89,194,255, .7);\n }\n ", 12 | "gutter": "#10141c", 13 | "gutter_foreground": "#6c738099", 14 | "line_diff_width": "2", 15 | "line_diff_added": "#7fd962b3", 16 | "line_diff_modified": "#73b8ffb3", 17 | "line_diff_deleted": "#f26d78b3", 18 | "selection": "#3388ff40", 19 | "selection_border": "#3388ff40", 20 | "selection_border_width": "1", 21 | "inactive_selection": "#80b5ff26", 22 | "inactive_selection_border": "#80b5ff26", 23 | "selection_corner_style": "round", 24 | "selection_corner_radius": "4", 25 | "highlight": "#e6b45066", 26 | "find_highlight": "#e6b450", 27 | "find_highlight_foreground": "#10141c", 28 | "guide": "#6c73804d", 29 | "active_guide": "#6c738080", 30 | "stack_guide": "#6c738066", 31 | "shadow": "#10141c4d", 32 | "shadow_width": "3" 33 | }, 34 | "rules": [ 35 | { 36 | "name": "Comment", 37 | "scope": "comment", 38 | "font_style": "italic", 39 | "foreground": "#acb6bf8c" 40 | }, 41 | { 42 | "name": "String", 43 | "scope": "string - meta.template, constant.other.symbol, string.quoted", 44 | "foreground": "#aad94c" 45 | }, 46 | { 47 | "name": "Regular Expressions and Escape Characters", 48 | "scope": "string.regexp, constant.character, constant.other", 49 | "foreground": "#95e6cb" 50 | }, 51 | { 52 | "name": "Number", 53 | "scope": "constant.numeric", 54 | "foreground": "#e6b450" 55 | }, 56 | { 57 | "name": "Built-in constants", 58 | "scope": "constant.language", 59 | "foreground": "#e6b450" 60 | }, 61 | { 62 | "name": "Constants", 63 | "scope": "meta.constant, entity.name.constant", 64 | "foreground": "#d2a6ff" 65 | }, 66 | { 67 | "name": "Variable", 68 | "scope": "variable", 69 | "foreground": "#bfbdb6" 70 | }, 71 | { 72 | "name": "Member Variable", 73 | "scope": "variable.member", 74 | "foreground": "#f07178" 75 | }, 76 | { 77 | "name": "Language variable", 78 | "scope": "variable.language", 79 | "font_style": "italic", 80 | "foreground": "#39bae6" 81 | }, 82 | { 83 | "name": "Storage", 84 | "scope": "storage, storage.type.keyword", 85 | "foreground": "#ff8f40" 86 | }, 87 | { 88 | "name": "Keyword", 89 | "scope": "keyword", 90 | "foreground": "#ff8f40" 91 | }, 92 | { 93 | "name": "Java keyword fixes", 94 | "scope": "source.java meta.class.java meta.class.identifier.java storage.type.java", 95 | "foreground": "#ff8f40" 96 | }, 97 | { 98 | "name": "Operators", 99 | "scope": "keyword.operator", 100 | "foreground": "#f29668" 101 | }, 102 | { 103 | "name": "Separators like ; or ,", 104 | "scope": "punctuation.separator, punctuation.terminator", 105 | "foreground": "#bfbdb6b3" 106 | }, 107 | { 108 | "name": "Punctuation", 109 | "scope": "punctuation.section", 110 | "foreground": "#bfbdb6" 111 | }, 112 | { 113 | "name": "Accessor", 114 | "scope": "punctuation.accessor", 115 | "foreground": "#f29668" 116 | }, 117 | { 118 | "name": "JavaScript/TypeScript interpolation punctuation", 119 | "scope": "punctuation.definition.template-expression", 120 | "foreground": "#ff8f40" 121 | }, 122 | { 123 | "name": "Ruby interpolation punctuation", 124 | "scope": "punctuation.section.interpolation", 125 | "foreground": "#ff8f40" 126 | }, 127 | { 128 | "name": "Types fixes", 129 | "scope": "source.java storage.type, source.haskell storage.type, source.c storage.type, source.zig storage.type", 130 | "foreground": "#59c2ff" 131 | }, 132 | { 133 | "name": "Inherited class type", 134 | "scope": "entity.other.inherited-class", 135 | "foreground": "#39bae6" 136 | }, 137 | { 138 | "name": "Lambda arrow", 139 | "scope": "storage.type.function", 140 | "foreground": "#ff8f40" 141 | }, 142 | { 143 | "name": "Java primitive variable types", 144 | "scope": "source.java storage.type.primitive", 145 | "foreground": "#39bae6" 146 | }, 147 | { 148 | "name": "Function name", 149 | "scope": "entity.name.function", 150 | "foreground": "#ffb454" 151 | }, 152 | { 153 | "name": "Function arguments", 154 | "scope": "variable.parameter, meta.parameter", 155 | "foreground": "#d2a6ff" 156 | }, 157 | { 158 | "name": "Function call", 159 | "scope": "variable.function, variable.annotation, meta.function-call.generic, support.function.go", 160 | "foreground": "#ffb454" 161 | }, 162 | { 163 | "name": "Library function", 164 | "scope": "support.function, support.macro", 165 | "foreground": "#f07178" 166 | }, 167 | { 168 | "name": "Imports and packages", 169 | "scope": "entity.name.import, entity.name.package", 170 | "foreground": "#aad94c" 171 | }, 172 | { 173 | "name": "Entity name", 174 | "scope": "entity.name, source.js meta.function-call.constructor variable.type", 175 | "foreground": "#59c2ff" 176 | }, 177 | { 178 | "name": "Tag", 179 | "scope": "entity.name.tag, meta.tag.sgml", 180 | "foreground": "#39bae6" 181 | }, 182 | { 183 | "name": "Tag start/end", 184 | "scope": "punctuation.definition.tag.end, punctuation.definition.tag.begin, punctuation.definition.tag", 185 | "foreground": "#39bae680" 186 | }, 187 | { 188 | "name": "Tag attribute", 189 | "scope": "entity.other.attribute-name", 190 | "foreground": "#ffb454" 191 | }, 192 | { 193 | "name": "Library constant", 194 | "scope": "support.constant", 195 | "font_style": "italic", 196 | "foreground": "#f29668" 197 | }, 198 | { 199 | "name": "Library class/type", 200 | "scope": "support.type, support.class, source.go storage.type", 201 | "foreground": "#39bae6" 202 | }, 203 | { 204 | "name": "Decorators/annotation", 205 | "scope": "meta.decorator variable.other, meta.decorator punctuation.decorator, storage.type.annotation, variable.annotation, punctuation.definition.annotation", 206 | "foreground": "#e6b673" 207 | }, 208 | { 209 | "name": "Invalid", 210 | "scope": "invalid", 211 | "foreground": "#d95757" 212 | }, 213 | { 214 | "name": "diff.header", 215 | "scope": "meta.diff, meta.diff.header", 216 | "foreground": "#c594c5" 217 | }, 218 | { 219 | "name": "Ruby class methods", 220 | "scope": "source.ruby variable.other.readwrite", 221 | "foreground": "#ffb454" 222 | }, 223 | { 224 | "name": "CSS tag names", 225 | "scope": "source.css entity.name.tag, source.sass entity.name.tag, source.scss entity.name.tag, source.less entity.name.tag, source.stylus entity.name.tag", 226 | "foreground": "#59c2ff" 227 | }, 228 | { 229 | "name": "CSS browser prefix", 230 | "scope": "source.css support.type, source.sass support.type, source.scss support.type, source.less support.type, source.stylus support.type", 231 | "foreground": "#acb6bf8c" 232 | }, 233 | { 234 | "name": "CSS Properties", 235 | "scope": "support.type.property-name", 236 | "font_style": "normal", 237 | "foreground": "#39bae6" 238 | }, 239 | { 240 | "name": "Search Results Nums", 241 | "scope": "constant.numeric.line-number.find-in-files - match", 242 | "foreground": "#acb6bf8c" 243 | }, 244 | { 245 | "name": "Search Results Match Nums", 246 | "scope": "constant.numeric.line-number.match", 247 | "foreground": "#ff8f40" 248 | }, 249 | { 250 | "name": "Search Results Lines", 251 | "scope": "entity.name.filename.find-in-files", 252 | "foreground": "#aad94c" 253 | }, 254 | { 255 | "scope": "message.error", 256 | "foreground": "#d95757" 257 | }, 258 | { 259 | "name": "Markup heading", 260 | "scope": "markup.heading, markup.heading entity.name", 261 | "font_style": "bold", 262 | "foreground": "#aad94c" 263 | }, 264 | { 265 | "name": "Markup links", 266 | "scope": "markup.underline.link, string.other.link", 267 | "foreground": "#59c2ff" 268 | }, 269 | { 270 | "name": "Markup Italic", 271 | "scope": "markup.italic", 272 | "font_style": "italic", 273 | "foreground": "#f07178" 274 | }, 275 | { 276 | "name": "Markup Bold", 277 | "scope": "markup.bold", 278 | "font_style": "bold", 279 | "foreground": "#f07178" 280 | }, 281 | { 282 | "name": "Markup Bold/italic", 283 | "scope": "markup.italic markup.bold, markup.bold markup.italic", 284 | "font_style": "bold italic" 285 | }, 286 | { 287 | "name": "Markup Code", 288 | "scope": "markup.raw", 289 | "background": "#bfbdb605" 290 | }, 291 | { 292 | "name": "Markup Code Inline", 293 | "scope": "markup.raw.inline", 294 | "background": "#bfbdb60f" 295 | }, 296 | { 297 | "name": "Markdown Separator", 298 | "scope": "meta.separator", 299 | "font_style": "bold", 300 | "background": "#bfbdb60f", 301 | "foreground": "#acb6bf8c" 302 | }, 303 | { 304 | "name": "Markup Blockquote", 305 | "scope": "markup.quote", 306 | "foreground": "#95e6cb", 307 | "font_style": "italic" 308 | }, 309 | { 310 | "name": "Markup List Bullet", 311 | "scope": "markup.list punctuation.definition.list.begin", 312 | "foreground": "#ffb454" 313 | }, 314 | { 315 | "name": "Markup added", 316 | "scope": "markup.inserted", 317 | "foreground": "#7fd962" 318 | }, 319 | { 320 | "name": "Markup modified", 321 | "scope": "markup.changed", 322 | "foreground": "#73b8ff" 323 | }, 324 | { 325 | "name": "Markup removed", 326 | "scope": "markup.deleted", 327 | "foreground": "#f26d78" 328 | }, 329 | { 330 | "name": "Markup Strike", 331 | "scope": "markup.strike", 332 | "foreground": "#e6b673" 333 | }, 334 | { 335 | "name": "Markup Table", 336 | "scope": "markup.table", 337 | "background": "#bfbdb60f", 338 | "foreground": "#39bae6" 339 | }, 340 | { 341 | "name": "Markup Raw Inline", 342 | "scope": "text.html.markdown markup.inline.raw", 343 | "foreground": "#f29668" 344 | }, 345 | { 346 | "name": "Markdown - Line Break", 347 | "scope": "text.html.markdown meta.dummy.line-break", 348 | "background": "#acb6bf8c", 349 | "foreground": "#acb6bf8c" 350 | }, 351 | { 352 | "name": "Markdown - Raw Block Fenced", 353 | "scope": "punctuation.definition.markdown", 354 | "background": "#bfbdb6", 355 | "foreground": "#acb6bf8c" 356 | } 357 | ] 358 | } -------------------------------------------------------------------------------- /ayu-light.sublime-color-scheme: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ayu", 3 | "globals": { 4 | "background": "#fcfcfc", 5 | "foreground": "#5c6166", 6 | "invisibles": "#5c61664d", 7 | "caret": "#ffaa33", 8 | "block_caret": "#ffaa334d", 9 | "line_highlight": "#8a91991a", 10 | "accent": "#ffaa33", 11 | "popup_css": "\n html, body {\n background-color: #ffffff;\n color: #5c6166;\n --mdpopups-font-mono: \"PragmataPro Mono Liga\", \"sf mono\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n --mdpopups-bg: #ffffff;\n --mdpopups-link: #22a4e6;\n }\n body {\n padding: 1px 3px;\n }\n a {\n color: rgba(34,164,230, .7);\n }\n ", 12 | "gutter": "#fcfcfc", 13 | "gutter_foreground": "#8a919966", 14 | "line_diff_width": "2", 15 | "line_diff_added": "#6cbf43b3", 16 | "line_diff_modified": "#478accb3", 17 | "line_diff_deleted": "#ff7383b3", 18 | "selection": "#036dd626", 19 | "selection_border": "#036dd626", 20 | "selection_border_width": "1", 21 | "inactive_selection": "#5696d61a", 22 | "inactive_selection_border": "#5696d61a", 23 | "selection_corner_style": "round", 24 | "selection_corner_radius": "4", 25 | "highlight": "#ffaa3366", 26 | "find_highlight": "#ffaa33", 27 | "find_highlight_foreground": "#fcfcfc", 28 | "guide": "#8a91992e", 29 | "active_guide": "#8a919959", 30 | "stack_guide": "#8a919966", 31 | "shadow": "#fcfcfc4d", 32 | "shadow_width": "3" 33 | }, 34 | "rules": [ 35 | { 36 | "name": "Comment", 37 | "scope": "comment", 38 | "font_style": "italic", 39 | "foreground": "#787b8099" 40 | }, 41 | { 42 | "name": "String", 43 | "scope": "string - meta.template, constant.other.symbol, string.quoted", 44 | "foreground": "#86b300" 45 | }, 46 | { 47 | "name": "Regular Expressions and Escape Characters", 48 | "scope": "string.regexp, constant.character, constant.other", 49 | "foreground": "#4cbf99" 50 | }, 51 | { 52 | "name": "Number", 53 | "scope": "constant.numeric", 54 | "foreground": "#ffaa33" 55 | }, 56 | { 57 | "name": "Built-in constants", 58 | "scope": "constant.language", 59 | "foreground": "#ffaa33" 60 | }, 61 | { 62 | "name": "Constants", 63 | "scope": "meta.constant, entity.name.constant", 64 | "foreground": "#a37acc" 65 | }, 66 | { 67 | "name": "Variable", 68 | "scope": "variable", 69 | "foreground": "#5c6166" 70 | }, 71 | { 72 | "name": "Member Variable", 73 | "scope": "variable.member", 74 | "foreground": "#f07171" 75 | }, 76 | { 77 | "name": "Language variable", 78 | "scope": "variable.language", 79 | "font_style": "italic", 80 | "foreground": "#55b4d4" 81 | }, 82 | { 83 | "name": "Storage", 84 | "scope": "storage, storage.type.keyword", 85 | "foreground": "#fa8d3e" 86 | }, 87 | { 88 | "name": "Keyword", 89 | "scope": "keyword", 90 | "foreground": "#fa8d3e" 91 | }, 92 | { 93 | "name": "Java keyword fixes", 94 | "scope": "source.java meta.class.java meta.class.identifier.java storage.type.java", 95 | "foreground": "#fa8d3e" 96 | }, 97 | { 98 | "name": "Operators", 99 | "scope": "keyword.operator", 100 | "foreground": "#ed9366" 101 | }, 102 | { 103 | "name": "Separators like ; or ,", 104 | "scope": "punctuation.separator, punctuation.terminator", 105 | "foreground": "#5c6166b3" 106 | }, 107 | { 108 | "name": "Punctuation", 109 | "scope": "punctuation.section", 110 | "foreground": "#5c6166" 111 | }, 112 | { 113 | "name": "Accessor", 114 | "scope": "punctuation.accessor", 115 | "foreground": "#ed9366" 116 | }, 117 | { 118 | "name": "JavaScript/TypeScript interpolation punctuation", 119 | "scope": "punctuation.definition.template-expression", 120 | "foreground": "#fa8d3e" 121 | }, 122 | { 123 | "name": "Ruby interpolation punctuation", 124 | "scope": "punctuation.section.interpolation", 125 | "foreground": "#fa8d3e" 126 | }, 127 | { 128 | "name": "Types fixes", 129 | "scope": "source.java storage.type, source.haskell storage.type, source.c storage.type, source.zig storage.type", 130 | "foreground": "#22a4e6" 131 | }, 132 | { 133 | "name": "Inherited class type", 134 | "scope": "entity.other.inherited-class", 135 | "foreground": "#55b4d4" 136 | }, 137 | { 138 | "name": "Lambda arrow", 139 | "scope": "storage.type.function", 140 | "foreground": "#fa8d3e" 141 | }, 142 | { 143 | "name": "Java primitive variable types", 144 | "scope": "source.java storage.type.primitive", 145 | "foreground": "#55b4d4" 146 | }, 147 | { 148 | "name": "Function name", 149 | "scope": "entity.name.function", 150 | "foreground": "#f2ae49" 151 | }, 152 | { 153 | "name": "Function arguments", 154 | "scope": "variable.parameter, meta.parameter", 155 | "foreground": "#a37acc" 156 | }, 157 | { 158 | "name": "Function call", 159 | "scope": "variable.function, variable.annotation, meta.function-call.generic, support.function.go", 160 | "foreground": "#f2ae49" 161 | }, 162 | { 163 | "name": "Library function", 164 | "scope": "support.function, support.macro", 165 | "foreground": "#f07171" 166 | }, 167 | { 168 | "name": "Imports and packages", 169 | "scope": "entity.name.import, entity.name.package", 170 | "foreground": "#86b300" 171 | }, 172 | { 173 | "name": "Entity name", 174 | "scope": "entity.name, source.js meta.function-call.constructor variable.type", 175 | "foreground": "#22a4e6" 176 | }, 177 | { 178 | "name": "Tag", 179 | "scope": "entity.name.tag, meta.tag.sgml", 180 | "foreground": "#55b4d4" 181 | }, 182 | { 183 | "name": "Tag start/end", 184 | "scope": "punctuation.definition.tag.end, punctuation.definition.tag.begin, punctuation.definition.tag", 185 | "foreground": "#55b4d480" 186 | }, 187 | { 188 | "name": "Tag attribute", 189 | "scope": "entity.other.attribute-name", 190 | "foreground": "#f2ae49" 191 | }, 192 | { 193 | "name": "Library constant", 194 | "scope": "support.constant", 195 | "font_style": "italic", 196 | "foreground": "#ed9366" 197 | }, 198 | { 199 | "name": "Library class/type", 200 | "scope": "support.type, support.class, source.go storage.type", 201 | "foreground": "#55b4d4" 202 | }, 203 | { 204 | "name": "Decorators/annotation", 205 | "scope": "meta.decorator variable.other, meta.decorator punctuation.decorator, storage.type.annotation, variable.annotation, punctuation.definition.annotation", 206 | "foreground": "#e6b673" 207 | }, 208 | { 209 | "name": "Invalid", 210 | "scope": "invalid", 211 | "foreground": "#e65050" 212 | }, 213 | { 214 | "name": "diff.header", 215 | "scope": "meta.diff, meta.diff.header", 216 | "foreground": "#c594c5" 217 | }, 218 | { 219 | "name": "Ruby class methods", 220 | "scope": "source.ruby variable.other.readwrite", 221 | "foreground": "#f2ae49" 222 | }, 223 | { 224 | "name": "CSS tag names", 225 | "scope": "source.css entity.name.tag, source.sass entity.name.tag, source.scss entity.name.tag, source.less entity.name.tag, source.stylus entity.name.tag", 226 | "foreground": "#22a4e6" 227 | }, 228 | { 229 | "name": "CSS browser prefix", 230 | "scope": "source.css support.type, source.sass support.type, source.scss support.type, source.less support.type, source.stylus support.type", 231 | "foreground": "#787b8099" 232 | }, 233 | { 234 | "name": "CSS Properties", 235 | "scope": "support.type.property-name", 236 | "font_style": "normal", 237 | "foreground": "#55b4d4" 238 | }, 239 | { 240 | "name": "Search Results Nums", 241 | "scope": "constant.numeric.line-number.find-in-files - match", 242 | "foreground": "#787b8099" 243 | }, 244 | { 245 | "name": "Search Results Match Nums", 246 | "scope": "constant.numeric.line-number.match", 247 | "foreground": "#fa8d3e" 248 | }, 249 | { 250 | "name": "Search Results Lines", 251 | "scope": "entity.name.filename.find-in-files", 252 | "foreground": "#86b300" 253 | }, 254 | { 255 | "scope": "message.error", 256 | "foreground": "#e65050" 257 | }, 258 | { 259 | "name": "Markup heading", 260 | "scope": "markup.heading, markup.heading entity.name", 261 | "font_style": "bold", 262 | "foreground": "#86b300" 263 | }, 264 | { 265 | "name": "Markup links", 266 | "scope": "markup.underline.link, string.other.link", 267 | "foreground": "#22a4e6" 268 | }, 269 | { 270 | "name": "Markup Italic", 271 | "scope": "markup.italic", 272 | "font_style": "italic", 273 | "foreground": "#f07171" 274 | }, 275 | { 276 | "name": "Markup Bold", 277 | "scope": "markup.bold", 278 | "font_style": "bold", 279 | "foreground": "#f07171" 280 | }, 281 | { 282 | "name": "Markup Bold/italic", 283 | "scope": "markup.italic markup.bold, markup.bold markup.italic", 284 | "font_style": "bold italic" 285 | }, 286 | { 287 | "name": "Markup Code", 288 | "scope": "markup.raw", 289 | "background": "#5c616605" 290 | }, 291 | { 292 | "name": "Markup Code Inline", 293 | "scope": "markup.raw.inline", 294 | "background": "#5c61660f" 295 | }, 296 | { 297 | "name": "Markdown Separator", 298 | "scope": "meta.separator", 299 | "font_style": "bold", 300 | "background": "#5c61660f", 301 | "foreground": "#787b8099" 302 | }, 303 | { 304 | "name": "Markup Blockquote", 305 | "scope": "markup.quote", 306 | "foreground": "#4cbf99", 307 | "font_style": "italic" 308 | }, 309 | { 310 | "name": "Markup List Bullet", 311 | "scope": "markup.list punctuation.definition.list.begin", 312 | "foreground": "#f2ae49" 313 | }, 314 | { 315 | "name": "Markup added", 316 | "scope": "markup.inserted", 317 | "foreground": "#6cbf43" 318 | }, 319 | { 320 | "name": "Markup modified", 321 | "scope": "markup.changed", 322 | "foreground": "#478acc" 323 | }, 324 | { 325 | "name": "Markup removed", 326 | "scope": "markup.deleted", 327 | "foreground": "#ff7383" 328 | }, 329 | { 330 | "name": "Markup Strike", 331 | "scope": "markup.strike", 332 | "foreground": "#e6b673" 333 | }, 334 | { 335 | "name": "Markup Table", 336 | "scope": "markup.table", 337 | "background": "#5c61660f", 338 | "foreground": "#55b4d4" 339 | }, 340 | { 341 | "name": "Markup Raw Inline", 342 | "scope": "text.html.markdown markup.inline.raw", 343 | "foreground": "#ed9366" 344 | }, 345 | { 346 | "name": "Markdown - Line Break", 347 | "scope": "text.html.markdown meta.dummy.line-break", 348 | "background": "#787b8099", 349 | "foreground": "#787b8099" 350 | }, 351 | { 352 | "name": "Markdown - Raw Block Fenced", 353 | "scope": "punctuation.definition.markdown", 354 | "background": "#5c6166", 355 | "foreground": "#787b8099" 356 | } 357 | ] 358 | } -------------------------------------------------------------------------------- /ayu-mirage.sublime-color-scheme: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ayu", 3 | "globals": { 4 | "background": "#242936", 5 | "foreground": "#cccac2", 6 | "invisibles": "#cccac24d", 7 | "caret": "#ffcc66", 8 | "block_caret": "#ffcc664d", 9 | "line_highlight": "#1a1f29", 10 | "accent": "#ffcc66", 11 | "popup_css": "\n html, body {\n background-color: #282e3b;\n color: #cccac2;\n --mdpopups-font-mono: \"PragmataPro Mono Liga\", \"sf mono\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n --mdpopups-bg: #282e3b;\n --mdpopups-link: #73d0ff;\n }\n body {\n padding: 1px 3px;\n }\n a {\n color: rgba(115,208,255, .7);\n }\n ", 12 | "gutter": "#242936", 13 | "gutter_foreground": "#8a919980", 14 | "line_diff_width": "2", 15 | "line_diff_added": "#87d96cb3", 16 | "line_diff_modified": "#80bfffb3", 17 | "line_diff_deleted": "#f27983b3", 18 | "selection": "#3388ff40", 19 | "selection_border": "#3388ff40", 20 | "selection_border_width": "1", 21 | "inactive_selection": "#4d97ff26", 22 | "inactive_selection_border": "#4d97ff26", 23 | "selection_corner_style": "round", 24 | "selection_corner_radius": "4", 25 | "highlight": "#ffcc6666", 26 | "find_highlight": "#ffcc66", 27 | "find_highlight_foreground": "#242936", 28 | "guide": "#8a91994d", 29 | "active_guide": "#8a919999", 30 | "stack_guide": "#8a919966", 31 | "shadow": "#2429364d", 32 | "shadow_width": "3" 33 | }, 34 | "rules": [ 35 | { 36 | "name": "Comment", 37 | "scope": "comment", 38 | "font_style": "italic", 39 | "foreground": "#b8cfe680" 40 | }, 41 | { 42 | "name": "String", 43 | "scope": "string - meta.template, constant.other.symbol, string.quoted", 44 | "foreground": "#d5ff80" 45 | }, 46 | { 47 | "name": "Regular Expressions and Escape Characters", 48 | "scope": "string.regexp, constant.character, constant.other", 49 | "foreground": "#95e6cb" 50 | }, 51 | { 52 | "name": "Number", 53 | "scope": "constant.numeric", 54 | "foreground": "#ffcc66" 55 | }, 56 | { 57 | "name": "Built-in constants", 58 | "scope": "constant.language", 59 | "foreground": "#ffcc66" 60 | }, 61 | { 62 | "name": "Constants", 63 | "scope": "meta.constant, entity.name.constant", 64 | "foreground": "#dfbfff" 65 | }, 66 | { 67 | "name": "Variable", 68 | "scope": "variable", 69 | "foreground": "#cccac2" 70 | }, 71 | { 72 | "name": "Member Variable", 73 | "scope": "variable.member", 74 | "foreground": "#f28779" 75 | }, 76 | { 77 | "name": "Language variable", 78 | "scope": "variable.language", 79 | "font_style": "italic", 80 | "foreground": "#5ccfe6" 81 | }, 82 | { 83 | "name": "Storage", 84 | "scope": "storage, storage.type.keyword", 85 | "foreground": "#ffad66" 86 | }, 87 | { 88 | "name": "Keyword", 89 | "scope": "keyword", 90 | "foreground": "#ffad66" 91 | }, 92 | { 93 | "name": "Java keyword fixes", 94 | "scope": "source.java meta.class.java meta.class.identifier.java storage.type.java", 95 | "foreground": "#ffad66" 96 | }, 97 | { 98 | "name": "Operators", 99 | "scope": "keyword.operator", 100 | "foreground": "#f29e74" 101 | }, 102 | { 103 | "name": "Separators like ; or ,", 104 | "scope": "punctuation.separator, punctuation.terminator", 105 | "foreground": "#cccac2b3" 106 | }, 107 | { 108 | "name": "Punctuation", 109 | "scope": "punctuation.section", 110 | "foreground": "#cccac2" 111 | }, 112 | { 113 | "name": "Accessor", 114 | "scope": "punctuation.accessor", 115 | "foreground": "#f29e74" 116 | }, 117 | { 118 | "name": "JavaScript/TypeScript interpolation punctuation", 119 | "scope": "punctuation.definition.template-expression", 120 | "foreground": "#ffad66" 121 | }, 122 | { 123 | "name": "Ruby interpolation punctuation", 124 | "scope": "punctuation.section.interpolation", 125 | "foreground": "#ffad66" 126 | }, 127 | { 128 | "name": "Types fixes", 129 | "scope": "source.java storage.type, source.haskell storage.type, source.c storage.type, source.zig storage.type", 130 | "foreground": "#73d0ff" 131 | }, 132 | { 133 | "name": "Inherited class type", 134 | "scope": "entity.other.inherited-class", 135 | "foreground": "#5ccfe6" 136 | }, 137 | { 138 | "name": "Lambda arrow", 139 | "scope": "storage.type.function", 140 | "foreground": "#ffad66" 141 | }, 142 | { 143 | "name": "Java primitive variable types", 144 | "scope": "source.java storage.type.primitive", 145 | "foreground": "#5ccfe6" 146 | }, 147 | { 148 | "name": "Function name", 149 | "scope": "entity.name.function", 150 | "foreground": "#ffd173" 151 | }, 152 | { 153 | "name": "Function arguments", 154 | "scope": "variable.parameter, meta.parameter", 155 | "foreground": "#dfbfff" 156 | }, 157 | { 158 | "name": "Function call", 159 | "scope": "variable.function, variable.annotation, meta.function-call.generic, support.function.go", 160 | "foreground": "#ffd173" 161 | }, 162 | { 163 | "name": "Library function", 164 | "scope": "support.function, support.macro", 165 | "foreground": "#f28779" 166 | }, 167 | { 168 | "name": "Imports and packages", 169 | "scope": "entity.name.import, entity.name.package", 170 | "foreground": "#d5ff80" 171 | }, 172 | { 173 | "name": "Entity name", 174 | "scope": "entity.name, source.js meta.function-call.constructor variable.type", 175 | "foreground": "#73d0ff" 176 | }, 177 | { 178 | "name": "Tag", 179 | "scope": "entity.name.tag, meta.tag.sgml", 180 | "foreground": "#5ccfe6" 181 | }, 182 | { 183 | "name": "Tag start/end", 184 | "scope": "punctuation.definition.tag.end, punctuation.definition.tag.begin, punctuation.definition.tag", 185 | "foreground": "#5ccfe680" 186 | }, 187 | { 188 | "name": "Tag attribute", 189 | "scope": "entity.other.attribute-name", 190 | "foreground": "#ffd173" 191 | }, 192 | { 193 | "name": "Library constant", 194 | "scope": "support.constant", 195 | "font_style": "italic", 196 | "foreground": "#f29e74" 197 | }, 198 | { 199 | "name": "Library class/type", 200 | "scope": "support.type, support.class, source.go storage.type", 201 | "foreground": "#5ccfe6" 202 | }, 203 | { 204 | "name": "Decorators/annotation", 205 | "scope": "meta.decorator variable.other, meta.decorator punctuation.decorator, storage.type.annotation, variable.annotation, punctuation.definition.annotation", 206 | "foreground": "#ffdfb3" 207 | }, 208 | { 209 | "name": "Invalid", 210 | "scope": "invalid", 211 | "foreground": "#ff6666" 212 | }, 213 | { 214 | "name": "diff.header", 215 | "scope": "meta.diff, meta.diff.header", 216 | "foreground": "#c594c5" 217 | }, 218 | { 219 | "name": "Ruby class methods", 220 | "scope": "source.ruby variable.other.readwrite", 221 | "foreground": "#ffd173" 222 | }, 223 | { 224 | "name": "CSS tag names", 225 | "scope": "source.css entity.name.tag, source.sass entity.name.tag, source.scss entity.name.tag, source.less entity.name.tag, source.stylus entity.name.tag", 226 | "foreground": "#73d0ff" 227 | }, 228 | { 229 | "name": "CSS browser prefix", 230 | "scope": "source.css support.type, source.sass support.type, source.scss support.type, source.less support.type, source.stylus support.type", 231 | "foreground": "#b8cfe680" 232 | }, 233 | { 234 | "name": "CSS Properties", 235 | "scope": "support.type.property-name", 236 | "font_style": "normal", 237 | "foreground": "#5ccfe6" 238 | }, 239 | { 240 | "name": "Search Results Nums", 241 | "scope": "constant.numeric.line-number.find-in-files - match", 242 | "foreground": "#b8cfe680" 243 | }, 244 | { 245 | "name": "Search Results Match Nums", 246 | "scope": "constant.numeric.line-number.match", 247 | "foreground": "#ffad66" 248 | }, 249 | { 250 | "name": "Search Results Lines", 251 | "scope": "entity.name.filename.find-in-files", 252 | "foreground": "#d5ff80" 253 | }, 254 | { 255 | "scope": "message.error", 256 | "foreground": "#ff6666" 257 | }, 258 | { 259 | "name": "Markup heading", 260 | "scope": "markup.heading, markup.heading entity.name", 261 | "font_style": "bold", 262 | "foreground": "#d5ff80" 263 | }, 264 | { 265 | "name": "Markup links", 266 | "scope": "markup.underline.link, string.other.link", 267 | "foreground": "#73d0ff" 268 | }, 269 | { 270 | "name": "Markup Italic", 271 | "scope": "markup.italic", 272 | "font_style": "italic", 273 | "foreground": "#f28779" 274 | }, 275 | { 276 | "name": "Markup Bold", 277 | "scope": "markup.bold", 278 | "font_style": "bold", 279 | "foreground": "#f28779" 280 | }, 281 | { 282 | "name": "Markup Bold/italic", 283 | "scope": "markup.italic markup.bold, markup.bold markup.italic", 284 | "font_style": "bold italic" 285 | }, 286 | { 287 | "name": "Markup Code", 288 | "scope": "markup.raw", 289 | "background": "#cccac205" 290 | }, 291 | { 292 | "name": "Markup Code Inline", 293 | "scope": "markup.raw.inline", 294 | "background": "#cccac20f" 295 | }, 296 | { 297 | "name": "Markdown Separator", 298 | "scope": "meta.separator", 299 | "font_style": "bold", 300 | "background": "#cccac20f", 301 | "foreground": "#b8cfe680" 302 | }, 303 | { 304 | "name": "Markup Blockquote", 305 | "scope": "markup.quote", 306 | "foreground": "#95e6cb", 307 | "font_style": "italic" 308 | }, 309 | { 310 | "name": "Markup List Bullet", 311 | "scope": "markup.list punctuation.definition.list.begin", 312 | "foreground": "#ffd173" 313 | }, 314 | { 315 | "name": "Markup added", 316 | "scope": "markup.inserted", 317 | "foreground": "#87d96c" 318 | }, 319 | { 320 | "name": "Markup modified", 321 | "scope": "markup.changed", 322 | "foreground": "#80bfff" 323 | }, 324 | { 325 | "name": "Markup removed", 326 | "scope": "markup.deleted", 327 | "foreground": "#f27983" 328 | }, 329 | { 330 | "name": "Markup Strike", 331 | "scope": "markup.strike", 332 | "foreground": "#ffdfb3" 333 | }, 334 | { 335 | "name": "Markup Table", 336 | "scope": "markup.table", 337 | "background": "#cccac20f", 338 | "foreground": "#5ccfe6" 339 | }, 340 | { 341 | "name": "Markup Raw Inline", 342 | "scope": "text.html.markdown markup.inline.raw", 343 | "foreground": "#f29e74" 344 | }, 345 | { 346 | "name": "Markdown - Line Break", 347 | "scope": "text.html.markdown meta.dummy.line-break", 348 | "background": "#b8cfe680", 349 | "foreground": "#b8cfe680" 350 | }, 351 | { 352 | "name": "Markdown - Raw Block Fenced", 353 | "scope": "punctuation.definition.markdown", 354 | "background": "#cccac2", 355 | "foreground": "#b8cfe680" 356 | } 357 | ] 358 | } -------------------------------------------------------------------------------- /ayu.skins: -------------------------------------------------------------------------------- 1 | { 2 | "ayu light": { 3 | "Preferences": { 4 | "color_scheme": "Packages/ayu/ayu-light.sublime-color-scheme", 5 | "theme": "ayu-light.sublime-theme", 6 | } 7 | }, 8 | 9 | "ayu mirage": { 10 | "Preferences": { 11 | "color_scheme": "Packages/ayu/ayu-mirage.sublime-color-scheme", 12 | "theme": "ayu-mirage.sublime-theme", 13 | } 14 | }, 15 | 16 | "ayu dark": { 17 | "Preferences": { 18 | "color_scheme": "Packages/ayu/ayu-dark.sublime-color-scheme", 19 | "theme": "ayu-dark.sublime-theme", 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /dependencies.json: -------------------------------------------------------------------------------- 1 | { 2 | "*": { 3 | "*": [ ] 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /icons/file_type_angular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_angular.png -------------------------------------------------------------------------------- /icons/file_type_angular@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_angular@2x.png -------------------------------------------------------------------------------- /icons/file_type_binary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_binary.png -------------------------------------------------------------------------------- /icons/file_type_binary@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_binary@2x.png -------------------------------------------------------------------------------- /icons/file_type_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_c.png -------------------------------------------------------------------------------- /icons/file_type_c@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_c@2x.png -------------------------------------------------------------------------------- /icons/file_type_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_cpp.png -------------------------------------------------------------------------------- /icons/file_type_cpp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_cpp@2x.png -------------------------------------------------------------------------------- /icons/file_type_csharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_csharp.png -------------------------------------------------------------------------------- /icons/file_type_csharp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_csharp@2x.png -------------------------------------------------------------------------------- /icons/file_type_css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_css.png -------------------------------------------------------------------------------- /icons/file_type_css@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_css@2x.png -------------------------------------------------------------------------------- /icons/file_type_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_default.png -------------------------------------------------------------------------------- /icons/file_type_default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_default@2x.png -------------------------------------------------------------------------------- /icons/file_type_font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_font.png -------------------------------------------------------------------------------- /icons/file_type_font@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_font@2x.png -------------------------------------------------------------------------------- /icons/file_type_git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_git.png -------------------------------------------------------------------------------- /icons/file_type_git@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_git@2x.png -------------------------------------------------------------------------------- /icons/file_type_graphviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_graphviz.png -------------------------------------------------------------------------------- /icons/file_type_graphviz@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_graphviz@2x.png -------------------------------------------------------------------------------- /icons/file_type_groovy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_groovy.png -------------------------------------------------------------------------------- /icons/file_type_groovy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_groovy@2x.png -------------------------------------------------------------------------------- /icons/file_type_gruntfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_gruntfile.png -------------------------------------------------------------------------------- /icons/file_type_gruntfile@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_gruntfile@2x.png -------------------------------------------------------------------------------- /icons/file_type_haskell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_haskell.png -------------------------------------------------------------------------------- /icons/file_type_haskell@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_haskell@2x.png -------------------------------------------------------------------------------- /icons/file_type_haxe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_haxe.png -------------------------------------------------------------------------------- /icons/file_type_haxe@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_haxe@2x.png -------------------------------------------------------------------------------- /icons/file_type_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_image.png -------------------------------------------------------------------------------- /icons/file_type_image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_image@2x.png -------------------------------------------------------------------------------- /icons/file_type_js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_js.png -------------------------------------------------------------------------------- /icons/file_type_js@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_js@2x.png -------------------------------------------------------------------------------- /icons/file_type_json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_json.png -------------------------------------------------------------------------------- /icons/file_type_json@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_json@2x.png -------------------------------------------------------------------------------- /icons/file_type_license.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_license.png -------------------------------------------------------------------------------- /icons/file_type_license@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_license@2x.png -------------------------------------------------------------------------------- /icons/file_type_liquid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_liquid.png -------------------------------------------------------------------------------- /icons/file_type_liquid@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_liquid@2x.png -------------------------------------------------------------------------------- /icons/file_type_lisp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_lisp.png -------------------------------------------------------------------------------- /icons/file_type_lisp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_lisp@2x.png -------------------------------------------------------------------------------- /icons/file_type_lua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_lua.png -------------------------------------------------------------------------------- /icons/file_type_lua@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_lua@2x.png -------------------------------------------------------------------------------- /icons/file_type_markdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_markdown.png -------------------------------------------------------------------------------- /icons/file_type_markdown@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_markdown@2x.png -------------------------------------------------------------------------------- /icons/file_type_mustache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_mustache.png -------------------------------------------------------------------------------- /icons/file_type_mustache@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_mustache@2x.png -------------------------------------------------------------------------------- /icons/file_type_nodejs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_nodejs.png -------------------------------------------------------------------------------- /icons/file_type_nodejs@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_nodejs@2x.png -------------------------------------------------------------------------------- /icons/file_type_npm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_npm.png -------------------------------------------------------------------------------- /icons/file_type_npm@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_npm@2x.png -------------------------------------------------------------------------------- /icons/file_type_pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_pdf.png -------------------------------------------------------------------------------- /icons/file_type_pdf@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_pdf@2x.png -------------------------------------------------------------------------------- /icons/file_type_perl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_perl.png -------------------------------------------------------------------------------- /icons/file_type_perl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_perl@2x.png -------------------------------------------------------------------------------- /icons/file_type_php.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_php.png -------------------------------------------------------------------------------- /icons/file_type_php@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_php@2x.png -------------------------------------------------------------------------------- /icons/file_type_procfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_procfile.png -------------------------------------------------------------------------------- /icons/file_type_procfile@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_procfile@2x.png -------------------------------------------------------------------------------- /icons/file_type_python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_python.png -------------------------------------------------------------------------------- /icons/file_type_python@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_python@2x.png -------------------------------------------------------------------------------- /icons/file_type_ruby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_ruby.png -------------------------------------------------------------------------------- /icons/file_type_ruby@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_ruby@2x.png -------------------------------------------------------------------------------- /icons/file_type_rust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_rust.png -------------------------------------------------------------------------------- /icons/file_type_rust@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_rust@2x.png -------------------------------------------------------------------------------- /icons/file_type_sass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_sass.png -------------------------------------------------------------------------------- /icons/file_type_sass@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_sass@2x.png -------------------------------------------------------------------------------- /icons/file_type_scss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_scss.png -------------------------------------------------------------------------------- /icons/file_type_scss@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_scss@2x.png -------------------------------------------------------------------------------- /icons/file_type_shell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_shell.png -------------------------------------------------------------------------------- /icons/file_type_shell@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_shell@2x.png -------------------------------------------------------------------------------- /icons/file_type_sketch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_sketch.png -------------------------------------------------------------------------------- /icons/file_type_sketch@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_sketch@2x.png -------------------------------------------------------------------------------- /icons/file_type_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_source.png -------------------------------------------------------------------------------- /icons/file_type_source@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_source@2x.png -------------------------------------------------------------------------------- /icons/file_type_stata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_stata.png -------------------------------------------------------------------------------- /icons/file_type_stata@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_stata@2x.png -------------------------------------------------------------------------------- /icons/file_type_swift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_swift.png -------------------------------------------------------------------------------- /icons/file_type_swift@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_swift@2x.png -------------------------------------------------------------------------------- /icons/file_type_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_text.png -------------------------------------------------------------------------------- /icons/file_type_text@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_text@2x.png -------------------------------------------------------------------------------- /icons/file_type_todo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_todo.png -------------------------------------------------------------------------------- /icons/file_type_todo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_todo@2x.png -------------------------------------------------------------------------------- /icons/file_type_typescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_typescript.png -------------------------------------------------------------------------------- /icons/file_type_typescript@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_typescript@2x.png -------------------------------------------------------------------------------- /icons/file_type_vue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_vue.png -------------------------------------------------------------------------------- /icons/file_type_vue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_vue@2x.png -------------------------------------------------------------------------------- /icons/file_type_yaml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_yaml.png -------------------------------------------------------------------------------- /icons/file_type_yaml@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/icons/file_type_yaml@2x.png -------------------------------------------------------------------------------- /images/browse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/images/browse.png -------------------------------------------------------------------------------- /images/dark-separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/images/dark-separator.png -------------------------------------------------------------------------------- /images/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/images/hero.png -------------------------------------------------------------------------------- /images/light-separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/images/light-separator.png -------------------------------------------------------------------------------- /images/mirage-no-separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dempfi/ayu/362525bcd7a832684eed5a0e054a97356fdf353a/images/mirage-no-separator.png -------------------------------------------------------------------------------- /messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "install": "messages/install.md", 3 | "1.2.0": "messages/1.2.0.txt", 4 | "1.3.0": "messages/1.3.0.txt", 5 | "1.3.1": "messages/1.3.1.txt", 6 | "1.3.2": "messages/1.3.2.txt", 7 | "1.3.3": "messages/1.3.3.txt", 8 | "2.0.0": "messages/2.0.0.txt", 9 | "2.0.1": "messages/2.0.1.txt", 10 | "2.0.2": "messages/2.0.2.txt", 11 | "2.0.3": "messages/2.0.3.txt", 12 | "2.1.0": "messages/2.1.0.txt", 13 | "2.1.1": "messages/2.1.1.txt", 14 | "2.2.0": "messages/2.2.0.txt", 15 | "2.2.1": "messages/2.2.1.txt", 16 | "2.2.2": "messages/2.2.2.txt", 17 | "3.0.0": "messages/3.0.0.md", 18 | "3.0.1": "messages/3.0.1.md", 19 | "3.1.0": "messages/3.1.0.md", 20 | "3.1.1": "messages/3.1.1.md", 21 | "3.1.2": "messages/3.1.2.md", 22 | "3.1.4": "messages/3.1.4.md", 23 | "3.1.5": "messages/3.1.5.md", 24 | "3.1.6": "messages/3.1.6.md", 25 | "3.1.8": "messages/3.1.8.md", 26 | "3.2.0": "messages/3.2.0.md", 27 | "3.2.1": "messages/3.2.1.md", 28 | "4.0.0": "messages/4.0.0.md", 29 | "5.0.0": "messages/5.0.0.md", 30 | "5.0.1": "messages/5.0.1.md", 31 | "5.0.2": "messages/5.0.2.md", 32 | "5.0.3": "messages/5.0.3.md", 33 | "5.1.0": "messages/5.1.0.md", 34 | "6.0.0": "messages/6.0.0.md", 35 | "6.0.1": "messages/6.0.1.md", 36 | "6.0.2": "messages/6.0.2.md", 37 | "6.0.3": "messages/6.0.3.md", 38 | "6.1.0": "messages/6.1.0.md", 39 | "6.1.1": "messages/6.1.1.md", 40 | "6.1.2": "messages/6.1.2.md" 41 | } 42 | -------------------------------------------------------------------------------- /messages/1.2.0.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 1.2.0 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Fix UI contrast in dark theme 10 | * Full support for Sublime Text 2 -------------------------------------------------------------------------------- /messages/1.3.0.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 1.3.0 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Fix cuted of tab label 10 | * Fix sublime linter error color 11 | -------------------------------------------------------------------------------- /messages/1.3.1.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 1.3.1 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Revert tabs update from 1.3.0 since it doesn't work properly on Windows and Linux 10 | -------------------------------------------------------------------------------- /messages/1.3.2.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 1.3.2 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Add option for bigger tabs — "ui_big_tabs" 10 | -------------------------------------------------------------------------------- /messages/1.3.3.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 1.3.3 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Gray close icon on active tab 10 | -------------------------------------------------------------------------------- /messages/2.0.0.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.0.0 5 | ******************************************************************************** 6 | 7 | Changes: 8 | * 🎨 💄 [NEW] Mirage theme 👻 9 | activate with 10 | ```json 11 | "theme": "ayu-mirage.sublime-theme", 12 | "color_scheme": "Packages/ayu/ayu-mirage.tmTheme", 13 | ``` 14 | * [NEW] build system 15 | * [NEW] Reduced most of the assets 16 | 17 | * Renamed `ayu-dark` 18 | use following settings for dark theme: 19 | ```json 20 | "theme": "ayu-dark.sublime-theme", 21 | "color_scheme": "Packages/ayu/ayu-dark.tmTheme", 22 | ``` 23 | 24 | * Fix for issue with cut tab labels 25 | * Fix for issue with sidebar labels 26 | -------------------------------------------------------------------------------- /messages/2.0.1.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.0.1 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Fix issue with Sublime Text 2 10 | * Fix colors for search icons 11 | -------------------------------------------------------------------------------- /messages/2.0.2.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.0.2 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Fix inactive selection color 10 | * Fix selection border color 11 | * Fix find highlight 12 | -------------------------------------------------------------------------------- /messages/2.0.3.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.0.3 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Support highlight_modified_tabs setting 10 | * Add switch panel button icon 11 | -------------------------------------------------------------------------------- /messages/2.1.0.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.1.0 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Wider scrollbars. Activate with option `ui_wide_scrollbars` 10 | * Add support for [Source Code Pro](https://fonts.google.com/specimen/Source+Code+Pro) as UI font 11 | -------------------------------------------------------------------------------- /messages/2.1.1.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.1.1 5 | ******************************************************************************** 6 | 7 | Changes: 8 | 9 | * Fix for scrollbar issues for Windows users 10 | -------------------------------------------------------------------------------- /messages/2.2.0.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.2.0 5 | ******************************************************************************** 6 | 7 | 8 | 🎨 💄 Added crossplatform scrollbars. Finally 😊 9 | 10 | For macOS users with touchpad scrollbars will look almost the same with a little improvements. 11 | 12 | But big changes are prepared for Windows/Linux users. Now scrollbars are finally usable. They are wider and easier to click and drug. 13 | -------------------------------------------------------------------------------- /messages/2.2.1.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.2.1 5 | ******************************************************************************** 6 | 7 | 8 | 🎨 💄 Improved color contrast 9 | -------------------------------------------------------------------------------- /messages/2.2.2.txt: -------------------------------------------------------------------------------- 1 | ayu theme for Sublime Text 2 | https://github.com/dempfi/ayu/releases 3 | 4 | Version 2.2.2 5 | ******************************************************************************** 6 | 7 | 8 | 🎨 ⚙️ New option to use ST default font 9 | ``` 10 | "ui_font_default": true 11 | ``` 12 | -------------------------------------------------------------------------------- /messages/3.0.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | # 🖼 Version 3.0.0 5 | 6 | Welcome to new major version of ayu with support to all new features of 7 | Sublime Text 3. 8 | 9 | What changed: 10 | 11 | 1. 🌈 New colorful file icons, now ayu uses A File Icon plugin to manage icons, which means 12 | you'll always have all icons up to date. 13 | 14 | 2. Support for titlebar on macOs 15 | 16 | 3. Improved overall contrast 17 | 18 | 4. Support for native font if you don't like monospaced one. 19 | Just add `ui_font_default: true` to your settings 20 | 21 | 5. New activation command, now in order to activate any of ayu themes, you can 22 | just go to `Tools > Command Palette` (or CMD/CTRL + SHIFT + p) and type 23 | `ayu: Activate theme`. 24 | 25 | Keep tuned folks, more features are comming. 26 | -------------------------------------------------------------------------------- /messages/3.0.1.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | # Version 3.0.1 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). 7 | 8 | Please install it and restart Sublime for better expereince. 9 | 10 | What changed: 11 | 1. Option to diable titlebar altering on macOs. 12 | Add `"ui_native_titlebar": true` to your preferences to use native titlebars. 13 | 14 | 15 | ================================================================================ 16 | 17 | # 🖼 Version 3.0.0 18 | 19 | Welcome to new major version of ayu with support to all new features of 20 | Sublime Text 3. 21 | 22 | What changed: 23 | 24 | 1. 🌈 New colorful file icons, now ayu uses A File Icon plugin to manage icons, whcih means 25 | you'll always have all icons up to date. 26 | 27 | 2. Support for titlebar on macOs 28 | 29 | 3. Improved overall contrast 30 | 31 | 4. Support for native font if you don't like monospaced one. 32 | Just add `ui_font_default: true` to your settings 33 | 34 | 5. New activation command, now in order to activate any of ayu themes, you can 35 | just go to `Tools > Command Palette` (or CMD/CTRL + SHIFT + p) and type 36 | `ayu: Activate theme`. 37 | 38 | Keep tuned folks, more features are comming. 39 | -------------------------------------------------------------------------------- /messages/3.1.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | # Version 3.1.0 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | 8 | CHANGES 9 | ================================================================================ 10 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 11 | 12 | -------------------------------------------------------------------------------- /messages/3.1.1.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | 10 | # Version 3.1.1 11 | 12 | CHANGES: 13 | - Reduce usage of italics to required minimum 14 | - Improve support of css colors 15 | 16 | # Version 3.1.0 17 | CHANGES: 18 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 19 | 20 | -------------------------------------------------------------------------------- /messages/3.1.2.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.1.2 10 | 11 | CHANGES: 12 | Ayu's file icons are back :) There will be additional changes to sizes of icons. 13 | They might not be very consistent atm, this will be fixed in next release. 14 | 15 | # Version 3.1.1 16 | 17 | CHANGES: 18 | - Reduce usage of italics to required minimum 19 | - Improve support of css colors 20 | 21 | # Version 3.1.0 22 | CHANGES: 23 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 24 | -------------------------------------------------------------------------------- /messages/3.1.4.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.1.4 10 | 11 | CHANGES: 12 | 🎉 CSS properties are not italic anymore 13 | 14 | # Version 3.1.2 15 | 16 | CHANGES: 17 | Ayu's file icons are back :) There will be additional changes to sizes of icons. 18 | They might not be very consistent atm, this will be fixed in next release. 19 | 20 | # Version 3.1.1 21 | 22 | CHANGES: 23 | - Reduce usage of italics to required minimum 24 | - Improve support of css colors 25 | 26 | # Version 3.1.0 27 | CHANGES: 28 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 29 | -------------------------------------------------------------------------------- /messages/3.1.5.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.1.5 10 | 11 | CHANGES: 12 | 💄 Better colors for Ruby claass methods 13 | 14 | # Version 3.1.4 15 | 16 | CHANGES: 17 | 🎉 CSS properties are not italic anymore 18 | 19 | # Version 3.1.2 20 | 21 | CHANGES: 22 | Ayu's file icons are back :) There will be additional changes to sizes of icons. 23 | They might not be very consistent atm, this will be fixed in next release. 24 | 25 | # Version 3.1.1 26 | 27 | CHANGES: 28 | - Reduce usage of italics to required minimum 29 | - Improve support of css colors 30 | 31 | # Version 3.1.0 32 | CHANGES: 33 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 34 | -------------------------------------------------------------------------------- /messages/3.1.6.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.1.6 10 | 11 | CHANGES: 12 | Fix for sidebar file indicator 13 | 14 | # Version 3.1.5 15 | 16 | CHANGES: 17 | 💄 Better colors for Ruby claass methods 18 | 19 | # Version 3.1.4 20 | 21 | CHANGES: 22 | 🎉 CSS properties are not italic anymore 23 | 24 | # Version 3.1.2 25 | 26 | CHANGES: 27 | Ayu's file icons are back :) There will be additional changes to sizes of icons. 28 | They might not be very consistent atm, this will be fixed in next release. 29 | 30 | # Version 3.1.1 31 | 32 | CHANGES: 33 | - Reduce usage of italics to required minimum 34 | - Improve support of css colors 35 | 36 | # Version 3.1.0 37 | CHANGES: 38 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 39 | -------------------------------------------------------------------------------- /messages/3.1.8.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.1.8 10 | 11 | CHANGES: 12 | 📐 Titlebar separators on macOs 13 | 14 | # Version 3.1.6 15 | 16 | CHANGES: 17 | Fix for sidebar file indicator 18 | 19 | # Version 3.1.5 20 | 21 | CHANGES: 22 | 💄 Better colors for Ruby claass methods 23 | 24 | # Version 3.1.4 25 | 26 | CHANGES: 27 | 🎉 CSS properties are not italic anymore 28 | 29 | # Version 3.1.2 30 | 31 | CHANGES: 32 | Ayu's file icons are back :) There will be additional changes to sizes of icons. 33 | They might not be very consistent atm, this will be fixed in next release. 34 | 35 | # Version 3.1.1 36 | 37 | CHANGES: 38 | - Reduce usage of italics to required minimum 39 | - Improve support of css colors 40 | 41 | # Version 3.1.0 42 | CHANGES: 43 | 🌈 Massive update to syntax highlighning and contrast of all 3 themes. 44 | -------------------------------------------------------------------------------- /messages/3.2.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.2.0 10 | 11 | CHANGES: 12 | 🖼 New ayu icons, brighter and more detailed 13 | -------------------------------------------------------------------------------- /messages/3.2.1.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 3.2.1 10 | 11 | CHANGES: 12 | Simplified and colorful markdown files 13 | -------------------------------------------------------------------------------- /messages/4.0.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 4.0.0 10 | 11 | 🎉 Comepletely updated UI themes 12 | 🎉 Redrawn icons 13 | ...and a lot of minor changes 14 | 15 | Breaking changes: 16 | ******************************************************* 17 | - Default UI font is no longer Roboto Mono but the system font. To have 18 | Roboto Mono again use `ui_font_roboto_mono: true` setting. 19 | 20 | - Ayu no longer supports Sublime Text version 2 since version 3 21 | is officially released. 22 | 23 | -------------------------------------------------------------------------------- /messages/5.0.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 5.0.0 10 | 11 | - 🎉 Refreshed UI theme: 12 | - Improved editor/ui contrast when `ui_separators` options is on; 13 | - Resized status bar; 14 | - Support for Sublime's git indicators; 15 | - Added missing accents on hover; 16 | and other minor fixes 17 | 18 | - 🎉 Refreshed syntax theme 19 | - Fixed inconsistencies with Java, C, Haskell, TS, JS, GO, Python and Ruby; 20 | - Updated markdown colour scheme 21 | and other minor fixes 22 | 23 | - Internal: 24 | - New streamlined build system for streamlined contrinution and forks; 25 | - Official `ayu-colors` npm package is now used as the source of the colours; 26 | 27 | Breaking changes: 28 | ******************************************************* 29 | - Removed UI font settings (`ui_font_size_small`, `ui_font_source_code_pro`, `ui_font_roboto_mono`) 30 | -------------------------------------------------------------------------------- /messages/5.0.1.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 5.0.0 10 | 11 | - 🎉 Refreshed UI theme: 12 | - Improved editor/ui contrast when `ui_separators` options is on; 13 | - Resized status bar; 14 | - Support for Sublime's git indicators; 15 | - Added missing accents on hover; 16 | and other minor fixes 17 | 18 | - 🎉 Refreshed syntax theme 19 | - Fixed inconsistencies with Java, C, Haskell, TS, JS, GO, Python and Ruby; 20 | - Updated markdown colour scheme 21 | and other minor fixes 22 | 23 | - Internal: 24 | - New streamlined build system for streamlined contrinution and forks; 25 | - Official `ayu-colors` npm package is now used as the source of the colours; 26 | 27 | ******************************************************* 28 | 29 | Breaking changes: 30 | - Removed UI font settings (`ui_font_size_small`, `ui_font_source_code_pro`, `ui_font_roboto_mono`) 31 | 32 | ******************************************************* 33 | 34 | Version 5.0.1 contains fixes for the light theme. 35 | -------------------------------------------------------------------------------- /messages/5.0.2.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 5.0.0 10 | 11 | - 🎉 Refreshed UI theme: 12 | - Improved editor/ui contrast when `ui_separators` options is on; 13 | - Resized status bar; 14 | - Support for Sublime's git indicators; 15 | - Added missing accents on hover; 16 | and other minor fixes 17 | 18 | - 🎉 Refreshed syntax theme 19 | - Fixed inconsistencies with Java, C, Haskell, TS, JS, GO, Python and Ruby; 20 | - Updated markdown colour scheme 21 | and other minor fixes 22 | 23 | - Internal: 24 | - New streamlined build system for streamlined contrinution and forks; 25 | - Official `ayu-colors` npm package is now used as the source of the colours; 26 | 27 | ******************************************************* 28 | 29 | Breaking changes: 30 | - Removed UI font settings (`ui_font_size_small`, `ui_font_source_code_pro`, `ui_font_roboto_mono`) 31 | 32 | ******************************************************* 33 | 34 | Version 5.0.2 contains fixes for activation script. 35 | -------------------------------------------------------------------------------- /messages/5.0.3.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | ******************************************************************************** 5 | ayu from version 3.0.0 supports customization via A File Icon package 6 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 7 | ******************************************************************************** 8 | 9 | # Version 5.0.0 10 | 11 | - 🎉 Refreshed UI theme: 12 | - Improved editor/ui contrast when `ui_separators` options is on; 13 | - Resized status bar; 14 | - Support for Sublime's git indicators; 15 | - Added missing accents on hover; 16 | and other minor fixes 17 | 18 | - 🎉 Refreshed syntax theme 19 | - Fixed inconsistencies with Java, C, Haskell, TS, JS, GO, Python and Ruby; 20 | - Updated markdown colour scheme 21 | and other minor fixes 22 | 23 | - Internal: 24 | - New streamlined build system for streamlined contrinution and forks; 25 | - Official `ayu-colors` npm package is now used as the source of the colours; 26 | 27 | ******************************************************* 28 | 29 | Breaking changes: 30 | - Removed UI font settings (`ui_font_size_small`, `ui_font_source_code_pro`, `ui_font_roboto_mono`) 31 | 32 | ******************************************************* 33 | 34 | Version 5.0.3 contains a fix for the new block caret. 35 | -------------------------------------------------------------------------------- /messages/5.1.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | --- 5 | 6 | ayu from version 3.0.0 supports customization via A File Icon package 7 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 8 | 9 | --- 10 | 11 | # Version 5.1.0 12 | 13 | 🎉 This release is all about contrast 14 | 15 | - Light theme UI and foreground contrast improvements 16 | - Dark theme UI color contrast raised 17 | 18 | --- 19 | 20 | Breaking changes: 21 | 22 | - Removed UI font settings (`ui_font_size_small`, `ui_font_source_code_pro`, `ui_font_roboto_mono`) 23 | 24 | --- 25 | 26 | Version 5.0.3 contains a fix for the new block caret. 27 | -------------------------------------------------------------------------------- /messages/6.0.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | --- 5 | 6 | ayu from version 3.0.0 supports customization via A File Icon package 7 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 8 | 9 | --- 10 | 11 | # Version 6.0.0 12 | 13 | 🎉 This release updates ayu to support Sublime Text 4 14 | 15 | - New tab style for separators 16 | - Updated colors to the latest 17 | 18 | --- 19 | 20 | Breaking changes: 21 | 22 | - None 23 | 24 | --- 25 | -------------------------------------------------------------------------------- /messages/6.0.1.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | --- 5 | 6 | ayu from version 3.0.0 supports customization via A File Icon package 7 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 8 | 9 | --- 10 | 11 | # Version 6.0.1 12 | - Fix for windows title bar 13 | 14 | # Version 6.0.0 15 | 16 | 🎉 This release updates ayu to support Sublime Text 4 17 | 18 | - New tab style for separators 19 | - Updated colors to the latest 20 | 21 | --- 22 | 23 | Breaking changes: 24 | 25 | - None 26 | 27 | --- 28 | -------------------------------------------------------------------------------- /messages/6.0.2.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | --- 5 | 6 | ayu from version 3.0.0 supports customization via A File Icon package 7 | (https://github.com/ihodev/a-file-icon). Please install it for better expereince. 8 | 9 | --- 10 | 11 | # Version 6.0.2 12 | - Fix for windows title bar... again 13 | 14 | # Version 6.0.0 15 | 16 | 🎉 This release updates ayu to support Sublime Text 4 17 | 18 | - New tab style for separators 19 | - Updated colors to the latest 20 | 21 | --- 22 | 23 | Breaking changes: 24 | 25 | - None 26 | 27 | --- 28 | -------------------------------------------------------------------------------- /messages/6.0.3.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | --- 5 | 6 | ayu from version 3.0.0 supports customization via A File Icon package 7 | (https://github.com/SublimeText/AFileIcon). Please install it for better expereince. 8 | 9 | --- 10 | 11 | # Version 6.0.3 12 | - Fix package control links 13 | - Improve string interpolation styles 14 | 15 | # Version 6.0.0 16 | 17 | 🎉 This release updates ayu to support Sublime Text 4 18 | 19 | - New tab style for separators 20 | - Updated colors to the latest 21 | 22 | --- 23 | 24 | Breaking changes: 25 | 26 | - None 27 | 28 | --- 29 | -------------------------------------------------------------------------------- /messages/6.1.0.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text 4** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | # Version 6.1.0 5 | - More prominent autocomplete selection and kind badges 6 | - Add distinctive type icons to the command palette and go to windows 7 | - Raise the contrast of the dark theme 8 | - All editor popups match the overall theme aesthetic 9 | -------------------------------------------------------------------------------- /messages/6.1.1.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text 4** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | # Version 6.1.1 5 | - mdpopups have proper background matching ayu popups 6 | 7 | # Version 6.1.0 8 | - More prominent autocomplete selection and kind badges 9 | - Add distinctive type icons to the command palette and go to windows 10 | - Raise the contrast of the dark theme 11 | - All editor popups match the overall theme aesthetic 12 | -------------------------------------------------------------------------------- /messages/6.1.2.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text 4** 2 | https://github.com/dempfi/ayu/releases 3 | 4 | # Version 6.1.2 5 | - Add switch panel icon for Sublime Text 3 interoperability 6 | 7 | # Version 6.1.1 8 | - mdpopups have proper background matching ayu popups 9 | 10 | # Version 6.1.0 11 | - More prominent autocomplete selection and kind badges 12 | - Add distinctive type icons to the command palette and go to windows 13 | - Raise the contrast of the dark theme 14 | - All editor popups match the overall theme aesthetic 15 | -------------------------------------------------------------------------------- /messages/install.md: -------------------------------------------------------------------------------- 1 | **ayu theme for Sublime Text** 2 | To learn more about ayu visit https://github.com/dempfi/ayu 3 | =============================================================================== 4 | 5 | Activate ayu 6 | 7 | Open command palette via `Tools > Command Palette` (or CMD/CTRL + SHIFT + p) 8 | and type `ayu: Activate theme`. 9 | 10 | === 11 | 12 | You can also manually activate this theme by adding these lines to your user 13 | settings (Preferences > Settings - User): 14 | 15 | Light: 16 | ```json 17 | "theme": "ayu-light.sublime-theme", 18 | "color_scheme": "Packages/ayu/ayu-light.sublime-color-scheme", 19 | ``` 20 | 21 | Mirage: 22 | ```json 23 | "theme": "ayu-mirage.sublime-theme", 24 | "color_scheme": "Packages/ayu/ayu-mirage.sublime-color-scheme", 25 | ``` 26 | 27 | Dark: 28 | ```json 29 | "theme": "ayu-dark.sublime-theme", 30 | "color_scheme": "Packages/ayu/ayu-dark.sublime-color-scheme", 31 | ``` 32 | 33 | ================================================================================ 34 | 35 | Ayu provides following options to customize the theme 36 | 37 | ```json 38 | "ui_native_titlebar": true, // native titlebar on macOs 39 | "ui_separator": true, // separators between panels 40 | "ui_wide_scrollbars": true, // wider scrollbars 41 | ``` 42 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ayu", 3 | "version": "5.0.3", 4 | "description": "Sublime theme", 5 | "repository": { 6 | "type": "git", 7 | "url": "git+https://github.com/dempfi/ayu.git" 8 | }, 9 | "author": "Ike Ku", 10 | "license": "MIT", 11 | "bugs": { 12 | "url": "https://github.com/dempfi/ayu/issues" 13 | }, 14 | "scripts": { 15 | "build": "ts-node ./src/build.ts", 16 | "start": "watch 'yarn build' ./src" 17 | }, 18 | "homepage": "https://github.com/dempfi/ayu#readme", 19 | "dependencies": { 20 | "@types/node": "^16.7.11", 21 | "ayu": "^8.0.1", 22 | "ts-node": "^10.2.1", 23 | "typescript": "^4.4.2", 24 | "watch": "^1.0.2" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/build.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs' 2 | import * as ayu from 'ayu' 3 | import * as path from 'path' 4 | import * as templates from './templates' 5 | 6 | type SchemeName = 'light' | 'dark' | 'mirage' 7 | 8 | const filePath = (kind: SchemeName, extension: string) => 9 | path.join(process.cwd(), `/ayu-${kind}.${extension}`) 10 | 11 | const ui = (kind: SchemeName) => fs.writeFileSync( 12 | filePath(kind, 'sublime-theme'), 13 | JSON.stringify(templates.ui(ayu[kind], kind), null, '\t') 14 | ) 15 | 16 | const syntax = (kind: SchemeName) => fs.writeFileSync( 17 | filePath(kind, 'sublime-color-scheme'), 18 | JSON.stringify(templates.syntax(ayu[kind]), null, '\t') 19 | ) 20 | 21 | const widget = (kind: SchemeName) => fs.writeFileSync( 22 | path.join(process.cwd(), `/widgets/Widget - ayu-${kind}.stTheme`), 23 | templates.widget(ayu[kind], kind) 24 | ); 25 | 26 | ['light', 'dark', 'mirage'].map((kind: SchemeName) => { 27 | widget(kind) 28 | syntax(kind) 29 | ui(kind) 30 | }) 31 | -------------------------------------------------------------------------------- /src/templates/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ui } from './ui' 2 | export { default as syntax } from './syntax' 3 | export { default as widget } from './widget' 4 | -------------------------------------------------------------------------------- /src/templates/widget.ts: -------------------------------------------------------------------------------- 1 | import { Scheme } from 'ayu' 2 | 3 | export default (scheme: Scheme, name: string) => ` 4 | 5 | 6 | 7 | author 8 | Ike Ku 9 | colorSpaceName 10 | sRGB 11 | name 12 | ayu 13 | semanticClass 14 | ayu.${name} 15 | settings 16 | 17 | 18 | settings 19 | 20 | background 21 | ${scheme.ui.popup.bg.hex()} 22 | caret 23 | ${scheme.common.accent.hex()} 24 | foreground 25 | ${scheme.editor.fg.hex()} 26 | invisibles 27 | ${scheme.editor.gutter.normal.hex()} 28 | lineHighlight 29 | ${scheme.editor.line.hex()} 30 | inactiveSelection 31 | ${scheme.editor.selection.inactive.hex()} 32 | selection 33 | ${scheme.editor.selection.active.hex()} 34 | selectionBorder 35 | ${scheme.editor.selection.active.hex()} 36 | 37 | 38 | 39 | name 40 | Comments 41 | scope 42 | comment 43 | settings 44 | 45 | fontStyle 46 | italic 47 | foreground 48 | ${scheme.syntax.comment.hex()} 49 | 50 | 51 | 52 | name 53 | Keyword 54 | scope 55 | keyword, storage 56 | settings 57 | 58 | foreground 59 | ${scheme.syntax.keyword.hex()} 60 | 61 | 62 | 63 | name 64 | Constant 65 | scope 66 | constant 67 | settings 68 | 69 | foreground 70 | ${scheme.syntax.constant.hex()} 71 | 72 | 73 | 74 | name 75 | String 76 | scope 77 | string 78 | settings 79 | 80 | foreground 81 | ${scheme.syntax.string.hex()} 82 | 83 | 84 | 85 | name 86 | Escape 87 | scope 88 | constant.character.escape 89 | settings 90 | 91 | foreground 92 | ${scheme.syntax.regexp.hex()} 93 | 94 | 95 | 96 | 97 | ` 98 | -------------------------------------------------------------------------------- /test/C.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include "unicode/utypes.h" 9 | #include "unicode/localpointer.h" 10 | #include "unicode/uset.h" 11 | #include "unicode/unorm2.h" 12 | #include "unicode/ustring.h" 13 | 14 | #include "objecthash.h" 15 | 16 | struct student 17 | { 18 | char name[50]; 19 | int roll; 20 | float marks; 21 | } s; 22 | 23 | bool object_hash(/*const*/ json_object *j, byte hash[HASH_SIZE]); 24 | 25 | static void hash_update(hash_ctx * const c, const byte * const b, 26 | const size_t l) { 27 | SHA256_Update(c, b, l); 28 | } 29 | 30 | static void hash_init(hash_ctx * const c, const byte t) { 31 | SHA256_Init(c); 32 | 33 | byte b[1]; 34 | b[0] = t; 35 | hash_update(c, b, 1); 36 | } 37 | 38 | static void hash_final(hash_ctx * const c, hash h) { 39 | SHA256_Final(h, c); 40 | } 41 | 42 | static void hash_bytes(const byte t, const byte * const b, const size_t l, 43 | hash hash) { 44 | hash_ctx ctx; 45 | hash_init(&ctx, t); 46 | hash_update(&ctx, b, l); 47 | hash_final(&ctx, hash); 48 | } 49 | 50 | static int dict_comp(const void *a, const void *b) { 51 | // note that this should always terminate in < sizeof(hash) anyway 52 | return memcmp(a, b, 2 * sizeof(hash)); 53 | } 54 | 55 | static bool object_hash_str(const char *str, size_t len, byte hash[HASH_SIZE]) { 56 | hash_bytes('u', (const byte *)str, len, hash); 57 | return true; 58 | } 59 | 60 | static bool object_hash_bool(bool b, hash h) { 61 | hash_bytes('b', (byte *)(b ? "1" : "0"), 1, h); 62 | return true; 63 | } 64 | 65 | static bool object_hash_dict(/*const*/ json_object * const d, hash h) { 66 | // FIXME: there may be a better way 67 | size_t len = 0; 68 | { 69 | json_object_object_foreach(d, key, val) { 70 | ++len; 71 | // key and val are unused, but we don't want the compiler to complain. 72 | (void)key; 73 | (void)val; 74 | } 75 | } 76 | byte *hashes = malloc(2 * len * sizeof(hash)); 77 | 78 | size_t n = 0; 79 | json_object_object_foreach(d, key, val) { 80 | object_hash_str(key, strlen(key), &hashes[2 * n * sizeof(hash)]); 81 | object_hash(val, &hashes[(2 * n + 1) * sizeof(hash)]); 82 | ++n; 83 | } 84 | 85 | qsort(hashes, len, 2 * sizeof(hash), dict_comp); 86 | hash_bytes('d', hashes, 2 * len * sizeof(hash), h); 87 | 88 | free(hashes); 89 | 90 | return true; 91 | } 92 | 93 | static bool object_hash_int(int64_t i, hash h) { 94 | char buf[100]; 95 | 96 | sprintf(buf, "%" PRId64, i); 97 | hash_bytes('i', (byte *)buf, strlen(buf), h); 98 | return true; 99 | } 100 | 101 | static void float_normalize(double f, char out[1000]) { 102 | const char * const base = out; 103 | 104 | // special case 0 105 | // Note that if we allowed f to end up > .5 or == 0, we'd get the same thing 106 | if (f == 0.0) { 107 | strcpy(out, "+0:"); 108 | return; 109 | } 110 | 111 | // sign 112 | *out = '+'; 113 | if (f < 0) { 114 | *out = '-'; 115 | f = -f; 116 | } 117 | ++out; 118 | 119 | // exponent 120 | int e = 0; 121 | while (f > 1) { 122 | f /= 2; 123 | e += 1; 124 | } 125 | while (f <= .5) { 126 | f *= 2; 127 | e -= 1; 128 | } 129 | out += sprintf(out, "%d:", e); 130 | 131 | // mantissa 132 | assert(f <= 1); 133 | assert(f > .5); 134 | while (f != 0) { 135 | if (f >= 1) { 136 | *out++ = '1'; 137 | f -= 1; 138 | } else { 139 | *out++ = '0'; 140 | } 141 | assert (f < 1); 142 | assert (out - base < 1000); 143 | f *= 2; 144 | } 145 | 146 | *out = '\0'; 147 | } 148 | 149 | static bool object_hash_float(const double d, hash h) { 150 | char buf[1000]; 151 | 152 | float_normalize(d, buf); 153 | hash_bytes('f', (byte *)buf, strlen(buf), h); 154 | return true; 155 | } 156 | 157 | static bool object_hash_list(json_object *l, hash h) { 158 | hash_ctx ctx; 159 | hash_init(&ctx, 'l'); 160 | 161 | int len = json_object_array_length(l); 162 | for (int n = 0; n < len; ++n) { 163 | byte ihash[HASH_SIZE]; 164 | if (!object_hash(json_object_array_get_idx(l, n), ihash)) 165 | return false; 166 | hash_update(&ctx, ihash, sizeof ihash); 167 | } 168 | 169 | hash_final(&ctx, h); 170 | return true; 171 | } 172 | 173 | bool object_hash(/*const*/ json_object *j, byte hash[HASH_SIZE]) { 174 | enum json_type type; 175 | type = json_object_get_type(j); 176 | switch (type) { 177 | case json_type_boolean: 178 | return object_hash_bool(json_object_get_boolean(j), hash); 179 | case json_type_double: 180 | return object_hash_float(json_object_get_double(j), hash); 181 | case json_type_int: 182 | return object_hash_int(json_object_get_int64(j), hash); 183 | case json_type_string: { 184 | const char *s = json_object_get_string(j); 185 | return object_hash_str(s, strlen(s), hash); 186 | } 187 | case json_type_object: 188 | return object_hash_dict(j, hash); 189 | case json_type_array: 190 | return object_hash_list(j, hash); 191 | case json_type_null: 192 | hash_bytes('n', NULL, 0, hash); 193 | return true; 194 | default: 195 | break; 196 | } 197 | printf("unknown type = %d\n", type); 198 | assert(false); 199 | return false; 200 | } 201 | 202 | bool python_json_hash(const char * const json, hash hash) { 203 | json_object * const j = json_tokener_parse(json); 204 | return object_hash(j, hash); 205 | } 206 | 207 | typedef json_object *leaf_fn(json_object *j); 208 | 209 | static json_object *apply_to_leaves(json_object *j, leaf_fn *fn) { 210 | enum json_type type; 211 | type = json_object_get_type(j); 212 | switch (type) { 213 | case json_type_boolean: 214 | case json_type_double: 215 | case json_type_int: 216 | case json_type_null: 217 | case json_type_string: 218 | return fn(j); 219 | case json_type_object: { 220 | json_object *r = json_object_new_object(); 221 | json_object_object_foreach(j, key, val) { 222 | json_object *k = json_object_new_string(key); 223 | json_object *kk = fn(k); 224 | json_object_put(k); 225 | const char *kkk = json_object_get_string(kk); 226 | json_object_object_add(r, kkk, apply_to_leaves(val, fn)); 227 | json_object_put(kk); 228 | } 229 | return r; 230 | } 231 | case json_type_array: { 232 | json_object *r = json_object_new_array(); 233 | for (int n = 0; n < json_object_array_length(j); ++n) { 234 | json_object_array_add(r, apply_to_leaves(json_object_array_get_idx(j, n), 235 | fn)); 236 | } 237 | return r; 238 | } 239 | } 240 | printf("type = %d\n", type); 241 | assert(false); 242 | return NULL; 243 | } 244 | 245 | static json_object *commonize_int(json_object *j) { 246 | if (json_object_get_type(j) == json_type_int) 247 | return json_object_new_double(json_object_get_int64(j)); 248 | return json_object_get(j); 249 | } 250 | 251 | json_object *commonize(json_object *j) { 252 | return apply_to_leaves(j, commonize_int); 253 | } 254 | 255 | bool common_json_hash(const char * const json, hash hash) { 256 | json_object * const j = json_tokener_parse(json); 257 | return object_hash(commonize(j), hash); 258 | } 259 | 260 | static json_object *unicode_normalize_string(json_object *j) { 261 | if (json_object_get_type(j) == json_type_string) { 262 | const char *s = json_object_get_string(j); 263 | UErrorCode err; 264 | const UNormalizer2 *un = unorm2_getNFCInstance(&err); 265 | assert(un); 266 | assert(!err); 267 | 268 | int32_t length; 269 | u_strFromUTF8(NULL, 0, &length, s, strlen(s), &err); 270 | assert(!err); 271 | 272 | UChar *us = malloc(length * sizeof(UChar)); 273 | int32_t uslength; 274 | u_strFromUTF8(us, length, &uslength, s, strlen(s), &err); 275 | assert(!err); 276 | 277 | // FIXME: surely we can find out how long the result will be? 278 | UChar *usn = malloc(uslength * 10 * sizeof(UChar)); 279 | int32_t usnlength = unorm2_normalize(un, us, uslength, usn, 10 * uslength, 280 | &err); 281 | assert(!err); 282 | assert(usnlength <= uslength * 10); 283 | 284 | int32_t n8length; 285 | u_strToUTF8(NULL, 0, &n8length, usn, usnlength, &err); 286 | assert(!err); 287 | 288 | char *n8 = malloc(n8length); 289 | u_strToUTF8(n8, n8length, &n8length, usn, usnlength, &err); 290 | assert(!err); 291 | 292 | free(n8); 293 | free(usn); 294 | free(us); 295 | 296 | return json_object_new_string(n8); 297 | } 298 | return json_object_get(j); 299 | } 300 | 301 | json_object *unicode_normalize(json_object *j) { 302 | return apply_to_leaves(j, unicode_normalize_string); 303 | } 304 | -------------------------------------------------------------------------------- /test/Example.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class ClickableMaskView extends StatelessWidget { 5 | const ClickableMaskView({ 6 | Key? key, 7 | required this.rippleColor, 8 | required this.onClick, 9 | required this.padding, 10 | required this.radius, 11 | }) : super(key: key); 12 | 13 | final Color rippleColor; 14 | final Function onClick; 15 | final double padding; 16 | final double radius; 17 | 18 | @override 19 | Widget build(BuildContext context) { 20 | return Positioned.fill( 21 | child: Container( 22 | padding: EdgeInsets.symmetric(horizontal: context.size!.height), 23 | child: Material( 24 | color: rippleColor, 25 | child: InkWell( 26 | onTap: () => onClick.call(), 27 | borderRadius: BorderRadius.circular(radius), 28 | ), 29 | ), 30 | ), 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /test/Golang.go: -------------------------------------------------------------------------------- 1 | package objecthash 2 | 3 | import ( 4 | "bytes" 5 | "crypto/sha256" 6 | "encoding/json" 7 | "fmt" 8 | "math" 9 | "reflect" 10 | "sort" 11 | ) 12 | 13 | const hashLength int = sha256.Size 14 | 15 | func hash(t string, b []byte) [hashLength]byte { 16 | h := sha256.New() 17 | h.Write([]byte(t)) 18 | h.Write(b) 19 | 20 | var r [hashLength]byte 21 | copy(r[:], h.Sum(nil)) 22 | return r 23 | } 24 | 25 | // Set represents an unordered, unduplicated list of objects. 26 | // FIXME: if What You Hash Is What You Get, then this needs to be safe 27 | // to use as a set. Note: not actually safe to use as a set 28 | type Set []interface{} 29 | 30 | type sortableHashes [][hashLength]byte 31 | 32 | func (h sortableHashes) Len() int { return len(h) } 33 | func (h sortableHashes) Swap(i, j int) { h[i], h[j] = h[j], h[i] } 34 | func (h sortableHashes) Less(i, j int) bool { return bytes.Compare(h[i][:], h[j][:]) < 0 } 35 | 36 | func hashSet(s Set) ([hashLength]byte, error) { 37 | h := make([][hashLength]byte, len(s)) 38 | for n, e := range s { 39 | hn, err := ObjectHash(e) 40 | if err != nil { 41 | return [hashLength]byte{}, err 42 | } 43 | h[n] = hn 44 | } 45 | 46 | sort.Sort(sortableHashes(h)) 47 | b := new(bytes.Buffer) 48 | var prev [hashLength]byte 49 | for _, hh := range h { 50 | if hh != prev { 51 | b.Write(hh[:]) 52 | } 53 | prev = hh 54 | } 55 | return hash(`s`, b.Bytes()), nil 56 | } 57 | 58 | func hashList(l []interface{}) ([hashLength]byte, error) { 59 | h := new(bytes.Buffer) 60 | for _, o := range l { 61 | b, err := ObjectHash(o) 62 | if err != nil { 63 | return [hashLength]byte{}, err 64 | } 65 | h.Write(b[:]) 66 | } 67 | return hash(`l`, h.Bytes()), nil 68 | } 69 | 70 | func hashUnicode(s string) [hashLength]byte { 71 | //return hash(`u`, norm.NFC.Bytes([]byte(s))) 72 | return hash(`u`, []byte(s)) 73 | } 74 | 75 | type hashEntry struct { 76 | khash [hashLength]byte 77 | vhash [hashLength]byte 78 | } 79 | type byKHash []hashEntry 80 | 81 | func (h byKHash) Len() int { return len(h) } 82 | func (h byKHash) Swap(i, j int) { h[i], h[j] = h[j], h[i] } 83 | func (h byKHash) Less(i, j int) bool { 84 | return bytes.Compare(h[i].khash[:], 85 | h[j].khash[:]) < 0 86 | } 87 | 88 | func hashDict(d map[interface{}]interface{}) ([hashLength]byte, error) { 89 | e := make([]hashEntry, len(d)) 90 | n := 0 91 | for k, v := range d { 92 | khash, err := ObjectHash(k) 93 | if err != nil { 94 | return [hashLength]byte{}, err 95 | } 96 | e[n].khash = khash 97 | 98 | vhash, err := ObjectHash(v) 99 | if err != nil { 100 | return [hashLength]byte{}, err 101 | } 102 | e[n].vhash = vhash 103 | 104 | n++ 105 | } 106 | sort.Sort(byKHash(e)) 107 | h := new(bytes.Buffer) 108 | for _, ee := range e { 109 | h.Write(ee.khash[:]) 110 | h.Write(ee.vhash[:]) 111 | } 112 | return hash(`d`, h.Bytes()), nil 113 | } 114 | 115 | func floatNormalize(originalFloat float64) (s string, err error) { 116 | // Special case 0 117 | // Note that if we allowed f to end up > .5 or == 0, we'd get the same thing. 118 | if originalFloat == 0 { 119 | return "+0:", nil 120 | } 121 | 122 | // sign 123 | f := originalFloat 124 | s = `+` 125 | if f < 0 { 126 | s = `-` 127 | f = -f 128 | } 129 | // exponent 130 | e := 0 131 | for f > 1 { 132 | f /= 2 133 | e++ 134 | } 135 | for f <= .5 { 136 | f *= 2 137 | e-- 138 | } 139 | s += fmt.Sprintf("%d:", e) 140 | // mantissa 141 | if f > 1 || f <= .5 { 142 | return "", fmt.Errorf("Could not normalize float: %f", originalFloat) 143 | } 144 | for f != 0 { 145 | if f >= 1 { 146 | s += `1` 147 | f-- 148 | } else { 149 | s += `0` 150 | } 151 | if f >= 1 { 152 | return "", fmt.Errorf("Could not normalize float: %f", originalFloat) 153 | } 154 | if len(s) >= 1000 { 155 | return "", fmt.Errorf("Could not normalize float: %f", originalFloat) 156 | } 157 | f *= 2 158 | } 159 | return 160 | } 161 | 162 | func hashFloat(f float64) ([hashLength]byte, error) { 163 | var normalizedFloat string 164 | 165 | switch { 166 | case math.IsInf(f, 1): 167 | normalizedFloat = "Infinity" 168 | case math.IsInf(f, -1): 169 | normalizedFloat = "-Infinity" 170 | case math.IsNaN(f): 171 | normalizedFloat = "NaN" 172 | default: 173 | var err error 174 | normalizedFloat, err = floatNormalize(f) 175 | if err != nil { 176 | return [hashLength]byte{}, err 177 | } 178 | } 179 | 180 | return hash(`f`, []byte(normalizedFloat)), nil 181 | } 182 | 183 | func hashUint(i uint64) [hashLength]byte { 184 | return hash(`i`, []byte(fmt.Sprintf("%d", i))) 185 | } 186 | 187 | func hashInt(i int64) [hashLength]byte { 188 | return hash(`i`, []byte(fmt.Sprintf("%d", i))) 189 | } 190 | 191 | func hashBool(b bool) [hashLength]byte { 192 | bb := []byte(`0`) 193 | if b { 194 | bb = []byte(`1`) 195 | } 196 | return hash(`b`, bb) 197 | } 198 | 199 | func hashBytes(value reflect.Value) ([hashLength]byte, error) { 200 | var b []byte 201 | if value.Kind() == reflect.Slice { 202 | b = value.Bytes() 203 | } else { 204 | // The `Bytes()` method only works for slices. 205 | b = make([]byte, value.Len()) 206 | bb := reflect.ValueOf(b) 207 | reflect.Copy(bb, value) 208 | } 209 | 210 | return hash(`r`, b), nil 211 | } 212 | 213 | // ObjectHash returns the hash of a subset of allowed Go objects. 214 | func ObjectHash(o interface{}) ([hashLength]byte, error) { 215 | switch v := o.(type) { 216 | case Set: 217 | return hashSet(v) 218 | } 219 | 220 | value := reflect.ValueOf(o) 221 | switch value.Kind() { 222 | case reflect.Invalid: // nil 223 | return hash(`n`, []byte(``)), nil 224 | case reflect.Slice, reflect.Array: 225 | // Check if this is a blob of bytes. 226 | if value.Type().Elem() == reflect.TypeOf(byte(0)) { 227 | return hashBytes(value) 228 | } 229 | 230 | // Otherwise hash it as a list. 231 | var anySlice []interface{} 232 | for i := 0; i < value.Len(); i++ { 233 | anySlice = append(anySlice, value.Index(i).Interface()) 234 | } 235 | return hashList(anySlice) 236 | case reflect.String: 237 | return hashUnicode(value.String()), nil 238 | case reflect.Map: 239 | anyMap := make(map[interface{}]interface{}) 240 | for _, key := range value.MapKeys() { 241 | anyMap[key.Interface()] = value.MapIndex(key).Interface() 242 | } 243 | return hashDict(anyMap) 244 | case reflect.Float32, reflect.Float64: 245 | return hashFloat(value.Float()) 246 | case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: 247 | return hashInt(value.Int()), nil 248 | case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: 249 | return hashUint(value.Uint()), nil 250 | case reflect.Bool: 251 | return hashBool(value.Bool()), nil 252 | default: 253 | return [hashLength]byte{}, fmt.Errorf("Unsupported type: %T", o) 254 | } 255 | } 256 | 257 | // CommonJSONHash computes the ObjectHash of a Common JSON object. 258 | func CommonJSONHash(j string) ([hashLength]byte, error) { 259 | var f interface{} 260 | if err := json.Unmarshal([]byte(j), &f); err != nil { 261 | return [hashLength]byte{}, err 262 | } 263 | return ObjectHash(f) 264 | } 265 | 266 | // Convert an object to the Common JSON equivalent 267 | func CommonJSONify(o interface{}) (interface{}, error) { 268 | j, err := json.Marshal(o) 269 | if err != nil { 270 | return nil, err 271 | } 272 | 273 | var c interface{} 274 | err = json.Unmarshal([]byte(j), &c) 275 | if err != nil { 276 | return nil, err 277 | } 278 | 279 | return c, nil 280 | } 281 | -------------------------------------------------------------------------------- /test/Haskell.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE DeriveGeneric #-} 2 | 3 | module ObjHash 4 | ( 5 | objhash 6 | , hashValue 7 | , hashNull 8 | , hashBool 9 | , hashScientific 10 | , hashList 11 | , hashString 12 | ) where 13 | 14 | import Data.List (sort) 15 | import Data.Aeson (ToJSON, toJSON) 16 | import qualified Data.Text as Text 17 | import qualified Data.ByteString as B 18 | import qualified Data.Scientific as Sci 19 | import qualified Data.Aeson.Types as A 20 | import qualified Crypto.Hash.SHA256 as SHA256 21 | import Data.HashMap.Strict (HashMap, toList) 22 | import Data.ByteString.Char8 (pack) 23 | 24 | data Hash = Hash { 25 | name :: String 26 | , age :: Double 27 | } deriving (Generic, Show) 28 | 29 | instance ToJSON Hash where 30 | toEncoding = genericToEncoding defaultOptions 31 | 32 | hash :: String -> B.ByteString -> B.ByteString 33 | hash prefix bs = SHA256.hash $ B.append (pack prefix) bs 34 | 35 | hashString :: String -> B.ByteString 36 | hashString s = hash "u" $ pack s 37 | 38 | hashNull :: B.ByteString 39 | hashNull = B.empty 40 | 41 | hashBool :: Bool -> B.ByteString 42 | hashBool b = hash "b" $ pack bs 43 | where 44 | bs = if b then "1" else "0" 45 | 46 | significandString :: Double -> String 47 | significandString d 48 | | d == 0 = "" 49 | | d >= 1 = "1" ++ significandString ((d - 1) * 2) 50 | | otherwise = "0" ++ significandString (d * 2) 51 | 52 | normalizeDouble :: Double -> String 53 | normalizeDouble d 54 | | isInfinite d = if d > 0 then "Infinity" else "-Infinity" 55 | | isNaN d = "NaN" 56 | | d == 0 = "+0:" 57 | | d < 0 = "-" ++ stringified (-d) 58 | | d > 0 = "+" ++ stringified d 59 | where 60 | stringified n = 61 | show (exponent n) ++ ":" ++ significandString (significand n) 62 | 63 | hashScientific :: Sci.Scientific -> B.ByteString 64 | hashScientific sci = 65 | case num of 66 | Left double -> hash "f" $ pack $ normalizeDouble double 67 | Right int -> hash "i" $ pack $ show int 68 | where 69 | num = Sci.floatingOrInteger sci 70 | 71 | hashList :: A.Array -> B.ByteString 72 | hashList _ = B.empty 73 | -- hashList a = concat $ Vector.map hashValue a 74 | 75 | hashObject :: HashMap Text.Text A.Value -> B.ByteString 76 | hashObject obj = hash "d" $ B.concat $ sort $ hashElements $ obj 77 | where 78 | hashElement (k, v) = B.append (hashString $ Text.unpack k) (hashValue v) 79 | hashElements hm = map hashElement (toList hm) 80 | 81 | hashValue :: A.Value -> B.ByteString 82 | hashValue A.Null = hashNull 83 | hashValue (A.String s) = hashString $ Text.unpack s 84 | hashValue (A.Bool b) = hashBool b 85 | hashValue (A.Array xs) = hashList xs 86 | hashValue (A.Number n) = hashScientific n 87 | hashValue (A.Object o) = hashObject o 88 | 89 | objhash :: ToJSON a => a -> B.ByteString 90 | objhash = hashValue . toJSON 91 | -------------------------------------------------------------------------------- /test/JSX.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | 4 | const Component = () => 5 | <> 6 |
Something 1
7 |
Something 2
8 | 9 | 10 | 11 | export const Main = () => 12 |
13 | 14 | 15 |
-------------------------------------------------------------------------------- /test/JavaScript.js: -------------------------------------------------------------------------------- 1 | import { Binder } from './binder'; 2 | import { Dialog } from './dialog'; 3 | import { Channel } from './channel'; 4 | 5 | export class Bot { 6 | 7 | constructor() { 8 | /** @internal */ 9 | this._dialogHandlers = []; 10 | /** @internal */ 11 | this._performerHandlers = []; 12 | this.when = Binder.for(this); 13 | this._channels = new Map(); 14 | } 15 | 16 | /** @internal */ 17 | _channelFor(channelId) { 18 | const channel = this._channels.get(channelId) || new Channel(); 19 | this._channels.set(channelId, channel); 20 | return channel; 21 | } 22 | 23 | dialog(channel, users) { 24 | return new Dialog(this, channel, users); 25 | } 26 | 27 | // @deprecated 28 | abortDialog(channel, user) { 29 | this._channelFor(channel).abort(user); 30 | } 31 | 32 | onMessage(message) { 33 | const performer = this._performerHandlers.find(c => c.match(message)); 34 | if (performer) return performer.handler(message, this); 35 | const channel = this._channelFor(message.channel); 36 | const hasActions = channel.hasFor(message.user); 37 | if (hasActions) return channel.processMessage(message); 38 | const dialog = this._dialogHandlers.find(c => c.match(message)); 39 | 40 | if (dialog) { 41 | const obj = this.dialog(message.channel, [message.user]); 42 | obj._manager.perform(message); 43 | dialog.handler(obj, this); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /test/Python.py: -------------------------------------------------------------------------------- 1 | import json 2 | import hashlib 3 | import math 4 | import random 5 | import types 6 | import unicodedata 7 | from binascii import hexlify as hexify, unhexlify as unhexify 8 | 9 | def hash_fn(): 10 | return hashlib.sha256() 11 | 12 | def hash_primitive(t, b): 13 | #print hexify(t), hexify(b) 14 | m = hash_fn() 15 | m.update(t) 16 | m.update(b) 17 | t = m.digest() 18 | #print '=', hexify(t) 19 | return t 20 | 21 | # We need this class because otherwise we can't put a list in a set. 22 | class FrozenList(object): 23 | def __init__(self, l): 24 | self.l = tuple(l) 25 | 26 | def __getitem__(self, key): 27 | return self.l[key] 28 | 29 | def __hash__(self): 30 | return hash(self.l) 31 | 32 | def __eq__(self, other): 33 | return self.l == other.l 34 | 35 | @deprecated 36 | def __len__(self): 37 | return len(self.l) 38 | 39 | def obj_hash_bool(b): 40 | return hash_primitive('b', '1' if b else '0') 41 | 42 | def obj_hash_list(l): 43 | h = '' 44 | for o in l: 45 | h += obj_hash(o) 46 | return hash_primitive('l', h) 47 | 48 | def obj_hash_dict(d): 49 | h = '' 50 | kh = [obj_hash(k) + obj_hash(v) for (k, v) in d.items()] 51 | for v in sorted(kh): 52 | h += v 53 | return hash_primitive('d', h) 54 | 55 | def obj_hash_unicode(u): 56 | return hash_primitive('u', u.encode('utf-8')) 57 | 58 | def float_normalize(f): 59 | # special case 0 60 | # Note that if we allowed f to end up > .5 or == 0, we'd get the same thing 61 | if f == 0.0: 62 | return '+0:' 63 | # sign 64 | s = '+' 65 | if f < 0: 66 | s = '-' 67 | f = -f 68 | # exponent 69 | e = 0 70 | while f > 1: 71 | f /= 2 72 | e += 1 73 | while f <= .5: 74 | f *= 2 75 | e -= 1 76 | s += str(e) + ':' 77 | # mantissa 78 | assert f <= 1 79 | assert f > .5 80 | while f: 81 | if f >= 1: 82 | s += '1' 83 | f -= 1 84 | else: 85 | s += '0' 86 | assert f < 1 87 | assert len(s) < 1000 88 | f *= 2 89 | 90 | return s 91 | 92 | def obj_hash_float(f): 93 | if math.isnan(f): 94 | return hash_primitive('f', 'NaN') 95 | elif math.isinf(f): 96 | return hash_primitive('f', 'Infinity' if f > 0 else '-Infinity') 97 | else: 98 | return hash_primitive('f', float_normalize(f)) 99 | 100 | def obj_hash_int(i): 101 | return hash_primitive('i', str(i)) 102 | 103 | def obj_hash_set(s): 104 | h = [] 105 | for e in s: 106 | h.append(obj_hash(e)) 107 | r = '' 108 | for t in sorted(h): 109 | r += t 110 | return hash_primitive('s', r) 111 | 112 | class Redacted(object): 113 | def __init__(self, hash): 114 | self.hash = unhexify(hash) 115 | 116 | class RedactedObject(Redacted): 117 | def __init__(self, o): 118 | self.hash = obj_hash(o) 119 | 120 | def obj_hash(o): 121 | if type(o) is list or type(o) is FrozenList: 122 | return obj_hash_list(o) 123 | elif type(o) is dict: 124 | return obj_hash_dict(o) 125 | elif type(o) is unicode: 126 | return obj_hash_unicode(o) 127 | elif type(o) is float: 128 | return obj_hash_float(o) 129 | elif type(o) is int: 130 | return obj_hash_int(o) 131 | elif type(o) is str: 132 | return obj_hash_unicode(unicode(o)) 133 | elif type(o) is set or type(o) is frozenset: 134 | return obj_hash_set(o) 135 | elif type(o) is bool: 136 | return obj_hash_bool(o) 137 | elif isinstance(o, Redacted): 138 | return o.hash 139 | elif o is None: 140 | return hash_primitive('n', '') 141 | 142 | print type(o) 143 | assert False 144 | 145 | def is_primitive_type(t): 146 | return t is str or t is unicode or t is float or t is int or t is bool or t is types.NoneType 147 | 148 | class ApplyToLeaves(object): 149 | def __init__(self, leaf_fn, restrict = None): 150 | self.leaf_fn = leaf_fn 151 | self.restrict = restrict 152 | 153 | def __call__(self, o): 154 | t = type(o) 155 | if t is dict: 156 | return {self(k): self(v) for (k,v) in o.items()} 157 | elif t is list: 158 | return [self(e) for e in o] 159 | elif t is set: 160 | return set([self(e) for e in o]) 161 | elif is_primitive_type(t): 162 | if self.restrict: 163 | if t in self.restrict: 164 | return self.leaf_fn(o) 165 | return o 166 | else: 167 | return self.leaf_fn(o) 168 | 169 | print type(o) 170 | assert False 171 | 172 | commonize = ApplyToLeaves(lambda o: float(o), (int,)) 173 | 174 | def json_hash(j, fns=()): 175 | t = json.loads(j) 176 | for f in fns: 177 | t = f(t) 178 | return obj_hash(t) 179 | 180 | def redactize_unicode(u): 181 | if u.startswith('**REDACTED**'): 182 | return Redacted(u[12:]) 183 | return u 184 | 185 | redactize = ApplyToLeaves(redactize_unicode, (str, unicode)) 186 | 187 | class ApplyToLeavesAndKeys(ApplyToLeaves): 188 | def __init__(self, leaf_fn, key_fn): 189 | ApplyToLeaves.__init__(self, leaf_fn) 190 | self.key_fn = key_fn 191 | 192 | def __call__(self, o): 193 | if type(o) is dict: 194 | return {self.key_fn(k): self(v) for (k, v) in o.items()} 195 | return ApplyToLeaves.__call__(self, o) 196 | 197 | def redactable_entity(e): 198 | return FrozenList((redactable_rand(), e)) 199 | 200 | def redactable_key(k): 201 | return redactable_rand() + k 202 | 203 | def redactable_rand(): 204 | r = '' 205 | for x in range(32): 206 | r += chr(random.SystemRandom().getrandbits(8)) 207 | return hexify(r) 208 | 209 | redactable = ApplyToLeavesAndKeys(redactable_entity, redactable_key) 210 | 211 | class ApplyUnredactable(ApplyToLeavesAndKeys): 212 | def __init__(self): 213 | ApplyToLeavesAndKeys.__init__(self, None, lambda k: k[32:]) 214 | 215 | @Deprecated 216 | def __call__(self, o): 217 | t = type(o) 218 | if (t is list or t is FrozenList) and len(o) == 2 and type(o[0]) is str: 219 | assert is_primitive_type(type(o[1])) 220 | return o[1] 221 | return ApplyToLeavesAndKeys.__call__(self, o) 222 | 223 | unredactable = ApplyUnredactable() 224 | 225 | def _unicode_normalize(u): 226 | return unicodedata.normalize('NFC', u) 227 | 228 | def unicode_normalize_entity(e): 229 | if type(e) is unicode: 230 | return _unicode_normalize(e) 231 | assert type(e) is str 232 | return _unicode_normalize(unicode(e)) 233 | 234 | unicode_normalize = ApplyToLeaves(unicode_normalize_entity, (str, unicode)) 235 | 236 | setup( 237 | name = "django-stubs", 238 | version = "1.8.0", 239 | description = "Mypy stubs for Django", 240 | long_description = readme, 241 | long_description_content_type = "text/markdown", 242 | license = "MIT", 243 | url = "https://github.com/typeddjango/django-stubs", 244 | py_modules = [], 245 | python_requires = ">=3.6", 246 | install_requires = dependencies, 247 | ) 248 | -------------------------------------------------------------------------------- /test/Ruby.rb: -------------------------------------------------------------------------------- 1 | # Originally designed by Ben Laurie 2 | # Adapted from https://github.com/benlaurie/objecthash/blob/master/objecthash.py 3 | 4 | require "objecthash/version" 5 | 6 | require "digest/sha2" 7 | require "set" 8 | 9 | module ObjectHash 10 | # A content hash algorithm which works across multiple encodings (JSON, Protobufs, etc) 11 | class ObjectHash < OtherClass 12 | # Default algorithm to use for computing object hashes 13 | DEFAULT_HASH_ALGORITHM = Digest::SHA256 14 | 15 | # Compute a raw ObjectHash digest using the default algorithm 16 | def self.digest(object, normalize: true) 17 | new.digest(object, normalize: normalize) 18 | end 19 | 20 | # Compute an hex ObjectHash digest using the default algorithm 21 | def self.hexdigest(object, normalize: true) 22 | new.hexdigest(object, normalize: normalize) 23 | end 24 | 25 | def initialize(hash_algorithm = DEFAULT_HASH_ALGORITHM) 26 | @hash_algorithm = hash_algorithm 27 | end 28 | 29 | # Compute the ObjectHash of the given object 30 | def digest(object, normalize: true) 31 | case object 32 | when Array then obj_hash_list(object) 33 | when Hash then obj_hash_dict(object) 34 | when String then obj_hash_unicode(object, normalize) 35 | when Symbol then obj_hash_unicode(object.to_s, normalize) 36 | when Float then obj_hash_float(object) 37 | when Fixnum then obj_hash_int(object) 38 | when Set then obj_hash_set(object) 39 | when true, false then obj_hash_bool(object) 40 | when nil then hash_primitive("n", "") 41 | else raise TypeError, "unsupported: #{object.class}" 42 | end 43 | end 44 | 45 | # Compute the ObjectHash of the given object as hexadecimal 46 | def hexdigest(object, normalize: true) 47 | digest(object, normalize: normalize).unpack("H*").first 48 | end 49 | 50 | private 51 | 52 | def hash_primitive(t, b) 53 | m = @hash_algorithm.is_a?(Proc) ? @hash_algorithm.call : @hash_algorithm.new 54 | m.update(t) 55 | m.update(b) 56 | m.digest 57 | end 58 | 59 | def obj_hash_bool(b) 60 | hash_primitive("b", b ? "1" : "0") 61 | end 62 | 63 | def obj_hash_list(l) 64 | h = l.map { |o| digest(o) }.join 65 | hash_primitive("l", h) 66 | end 67 | 68 | def obj_hash_dict(d) 69 | h = d.map { |k, v| digest(k) + digest(v) }.sort.join 70 | hash_primitive("d", h) 71 | end 72 | 73 | # Takes a unicode string and a boolean to indicate 74 | # whether to normalize unicode or not. 75 | def obj_hash_unicode(u, n) 76 | u_enc = u.encode("utf-8") 77 | u_norm = n ? u_enc.unicode_normalize(:nfc) : u_enc 78 | hash_primitive("u", u_norm) 79 | end 80 | 81 | # rubocop:disable Metrics/AbcSize 82 | # rubocop:disable Metrics/CyclomaticComplexity 83 | def float_normalize(f) 84 | # special case 0 85 | # Note that if we allowed f to end up > .5 or == 0, we'd get the same thing 86 | return "+0:" if f == 0.0 87 | 88 | # sign 89 | if f >= 0 90 | s = "+" 91 | else 92 | s = "-" 93 | f = -f 94 | end 95 | 96 | # exponent 97 | e = 0 98 | while f > 1 99 | f /= 2 100 | e += 1 101 | end 102 | 103 | while f <= 0.5 104 | f *= 2 105 | e -= 1 106 | end 107 | 108 | s += "#{e}:" 109 | 110 | # mantissa 111 | raise unless f <= 1 112 | raise unless f > 0.5 113 | 114 | while f != 0.0 115 | if f >= 1 116 | s += "1" 117 | f -= 1 118 | else 119 | s += "0" 120 | end 121 | 122 | raise unless f < 1 123 | raise unless s.length < 1000 124 | f *= 2 125 | end 126 | 127 | s 128 | end 129 | # rubocop:enable Metrics/AbcSize 130 | # rubocop:enable Metrics/CyclomaticComplexity 131 | 132 | def obj_hash_float(f) 133 | if f.nan? 134 | hash_primitive("f", "NaN") 135 | elsif f.infinite? 136 | hash_primitive("f", f.positive? ? "Infinity" : "-Infinity") 137 | else 138 | hash_primitive("f", float_normalize(f)) 139 | end 140 | end 141 | 142 | def obj_hash_int(i) 143 | hash_primitive("i", i.to_s) 144 | end 145 | 146 | def obj_hash_set(s) 147 | h = s.map { |e| e << digest(e) }.sort.join 148 | hash_primitive("s", h) 149 | end 150 | end 151 | end 152 | -------------------------------------------------------------------------------- /test/TSX.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const template = `${JSON.stringify({ something: 'else' })}` 4 | const original = JSON.stringify({ something: 'else' }) 5 | 6 | const Component = () => ( 7 | <> 8 |
Something 1
9 |
Something 2
10 | 11 | ) 12 | 13 | export const Main = () => ( 14 |
15 | 16 | {template} 17 | 18 |
19 | ) 20 | 21 | const f = true 22 | 23 | const s = ['s', 's'] 24 | -------------------------------------------------------------------------------- /test/TypeScript.ts: -------------------------------------------------------------------------------- 1 | import { Binder } from './binder' 2 | import { Dialog } from './dialog' 3 | import { Channel } from './channel' 4 | import { UserMessage } from './types' 5 | 6 | type Matcher = { match: (message: UserMessage) => boolean } 7 | 8 | type DialogHandler = Matcher & { 9 | handler: (dialog: Dialog, bot: T) => any 10 | } 11 | 12 | type PerformerHandler = Matcher & { 13 | handler: (message: UserMessage, bot: T) => any 14 | } 15 | 16 | export abstract class Bot extends OtherClass { 17 | /** @internal */ 18 | _dialogHandlers: DialogHandler[] = [] 19 | /** @internal */ 20 | _performerHandlers: PerformerHandler[] = [] 21 | 22 | when = Binder.for(this) 23 | 24 | _: { BotMessage: BotMessage } 25 | private _channels = new Map() 26 | 27 | abstract listen(arg?: any): this 28 | abstract say(channel: string, message: BotMessage): Promise 29 | 30 | /** @internal */ 31 | _channelFor(channelId: string) { 32 | const channel = this._channels.get(channelId) || new Channel() 33 | this._channels.set(channelId, channel) 34 | return channel 35 | } 36 | 37 | dialog(channel: string, users: string[]) { 38 | return new Dialog(this, channel, users) 39 | } 40 | 41 | abortDialog(channel: string, user: string) { 42 | this._channelFor(channel).abort(user) 43 | } 44 | 45 | protected onMessage(message: UserMessage): any { 46 | const performer = this._performerHandlers.find(c => c.match(message)) 47 | if (performer) return performer.handler(message, this) 48 | 49 | const channel = this._channelFor(message.channel) 50 | const hasActions = channel.hasFor(message.user) 51 | if (hasActions) return channel.processMessage(`message ${message}`) 52 | 53 | const dialog = this._dialogHandlers.find(c => c.match(message)) 54 | if (dialog) { 55 | const obj = this.dialog(message.channel, [message.user]) 56 | obj._manager.perform(message) 57 | dialog.handler(obj, this) 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /test/pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | characters: 5 | dependency: transitive 6 | description: 7 | name: characters 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "1.1.0" 11 | collection: 12 | dependency: transitive 13 | description: 14 | name: collection 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.15.0" 18 | flutter: 19 | dependency: "direct main" 20 | description: flutter 21 | source: sdk 22 | version: "0.0.0" 23 | meta: 24 | dependency: transitive 25 | description: 26 | name: meta 27 | url: "https://pub.dartlang.org" 28 | source: hosted 29 | version: "1.3.0" 30 | sky_engine: 31 | dependency: transitive 32 | description: flutter 33 | source: sdk 34 | version: "0.0.99" 35 | typed_data: 36 | dependency: transitive 37 | description: 38 | name: typed_data 39 | url: "https://pub.dartlang.org" 40 | source: hosted 41 | version: "1.3.0" 42 | vector_math: 43 | dependency: transitive 44 | description: 45 | name: vector_math 46 | url: "https://pub.dartlang.org" 47 | source: hosted 48 | version: "2.1.0" 49 | sdks: 50 | dart: ">=2.12.0-0 <3.0.0" 51 | -------------------------------------------------------------------------------- /test/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: test 2 | dependencies: 3 | flutter: 4 | sdk: flutter 5 | environment: 6 | sdk: '>=2.10.0 <3.0.0' 7 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "moduleResolution": "node", 4 | "inlineSourceMap": true, 5 | "declaration": true, 6 | "module": "commonjs", 7 | "baseUrl": "src", 8 | "target": "ES5", 9 | "rootDir": "src", 10 | "outDir": "dist" 11 | }, 12 | "exclude": [ 13 | "node_modules", 14 | "dist" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /widgets/Widget - ayu-dark.stTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | author 6 | Ike Ku 7 | colorSpaceName 8 | sRGB 9 | name 10 | ayu 11 | semanticClass 12 | ayu.dark 13 | settings 14 | 15 | 16 | settings 17 | 18 | background 19 | #141821 20 | caret 21 | #e6b450 22 | foreground 23 | #bfbdb6 24 | invisibles 25 | #6c738099 26 | lineHighlight 27 | #161a24 28 | inactiveSelection 29 | #80b5ff26 30 | selection 31 | #3388ff40 32 | selectionBorder 33 | #3388ff40 34 | 35 | 36 | 37 | name 38 | Comments 39 | scope 40 | comment 41 | settings 42 | 43 | fontStyle 44 | italic 45 | foreground 46 | #acb6bf8c 47 | 48 | 49 | 50 | name 51 | Keyword 52 | scope 53 | keyword, storage 54 | settings 55 | 56 | foreground 57 | #ff8f40 58 | 59 | 60 | 61 | name 62 | Constant 63 | scope 64 | constant 65 | settings 66 | 67 | foreground 68 | #d2a6ff 69 | 70 | 71 | 72 | name 73 | String 74 | scope 75 | string 76 | settings 77 | 78 | foreground 79 | #aad94c 80 | 81 | 82 | 83 | name 84 | Escape 85 | scope 86 | constant.character.escape 87 | settings 88 | 89 | foreground 90 | #95e6cb 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /widgets/Widget - ayu-dark.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "color_scheme": "Packages/ayu/widgets/Widget - ayu-dark.stTheme", 3 | "draw_shadows": false, 4 | "font_options": ["subpixel_antialias"], 5 | "line_padding_top": 2 6 | } 7 | -------------------------------------------------------------------------------- /widgets/Widget - ayu-light.stTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | author 6 | Ike Ku 7 | colorSpaceName 8 | sRGB 9 | name 10 | ayu 11 | semanticClass 12 | ayu.light 13 | settings 14 | 15 | 16 | settings 17 | 18 | background 19 | #ffffff 20 | caret 21 | #ffaa33 22 | foreground 23 | #5c6166 24 | invisibles 25 | #8a919966 26 | lineHighlight 27 | #8a91991a 28 | inactiveSelection 29 | #5696d61a 30 | selection 31 | #036dd626 32 | selectionBorder 33 | #036dd626 34 | 35 | 36 | 37 | name 38 | Comments 39 | scope 40 | comment 41 | settings 42 | 43 | fontStyle 44 | italic 45 | foreground 46 | #787b8099 47 | 48 | 49 | 50 | name 51 | Keyword 52 | scope 53 | keyword, storage 54 | settings 55 | 56 | foreground 57 | #fa8d3e 58 | 59 | 60 | 61 | name 62 | Constant 63 | scope 64 | constant 65 | settings 66 | 67 | foreground 68 | #a37acc 69 | 70 | 71 | 72 | name 73 | String 74 | scope 75 | string 76 | settings 77 | 78 | foreground 79 | #86b300 80 | 81 | 82 | 83 | name 84 | Escape 85 | scope 86 | constant.character.escape 87 | settings 88 | 89 | foreground 90 | #4cbf99 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /widgets/Widget - ayu-light.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "color_scheme": "Packages/ayu/widgets/Widget - ayu-light.stTheme", 3 | "draw_shadows": false, 4 | "font_options": ["subpixel_antialias"], 5 | "line_padding_top": 2 6 | } 7 | -------------------------------------------------------------------------------- /widgets/Widget - ayu-mirage.stTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | author 6 | Ike Ku 7 | colorSpaceName 8 | sRGB 9 | name 10 | ayu 11 | semanticClass 12 | ayu.mirage 13 | settings 14 | 15 | 16 | settings 17 | 18 | background 19 | #282e3b 20 | caret 21 | #ffcc66 22 | foreground 23 | #cccac2 24 | invisibles 25 | #8a919980 26 | lineHighlight 27 | #1a1f29 28 | inactiveSelection 29 | #4d97ff26 30 | selection 31 | #3388ff40 32 | selectionBorder 33 | #3388ff40 34 | 35 | 36 | 37 | name 38 | Comments 39 | scope 40 | comment 41 | settings 42 | 43 | fontStyle 44 | italic 45 | foreground 46 | #b8cfe680 47 | 48 | 49 | 50 | name 51 | Keyword 52 | scope 53 | keyword, storage 54 | settings 55 | 56 | foreground 57 | #ffad66 58 | 59 | 60 | 61 | name 62 | Constant 63 | scope 64 | constant 65 | settings 66 | 67 | foreground 68 | #dfbfff 69 | 70 | 71 | 72 | name 73 | String 74 | scope 75 | string 76 | settings 77 | 78 | foreground 79 | #d5ff80 80 | 81 | 82 | 83 | name 84 | Escape 85 | scope 86 | constant.character.escape 87 | settings 88 | 89 | foreground 90 | #95e6cb 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /widgets/Widget - ayu-mirage.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "color_scheme": "Packages/ayu/widgets/Widget - ayu-mirage.stTheme", 3 | "draw_shadows": false, 4 | "font_options": ["subpixel_antialias"], 5 | "line_padding_top": 2 6 | } 7 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cspotcode/source-map-consumer@0.8.0": 6 | version "0.8.0" 7 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" 8 | integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== 9 | 10 | "@cspotcode/source-map-support@0.6.1": 11 | version "0.6.1" 12 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz#118511f316e2e87ee4294761868e254d3da47960" 13 | integrity sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg== 14 | dependencies: 15 | "@cspotcode/source-map-consumer" "0.8.0" 16 | 17 | "@tsconfig/node10@^1.0.7": 18 | version "1.0.8" 19 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 20 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 21 | 22 | "@tsconfig/node12@^1.0.7": 23 | version "1.0.9" 24 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 25 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 26 | 27 | "@tsconfig/node14@^1.0.0": 28 | version "1.0.1" 29 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 30 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 31 | 32 | "@tsconfig/node16@^1.0.2": 33 | version "1.0.2" 34 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 35 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 36 | 37 | "@types/chroma-js@^2.0.0": 38 | version "2.1.3" 39 | resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.1.3.tgz#0b03d737ff28fad10eb884e0c6cedd5ffdc4ba0a" 40 | integrity sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g== 41 | 42 | "@types/node@^16.7.11": 43 | version "16.7.11" 44 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.11.tgz#5877b3ab359af251fd413517be2d4265b7fea9a9" 45 | integrity sha512-OtOGO+DYmNNqJQG9HG4e5a6iqoRcNfdCf4ha3div7XF5w/uOa3YVpb5aRGClwSDKLmfOysv2hFIvoklffnQi4w== 46 | 47 | acorn-walk@^8.1.1: 48 | version "8.2.0" 49 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 50 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 51 | 52 | acorn@^8.4.1: 53 | version "8.5.0" 54 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" 55 | integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== 56 | 57 | arg@^4.1.0: 58 | version "4.1.0" 59 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" 60 | integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== 61 | 62 | ayu@^8.0.1: 63 | version "8.0.1" 64 | resolved "https://registry.yarnpkg.com/ayu/-/ayu-8.0.1.tgz#77da3b554d3f264fa1e8ef2054c41e6ec4f58220" 65 | integrity sha512-yuPZ2kZYQoYaPRQ/78F9rXDVx1rVGCJ1neBYithBoSprD6zPdIJdAKizUXG0jtTBu7nTFyAnVFFYuLnCS3cpDw== 66 | dependencies: 67 | "@types/chroma-js" "^2.0.0" 68 | chroma-js "^2.1.0" 69 | nonenumerable "^1.1.1" 70 | 71 | chroma-js@^2.1.0: 72 | version "2.1.2" 73 | resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.1.2.tgz#1075cb9ae25bcb2017c109394168b5cf3aa500ec" 74 | integrity sha512-ri/ouYDWuxfus3UcaMxC1Tfp3IE9K5iQzxc2hSxbBRVNQFut1UuGAsZmiAf2mOUubzGJwgMSv9lHg+XqLaz1QQ== 75 | dependencies: 76 | cross-env "^6.0.3" 77 | 78 | create-require@^1.1.0: 79 | version "1.1.1" 80 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 81 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 82 | 83 | cross-env@^6.0.3: 84 | version "6.0.3" 85 | resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" 86 | integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== 87 | dependencies: 88 | cross-spawn "^7.0.0" 89 | 90 | cross-spawn@^7.0.0: 91 | version "7.0.3" 92 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 93 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 94 | dependencies: 95 | path-key "^3.1.0" 96 | shebang-command "^2.0.0" 97 | which "^2.0.1" 98 | 99 | diff@^4.0.1: 100 | version "4.0.2" 101 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 102 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 103 | 104 | exec-sh@^0.2.0: 105 | version "0.2.2" 106 | resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" 107 | integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== 108 | dependencies: 109 | merge "^1.2.0" 110 | 111 | isexe@^2.0.0: 112 | version "2.0.0" 113 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 114 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 115 | 116 | make-error@^1.1.1: 117 | version "1.3.5" 118 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" 119 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== 120 | 121 | merge@^1.2.0: 122 | version "1.2.1" 123 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" 124 | integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== 125 | 126 | minimist@^1.2.0: 127 | version "1.2.5" 128 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 129 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 130 | 131 | nonenumerable@^1.1.1: 132 | version "1.1.1" 133 | resolved "https://registry.yarnpkg.com/nonenumerable/-/nonenumerable-1.1.1.tgz#35f74d66a2571a09f25bc143c87324ec7dd0e4ff" 134 | integrity sha512-ptUD9w9D8WqW6fuJJkZNCImkf+0vdbgUTbRK3i7jsy3olqtH96hYE6Q/S3Tx9NWbcB/ocAjYshXCAUP0lZ9B4Q== 135 | 136 | path-key@^3.1.0: 137 | version "3.1.1" 138 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 139 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 140 | 141 | shebang-command@^2.0.0: 142 | version "2.0.0" 143 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 144 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 145 | dependencies: 146 | shebang-regex "^3.0.0" 147 | 148 | shebang-regex@^3.0.0: 149 | version "3.0.0" 150 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 151 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 152 | 153 | ts-node@^10.2.1: 154 | version "10.2.1" 155 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5" 156 | integrity sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw== 157 | dependencies: 158 | "@cspotcode/source-map-support" "0.6.1" 159 | "@tsconfig/node10" "^1.0.7" 160 | "@tsconfig/node12" "^1.0.7" 161 | "@tsconfig/node14" "^1.0.0" 162 | "@tsconfig/node16" "^1.0.2" 163 | acorn "^8.4.1" 164 | acorn-walk "^8.1.1" 165 | arg "^4.1.0" 166 | create-require "^1.1.0" 167 | diff "^4.0.1" 168 | make-error "^1.1.1" 169 | yn "3.1.1" 170 | 171 | typescript@^4.4.2: 172 | version "4.4.2" 173 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" 174 | integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== 175 | 176 | watch@^1.0.2: 177 | version "1.0.2" 178 | resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz#340a717bde765726fa0aa07d721e0147a551df0c" 179 | integrity sha1-NApxe952Vyb6CqB9ch4BR6VR3ww= 180 | dependencies: 181 | exec-sh "^0.2.0" 182 | minimist "^1.2.0" 183 | 184 | which@^2.0.1: 185 | version "2.0.2" 186 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 187 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 188 | dependencies: 189 | isexe "^2.0.0" 190 | 191 | yn@3.1.1: 192 | version "3.1.1" 193 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 194 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 195 | --------------------------------------------------------------------------------