├── .gitignore ├── .jshintrc ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── _icons ├── circular │ ├── circular-128x128.png │ ├── circular-16x16.png │ ├── circular-256x256.png │ ├── circular-32x32.png │ ├── circular-48x48.png │ ├── circular.icns │ ├── circular.ico │ └── circular.png ├── rounded │ ├── rounded-128x128.png │ ├── rounded-16x16.png │ ├── rounded-256x256.png │ ├── rounded-32x32.png │ ├── rounded-48x48.png │ ├── rounded.icns │ ├── rounded.ico │ └── rounded.png ├── source.ai └── squared │ ├── squared-128x128.png │ ├── squared-16x16.png │ ├── squared-256x256.png │ ├── squared-32x32.png │ ├── squared-48x48.png │ ├── squared.icns │ ├── squared.ico │ └── squared.png ├── index.less ├── lib ├── dom.coffee ├── main.coffee └── settings.coffee ├── package.json ├── sample-files ├── .htaccess ├── Bower.json ├── CSS.css ├── CoffeScript.coffee ├── CoffeeReact.cjsx ├── EJS.ejs ├── Favicon.ico ├── Gruntfile.js ├── Gulpfile.js ├── Handlebars.hbs ├── Html.html ├── Image.ai ├── JSON.json ├── Jade.jade ├── JavaScript.js ├── Julia.jl ├── LICENSE ├── Less.less ├── Markdown.md ├── Mustache.mustache ├── PHP.php ├── Procfile ├── Pug.pug ├── Python.py ├── React.jsx ├── Ruby.rb ├── Sass.scss ├── Stache.stache ├── Stylus.styl ├── Text.txt ├── Typescript.ts ├── XML.xml ├── YML.yml └── ink.ink ├── screenshot-colors.png ├── screenshot-settings.png ├── screenshot.png └── styles ├── colors.less ├── colors └── primary.less ├── editor.less ├── languages ├── css.less ├── gfm.less ├── go.less ├── html.less ├── ink.less ├── jade.less ├── javascript.less ├── json.less ├── markdown.less ├── mustache.less ├── perl.less └── python.less ├── plugins.less ├── plugins └── git-time-machine.less ├── syntax-variables.less ├── syntax.less ├── themes ├── blue.less ├── default.less ├── green.less ├── orange.less ├── pink.less ├── purple.less ├── red.less ├── steel.less └── yellow.less └── user-theme.less /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": false, 6 | "camelcase": false, 7 | "curly": false, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "latedef": true, 11 | "newcap": true, 12 | "noarg": true, 13 | "quotmark": "single", 14 | "regexp": true, 15 | "undef": true, 16 | "unused": false, 17 | "strict": false, 18 | "trailing": true, 19 | "smarttabs": false, 20 | "indent": 2, 21 | "devel": false, 22 | "noempty": true 23 | } 24 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 1.2.0 4 | - Remove spurious background from `.meta.separator` 5 | - Fix priority of `.source` ruleset 6 | - Improve highlighting of errors and invalid whitespace 7 | - Colour Pod entity references as character escapes 8 | - Add error highlighting to illegal whitespace in Pod 9 | - Add syntax-colouring tweaks for Perl and Pod files 10 | - Tweak colour applied to multiline unquoted strings 11 | - Add highlighting to unquoted/misc string patterns 12 | 13 | ## 1.1.2 14 | - Remove apmInstallSource 15 | 16 | ## 1.1.1 17 | - Fix deprecated selectors 18 | - Add support for Ink syntax 19 | - Update Markdown syntax 20 | - Update Jade syntax 21 | 22 | ## 1.1.0 23 | - Skipped due to apm `Git tag not found` error. 24 | 25 | ## 1.0.1 26 | - Fix "path not defined" bug 27 | 28 | ## 1.0.0 29 | * Misc tweaks to syntax colors 30 | * Consolidate duplicate language styles into syntax.less file 31 | * Add config file for user settings 32 | * Add theme files for syntax color options 33 | * Blue (Default) 34 | * Green 35 | * Orange 36 | * Pink 37 | * Purple 38 | * Steel 39 | * Yellow 40 | * Enable user to select theme style in setting 41 | * Enable dynamic syntax color based on UI theme 42 | * Update syntax theme ui theme changes 43 | * Allow disabling of dynamic syntax theme in settings 44 | 45 | 46 | ## 0.4.2 47 | * Add Javascript less file 48 | * Improve Python syntax highlighting 49 | * Fix nested JSON styles 50 | 51 | ## 0.4.1 52 | * Fix cursor position error 53 | 54 | ## 0.4.0 55 | * Improve Golang syntax support 56 | * Removed hightlight border 57 | * Fixed the deprecated call introduced in atom v0.189 58 | * Fixed crasher 59 | * Move to "stylesheet" vs "styles" folder for Atom 1.0 60 | 61 | 62 | ## 0.3.3 63 | * Fix C/C++ parenthesis highlighting 64 | * Adjust gutter padding 65 | 66 | ## 0.3.2 67 | * Fix deprecation errors 68 | * Update JSON syntax 69 | * Add sample files for testing various languages 70 | 71 | ## 0.3.1 72 | * Remove reference to non-existant stylesheet 73 | 74 | ## 0.3 75 | * Break syntax into modules to make language specific styles easier to manage 76 | * Add specific styles for HTML, Jade, Handlebars, Mustache 77 | 78 | ## 0.2.1 79 | * Update text selection color 80 | 81 | ## 0.2 82 | * Make compatible with atom-text-editor shadow DOM 83 | * Fix bracket matcher styling 84 | 85 | ## 0.0.0 - First Release 86 | * Create initial theme files 87 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Jesse Weed 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Seti Syntax 2 | 3 | 4 | [![Gitter](https://img.shields.io/gitter/room/jesseweed/seti-syntax.svg?style=flat-square)](https://gitter.im/jesseweed/seti-syntax) [![apm](https://img.shields.io/apm/dm/seti-syntax.svg?style=flat-square)](https://atom.io/themes/seti-syntax) [![apm](https://img.shields.io/apm/v/seti-syntax.svg?style=flat-square)](https://atom.io/themes/seti-syntax) [![apm](https://img.shields.io/apm/l/seti-syntax.svg?style=flat-square)](https://atom.io/themes/seti-syntax) 5 | [![Gratipay Team](https://img.shields.io/gratipay/team/atom-seti-ui.svg?style=flat-square)](https://gratipay.com/Atom-Seti-UI/) 6 | 7 | 8 | This is the latest version of the Seti Syntax theme. It's a dark syntax theme crafted especially for [Atom](http://atom.io), with subtle colors that are meant to be easy on the eyes. It is mean to be paired with [Seti UI](https://atom.io/themes/seti-ui) (though this is hardly a requirement). 9 | 10 | 11 | ----- 12 | 13 | ##### **Please Note:** This is the Seti syntax theme for [Atom](http://atom.io) only 14 | 15 | This is for the _syntax_ (i.e. code view) of the Atom editor. I also have [Seti UI](https://atom.io/themes/seti-ui) for theming the _interface_ in Atom. 16 | 17 | If you're not in the market for an Atom theme, you can have a look at one of these great ports for other platforms: 18 | 19 | + [Emacs](https://github.com/caisah/seti-theme) 20 | + [iTerm](https://github.com/willmanduffy/seti-iterm) 21 | + [JetBrains](https://github.com/zchee/Seti_JetBrains) 22 | + [Sublime Text 3](https://packagecontrol.io/packages/Seti_UI) 23 | + [Vim](https://github.com/trusktr/seti.vim) 24 | + [Hyper](https://github.com/unluisco/hyperseti) 25 | 26 | ----- 27 | 28 | ## What's New? 1.0 Update 29 | Seti has reached 1.0, and it now integrates more tightly with Seti UI. There is also a new settings interface that allows you to select a base color theme. 30 | 31 | ![Screenshot](https://github.com/jesseweed/seti-syntax/raw/1.0-beta/screenshot.png) 32 | 33 | ----- 34 | 35 | ## Settings 36 | _To get here, Go to "Atom > Preferences" Select "Themes" and click the settings icon next to "Seti" under Syntax Theme dropdown_ 37 | 38 | ![Screenshot](https://github.com/jesseweed/seti-syntax/raw/1.0-beta/screenshot-settings.png) 39 | 40 | You can choose to have the syntax theme automatically adjust to match your selected theme in Seti UI (default), or select one of the built in themes. 41 | 42 | _Please note this is some-what of a beta feature. The default blue theme has been pretty well tested, but the other colors are still being tweaked. Keep an eye out for updates, and please file a bug if you notice anything weird._ 43 | 44 | ![Screenshot](https://github.com/jesseweed/seti-syntax/raw/1.0-beta/screenshot-colors.png) 45 | 46 | ----- 47 | 48 | ### Custom Icons 49 | [ ![Screenshot](https://github.com/jesseweed/seti-syntax/raw/1.0-beta/_icons/circular/circular-128x128.png) ](_icons/circular/) 50 | [ ![Screenshot](https://github.com/jesseweed/seti-syntax/raw/1.0-beta/_icons/rounded/rounded-128x128.png) ](_icons/rounded/) 51 | [ ![Screenshot](https://github.com/jesseweed/seti-syntax/raw/1.0-beta/_icons/squared/squared-128x128.png) ](_icons/squared/) 52 | -------------------------------------------------------------------------------- /_icons/circular/circular-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular-128x128.png -------------------------------------------------------------------------------- /_icons/circular/circular-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular-16x16.png -------------------------------------------------------------------------------- /_icons/circular/circular-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular-256x256.png -------------------------------------------------------------------------------- /_icons/circular/circular-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular-32x32.png -------------------------------------------------------------------------------- /_icons/circular/circular-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular-48x48.png -------------------------------------------------------------------------------- /_icons/circular/circular.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular.icns -------------------------------------------------------------------------------- /_icons/circular/circular.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular.ico -------------------------------------------------------------------------------- /_icons/circular/circular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/circular/circular.png -------------------------------------------------------------------------------- /_icons/rounded/rounded-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded-128x128.png -------------------------------------------------------------------------------- /_icons/rounded/rounded-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded-16x16.png -------------------------------------------------------------------------------- /_icons/rounded/rounded-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded-256x256.png -------------------------------------------------------------------------------- /_icons/rounded/rounded-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded-32x32.png -------------------------------------------------------------------------------- /_icons/rounded/rounded-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded-48x48.png -------------------------------------------------------------------------------- /_icons/rounded/rounded.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded.icns -------------------------------------------------------------------------------- /_icons/rounded/rounded.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded.ico -------------------------------------------------------------------------------- /_icons/rounded/rounded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/rounded/rounded.png -------------------------------------------------------------------------------- /_icons/source.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/source.ai -------------------------------------------------------------------------------- /_icons/squared/squared-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared-128x128.png -------------------------------------------------------------------------------- /_icons/squared/squared-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared-16x16.png -------------------------------------------------------------------------------- /_icons/squared/squared-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared-256x256.png -------------------------------------------------------------------------------- /_icons/squared/squared-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared-32x32.png -------------------------------------------------------------------------------- /_icons/squared/squared-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared-48x48.png -------------------------------------------------------------------------------- /_icons/squared/squared.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared.icns -------------------------------------------------------------------------------- /_icons/squared/squared.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared.ico -------------------------------------------------------------------------------- /_icons/squared/squared.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/_icons/squared/squared.png -------------------------------------------------------------------------------- /index.less: -------------------------------------------------------------------------------- 1 | @import "styles/colors"; 2 | @import "styles/editor"; 3 | @import "styles/plugins"; 4 | @import "styles/syntax"; 5 | 6 | // Language specific styles 7 | @import "styles/languages/css"; 8 | @import "styles/languages/gfm"; 9 | @import "styles/languages/go"; 10 | @import "styles/languages/html"; 11 | @import "styles/languages/ink"; 12 | @import "styles/languages/jade"; 13 | @import "styles/languages/javascript"; 14 | @import "styles/languages/json"; 15 | @import "styles/languages/markdown"; 16 | @import "styles/languages/mustache"; 17 | @import "styles/languages/perl"; 18 | @import "styles/languages/python"; 19 | 20 | // PLUGINS 21 | @import "styles/plugins/git-time-machine"; 22 | -------------------------------------------------------------------------------- /lib/dom.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | query: (el) -> 3 | document.querySelector el 4 | 5 | queryAll: (el) -> 6 | document.querySelectorAll el 7 | 8 | addClass: (el, className) -> 9 | @toggleClass 'add', el, className 10 | 11 | removeClass: (el, className) -> 12 | @toggleClass 'remove', el, className 13 | 14 | toggleClass: (action, el, className) -> 15 | if el != null 16 | i = 0 17 | while i < el.length 18 | el[i].classList[action] className 19 | i++ 20 | -------------------------------------------------------------------------------- /lib/main.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | activate: (state) -> 3 | require( atom.packages.getLoadedPackage('seti-syntax').path + '/lib/settings').init(state) 4 | -------------------------------------------------------------------------------- /lib/settings.coffee: -------------------------------------------------------------------------------- 1 | Dom = require('./dom') 2 | 3 | module.exports = 4 | init: (state) -> 5 | 6 | self = @ 7 | @themeSet = false 8 | 9 | # ONCE PACKAGE IS LOADED 10 | if self.isLoaded('seti-syntax') 11 | 12 | # WHEN SYNTAX THEME CHANGES 13 | atom.config.onDidChange 'seti-syntax.themeColor', (value) -> 14 | self.setTheme value.newValue, value.oldValue, true 15 | 16 | # WHEN DYNAMIC THEME IS ENABLED OR DISABLED 17 | atom.config.onDidChange 'seti-syntax.dynamicColor', (value) -> 18 | # IF DYNIMIC IS ALLWOED 19 | if (value.newValue) 20 | newColor = atom.config.get('seti-ui.themeColor') 21 | self.setTheme newColor, false, true 22 | # IF DYNAMIC IS NOT ALLOWED 23 | else 24 | # IF SYNTAX COLOR HAS BEEN SET 25 | if (atom.config.get('seti-syntax.themeColor')) 26 | newColor = atom.config.get('seti-syntax.themeColor') 27 | # FALLBACK TP DEFAULT COLO IF NONE SET 28 | else 29 | newColor = 'default' 30 | self.setTheme newColor, false, true 31 | 32 | # IF SETI UI IS LOADED 33 | if self.isLoaded('seti-ui') 34 | 35 | # IF DYNAMIC THEM IS ALLOWED 36 | if atom.config.get('seti-syntax.dynamicColor') and not @themeSet 37 | # SET SYNTAX THEME TO MATCH UI 38 | self.setTheme atom.config.get('seti-ui.themeColor'), false, false 39 | 40 | # WHEN UI THEME CHANGES 41 | atom.config.onDidChange 'seti-ui.themeColor', (value) -> 42 | # IF DYNAMIC THEM IS ALLOWED 43 | if atom.config.get('seti-syntax.dynamicColor') 44 | # SET SYNTAX THEME TO MATCH UI 45 | self.setTheme value.newValue, value.oldValue, false 46 | 47 | # IF SETI UI IS DEACTIVATED 48 | self.onDeactivate 'seti-ui', -> 49 | # IF DYNAMIC THEM WAS ALLOWED 50 | if atom.config.get('seti-syntax.dynamicColor') 51 | # SET THEME TO DEFAULT 52 | self.setTheme 'default', false, false 53 | 54 | # SET USER THEME IS NOT SET DYNAMICALLY 55 | if (atom.config.get('seti-syntax.themeColor')) and not @themeSet 56 | self.setTheme atom.config.get('seti-syntax.themeColor'), false, false 57 | 58 | # IF ALL ELSE HAS FAILED, LOAD THE DEFAULT THEME 59 | else if (not @themeSet) 60 | self.setTheme 'default', false, false 61 | 62 | # CHECKS IF A PACKAGE IS LOADED 63 | isLoaded: (which) -> 64 | return atom.packages.isPackageLoaded(which) 65 | 66 | # WHEN PACKAGE ACTIVATES 67 | onActivate: (which, cb) -> 68 | atom.packages.onDidActivatePackage (pkg) -> 69 | if pkg.name == which 70 | cb pkg 71 | 72 | # WHEN PACKAGE DEACTIVATES 73 | onDeactivate: (which, cb) -> 74 | atom.packages.onDidDeactivatePackage (pkg) -> 75 | if pkg.name == which 76 | cb pkg 77 | 78 | # GET INFO ABOUT OUR PACKAGE 79 | package: atom.packages.getLoadedPackage('seti-syntax') 80 | 81 | # DETERMINE IF A SPECIFIC PACKAGE HAS BEEN LOADED 82 | packageInfo: (which) -> 83 | return atom.packages.getLoadedPackage which 84 | 85 | # RELOAD WHEN SETTINGS CHANGE 86 | refresh: -> 87 | self = @ 88 | self.package.deactivate() 89 | setImmediate -> 90 | return self.package.activate() 91 | 92 | setTheme: (theme, previous, reload) -> 93 | self = @ 94 | fs = require('fs') 95 | pkg = @package 96 | themeData = '@import "themes/' + theme.toLowerCase() + '";' 97 | 98 | # THIS PREVENTS THEME FROM BEING SET TWICE 99 | @themeSet = true 100 | 101 | # CHECK CURRENT THEME FILE 102 | fs.readFile pkg.path + '/styles/user-theme.less', 'utf8', (err, fileData) -> 103 | # IF THEME IS DIFFERENT THAN IS USED TO BE 104 | if fileData != themeData 105 | # SAVE A NEW USER THEME FILE 106 | fs.writeFile pkg.path + '/styles/user-theme.less', themeData, (err) -> 107 | # IF FILE WAS WRITTEN OK 108 | if !err 109 | # RELOAD THE VIEW 110 | self.refresh() 111 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "seti-syntax", 3 | "theme": "syntax", 4 | "version": "1.2.0", 5 | "description": "Seti Syntax - A subtle dark colored theme for Atom.", 6 | "main": "./lib/main", 7 | "repository": "https://github.com/jesseweed/seti-syntax", 8 | "license": "MIT", 9 | "engines": { 10 | "atom": ">1.6" 11 | }, 12 | "configSchema": { 13 | "dynamicColor": { 14 | "title": "Dynamic Theme", 15 | "description": "Enable this to set syntax color dynamically based on seti ui theme.", 16 | "type": "boolean", 17 | "default": true 18 | }, 19 | "themeColor": { 20 | "title": "Theme Color", 21 | "description": "Set your default syntax color (this will be ignored if dynamic theme is enabled above).", 22 | "type": "string", 23 | "enum": [ 24 | "Blue", 25 | "Green", 26 | "Orange", 27 | "Pink", 28 | "Purple", 29 | "Red", 30 | "Steel", 31 | "Yellow" 32 | ], 33 | "default": "Blue" 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /sample-files/.htaccess: -------------------------------------------------------------------------------- 1 | Options +FollowSymLinks 2 | RewriteEngine On 3 | 4 | RewriteCond %{REQUEST_FILENAME} !-d 5 | RewriteCond %{REQUEST_FILENAME} !-f 6 | RewriteRule ^ index.php [L] 7 | -------------------------------------------------------------------------------- /sample-files/Bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MyProject", 3 | "version": 0.0.1, 4 | "dependencies": { 5 | "backbone": "latest", 6 | "requirejs": "2.1.1" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /sample-files/CSS.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Raleway'; 3 | font-style: normal; 4 | font-weight: 300; 5 | src: local('Raleway Light'), local('Raleway-Light'), url("http://themes.googleusercontent.com/static/fonts/raleway/v6/-_Ctzj9b56b8RgXW8FArib3hpw3pgy2gAi-Ip7WPMi0.woff") format('woff'); 6 | } 7 | @font-face { 8 | font-family: 'Raleway'; 9 | font-style: normal; 10 | font-weight: 400; 11 | src: local('Raleway'), url("http://themes.googleusercontent.com/static/fonts/raleway/v6/cIFypx4yrWPDz3zOxk7hIQLUuEpTyoUstqEm5AMlJo4.woff") format('woff'); 12 | } 13 | @font-face { 14 | font-family: 'Raleway'; 15 | font-style: normal; 16 | font-weight: 500; 17 | src: local('Raleway Medium'), local('Raleway-Medium'), url("http://themes.googleusercontent.com/static/fonts/raleway/v6/CcKI4k9un7TZVWzRVT-T873hpw3pgy2gAi-Ip7WPMi0.woff") format('woff'); 18 | } 19 | @font-face { 20 | font-family: 'Raleway'; 21 | font-style: normal; 22 | font-weight: 700; 23 | src: local('Raleway Bold'), local('Raleway-Bold'), url("http://themes.googleusercontent.com/static/fonts/raleway/v6/JbtMzqLaYbbbCL9X6EvaI73hpw3pgy2gAi-Ip7WPMi0.woff") format('woff'); 24 | } 25 | article, 26 | aside, 27 | details, 28 | figcaption, 29 | figure, 30 | footer, 31 | header, 32 | hgroup, 33 | main, 34 | nav, 35 | section, 36 | summary { 37 | display: block; 38 | } 39 | audio, 40 | canvas, 41 | video { 42 | display: inline-block; 43 | } 44 | audio:not([controls]) { 45 | display: none; 46 | height: 0; 47 | } 48 | [hidden] { 49 | display: none; 50 | } 51 | html { 52 | font-family: sans-serif; 53 | -webkit-text-size-adjust: 100%; 54 | -ms-text-size-adjust: 100%; 55 | } 56 | body { 57 | margin: 0; 58 | } 59 | a:focus { 60 | outline: thin dotted; 61 | } 62 | a:active, 63 | a:hover { 64 | outline: 0; 65 | } 66 | h1 { 67 | font-size: 2em; 68 | margin: 0.67em 0; 69 | } 70 | abbr[title] { 71 | border-bottom: 1px dotted; 72 | } 73 | b, 74 | strong { 75 | font-weight: bold; 76 | } 77 | dfn { 78 | font-style: italic; 79 | } 80 | hr { 81 | -moz-box-sizing: content-box; 82 | box-sizing: content-box; 83 | height: 0; 84 | } 85 | mark { 86 | background: #ff0; 87 | color: #000; 88 | } 89 | code, 90 | kbd, 91 | pre, 92 | samp { 93 | font-family: monospace, serif; 94 | font-size: 1em; 95 | } 96 | pre { 97 | white-space: pre-wrap; 98 | } 99 | q { 100 | quotes: "\201C" "\201D" "\2018" "\2019"; 101 | } 102 | small { 103 | font-size: 80%; 104 | } 105 | sub, 106 | sup { 107 | font-size: 75%; 108 | line-height: 0; 109 | position: relative; 110 | vertical-align: baseline; 111 | } 112 | sup { 113 | top: -0.5em; 114 | } 115 | sub { 116 | bottom: -0.25em; 117 | } 118 | img { 119 | border: 0; 120 | } 121 | svg:not(:root) { 122 | overflow: hidden; 123 | } 124 | figure { 125 | margin: 0; 126 | } 127 | fieldset { 128 | border: 1px solid #c0c0c0; 129 | margin: 0 2px; 130 | padding: 0.35em 0.625em 0.75em; 131 | } 132 | legend { 133 | border: 0; 134 | padding: 0; 135 | } 136 | button, 137 | input, 138 | select, 139 | textarea { 140 | font-family: inherit; 141 | font-size: 100%; 142 | margin: 0; 143 | } 144 | button, 145 | input { 146 | line-height: normal; 147 | } 148 | button, 149 | select { 150 | text-transform: none; 151 | } 152 | button, 153 | html input[type="button"], 154 | input[type="reset"], 155 | input[type="submit"] { 156 | -webkit-appearance: button; 157 | cursor: pointer; 158 | } 159 | button[disabled], 160 | html input[disabled] { 161 | cursor: default; 162 | } 163 | input[type="checkbox"], 164 | input[type="radio"] { 165 | box-sizing: border-box; 166 | padding: 0; 167 | } 168 | input[type="search"] { 169 | -webkit-appearance: textfield; 170 | -moz-box-sizing: content-box; 171 | -webkit-box-sizing: content-box; 172 | box-sizing: content-box; 173 | } 174 | input[type="search"]::-webkit-search-cancel-button, 175 | input[type="search"]::-webkit-search-decoration { 176 | -webkit-appearance: none; 177 | } 178 | button::-moz-focus-inner, 179 | input::-moz-focus-inner { 180 | border: 0; 181 | padding: 0; 182 | } 183 | textarea { 184 | overflow: auto; 185 | vertical-align: top; 186 | } 187 | table { 188 | border-collapse: collapse; 189 | border-spacing: 0; 190 | } 191 | * { 192 | -webkit-box-sizing: border-box; 193 | -moz-box-sizing: border-box; 194 | box-sizing: border-box; 195 | outline: none; 196 | } 197 | html, 198 | body { 199 | background-color: #fff; 200 | height: 100%; 201 | } 202 | html { 203 | font-size: 100%; 204 | margin: 0; 205 | padding: 0; 206 | } 207 | body { 208 | font-size: 14px; 209 | font-family: 'Raleway', sans-serif; 210 | line-height: 1.5em; 211 | font-weight: 400; 212 | } 213 | h1, 214 | h2, 215 | h3, 216 | h4, 217 | h5, 218 | h6 { 219 | margin: 0px 0px 5px 0px; 220 | padding: 0px; 221 | } 222 | h1 { 223 | padding-bottom: 10px; 224 | } 225 | pre { 226 | line-height: 200%; 227 | font-size: 12px; 228 | background-color: rgba(255,0,0,0.05); 229 | padding: 20px; 230 | } 231 | .content { 232 | padding: 30px; 233 | } 234 | .block { 235 | display: block; 236 | } 237 | .inline { 238 | display: inline; 239 | } 240 | .inline-block { 241 | display: inline-block; 242 | } 243 | .bad { 244 | color: #c00; 245 | } 246 | .good { 247 | color: #2fbb20; 248 | } 249 | .highlight { 250 | color: #d98a38; 251 | } 252 | -------------------------------------------------------------------------------- /sample-files/CoffeScript.coffee: -------------------------------------------------------------------------------- 1 | # Assignment: 2 | number = 42 3 | opposite = true 4 | 5 | # Conditions: 6 | number = -42 if opposite 7 | 8 | # Functions: 9 | square = (x) -> x * x 10 | 11 | # Arrays: 12 | list = [1, 2, 3, 4, 5] 13 | 14 | # Objects: 15 | math = 16 | root: Math.sqrt 17 | square: square 18 | cube: (x) -> x * square x 19 | 20 | # Splats: 21 | race = (winner, runners...) -> 22 | print winner, runners 23 | 24 | # Existence: 25 | alert "I knew it!" if elvis? 26 | 27 | # Array comprehensions: 28 | cubes = (math.cube num for num in list) 29 | -------------------------------------------------------------------------------- /sample-files/CoffeeReact.cjsx: -------------------------------------------------------------------------------- 1 | # @cjsx React.DOM 2 | 3 | NeatComponent = React.createClass 4 | render: -> 5 |
6 | {

A Component is I

if @props.showTitle} 7 |
8 | {

This line has been printed {n} times

for n in [1..10]} 9 |
10 | -------------------------------------------------------------------------------- /sample-files/EJS.ejs: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /sample-files/Favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/sample-files/Favicon.ico -------------------------------------------------------------------------------- /sample-files/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | grunt.initConfig({ 4 | jshint: { 5 | files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'], 6 | options: { 7 | globals: { 8 | jQuery: true 9 | } 10 | } 11 | }, 12 | watch: { 13 | files: ['<%= jshint.files %>'], 14 | tasks: ['jshint'] 15 | } 16 | }); 17 | 18 | grunt.loadNpmTasks('grunt-contrib-jshint'); 19 | grunt.loadNpmTasks('grunt-contrib-watch'); 20 | 21 | grunt.registerTask('default', ['jshint']); 22 | 23 | }; 24 | -------------------------------------------------------------------------------- /sample-files/Gulpfile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Web Starter Kit 4 | * Copyright 2014 Google Inc. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * https://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License 17 | * 18 | */ 19 | 20 | 'use strict'; 21 | 22 | // Include Gulp & Tools We'll Use 23 | var gulp = require('gulp'); 24 | var $ = require('gulp-load-plugins')(); 25 | var del = require('del'); 26 | var runSequence = require('run-sequence'); 27 | var browserSync = require('browser-sync'); 28 | var pagespeed = require('psi'); 29 | var reload = browserSync.reload; 30 | 31 | var AUTOPREFIXER_BROWSERS = [ 32 | 'ie >= 10', 33 | 'ie_mob >= 10', 34 | 'ff >= 30', 35 | 'chrome >= 34', 36 | 'safari >= 7', 37 | 'opera >= 23', 38 | 'ios >= 7', 39 | 'android >= 4.4', 40 | 'bb >= 10' 41 | ]; 42 | 43 | // Lint JavaScript 44 | gulp.task('jshint', function () { 45 | return gulp.src('app/scripts/**/*.js') 46 | .pipe(reload({stream: true, once: true})) 47 | .pipe($.jshint()) 48 | .pipe($.jshint.reporter('jshint-stylish')) 49 | .pipe($.if(!browserSync.active, $.jshint.reporter('fail'))); 50 | }); 51 | 52 | // Optimize Images 53 | gulp.task('images', function () { 54 | return gulp.src('app/images/**/*') 55 | .pipe($.cache($.imagemin({ 56 | progressive: true, 57 | interlaced: true 58 | }))) 59 | .pipe(gulp.dest('dist/images')) 60 | .pipe($.size({title: 'images'})); 61 | }); 62 | 63 | // Copy All Files At The Root Level (app) 64 | gulp.task('copy', function () { 65 | return gulp.src([ 66 | 'app/*', 67 | '!app/*.html', 68 | 'node_modules/apache-server-configs/dist/.htaccess' 69 | ], { 70 | dot: true 71 | }).pipe(gulp.dest('dist')) 72 | .pipe($.size({title: 'copy'})); 73 | }); 74 | 75 | // Copy Web Fonts To Dist 76 | gulp.task('fonts', function () { 77 | return gulp.src(['app/fonts/**']) 78 | .pipe(gulp.dest('dist/fonts')) 79 | .pipe($.size({title: 'fonts'})); 80 | }); 81 | 82 | // Compile and Automatically Prefix Stylesheets 83 | gulp.task('styles', function () { 84 | // For best performance, don't add Sass partials to `gulp.src` 85 | return gulp.src([ 86 | 'app/styles/*.scss', 87 | 'app/styles/**/*.css', 88 | 'app/styles/components/components.scss' 89 | ]) 90 | .pipe($.sourcemaps.init()) 91 | .pipe($.changed('.tmp/styles', {extension: '.css'})) 92 | .pipe($.sass({ 93 | precision: 10, 94 | onError: console.error.bind(console, 'Sass error:') 95 | })) 96 | .pipe($.autoprefixer({browsers: AUTOPREFIXER_BROWSERS})) 97 | .pipe($.sourcemaps.write()) 98 | .pipe(gulp.dest('.tmp/styles')) 99 | // Concatenate And Minify Styles 100 | .pipe($.if('*.css', $.csso())) 101 | .pipe(gulp.dest('dist/styles')) 102 | .pipe($.size({title: 'styles'})); 103 | }); 104 | 105 | // Scan Your HTML For Assets & Optimize Them 106 | gulp.task('html', function () { 107 | var assets = $.useref.assets({searchPath: '{.tmp,app}'}); 108 | 109 | return gulp.src('app/**/*.html') 110 | .pipe(assets) 111 | // Concatenate And Minify JavaScript 112 | .pipe($.if('*.js', $.uglify({preserveComments: 'some'}))) 113 | // Remove Any Unused CSS 114 | // Note: If not using the Style Guide, you can delete it from 115 | // the next line to only include styles your project uses. 116 | .pipe($.if('*.css', $.uncss({ 117 | html: [ 118 | 'app/index.html', 119 | 'app/styleguide.html' 120 | ], 121 | // CSS Selectors for UnCSS to ignore 122 | ignore: [ 123 | /.navdrawer-container.open/, 124 | /.app-bar.open/ 125 | ] 126 | }))) 127 | // Concatenate And Minify Styles 128 | // In case you are still using useref build blocks 129 | .pipe($.if('*.css', $.csso())) 130 | .pipe(assets.restore()) 131 | .pipe($.useref()) 132 | // Update Production Style Guide Paths 133 | .pipe($.replace('components/components.css', 'components/main.min.css')) 134 | // Minify Any HTML 135 | .pipe($.if('*.html', $.minifyHtml())) 136 | // Output Files 137 | .pipe(gulp.dest('dist')) 138 | .pipe($.size({title: 'html'})); 139 | }); 140 | 141 | // Clean Output Directory 142 | gulp.task('clean', del.bind(null, ['.tmp', 'dist/*', '!dist/.git'], {dot: true})); 143 | 144 | // Watch Files For Changes & Reload 145 | gulp.task('serve', ['styles'], function () { 146 | browserSync({ 147 | notify: false, 148 | // Customize the BrowserSync console logging prefix 149 | logPrefix: 'WSK', 150 | // Run as an https by uncommenting 'https: true' 151 | // Note: this uses an unsigned certificate which on first access 152 | // will present a certificate warning in the browser. 153 | // https: true, 154 | server: ['.tmp', 'app'] 155 | }); 156 | 157 | gulp.watch(['app/**/*.html'], reload); 158 | gulp.watch(['app/styles/**/*.{scss,css}'], ['styles', reload]); 159 | gulp.watch(['app/scripts/**/*.js'], ['jshint']); 160 | gulp.watch(['app/images/**/*'], reload); 161 | }); 162 | 163 | // Build and serve the output from the dist build 164 | gulp.task('serve:dist', ['default'], function () { 165 | browserSync({ 166 | notify: false, 167 | logPrefix: 'WSK', 168 | // Run as an https by uncommenting 'https: true' 169 | // Note: this uses an unsigned certificate which on first access 170 | // will present a certificate warning in the browser. 171 | // https: true, 172 | server: 'dist' 173 | }); 174 | }); 175 | 176 | // Build Production Files, the Default Task 177 | gulp.task('default', ['clean'], function (cb) { 178 | runSequence('styles', ['jshint', 'html', 'images', 'fonts', 'copy'], cb); 179 | }); 180 | 181 | // Run PageSpeed Insights 182 | gulp.task('pagespeed', function (cb) { 183 | // Update the below URL to the public URL of your site 184 | pagespeed.output('example.com', { 185 | strategy: 'mobile', 186 | // By default we use the PageSpeed Insights free (no API key) tier. 187 | // Use a Google Developer API key if you have one: http://goo.gl/RkN0vE 188 | // key: 'YOUR_API_KEY' 189 | }, cb); 190 | }); 191 | 192 | // Load custom tasks from the `tasks` directory 193 | // try { require('require-dir')('tasks'); } catch (err) { console.error(err); } 194 | -------------------------------------------------------------------------------- /sample-files/Handlebars.hbs: -------------------------------------------------------------------------------- 1 | {{> header}} 2 | 3 |
4 |

Hello!

5 |

Welcome to {{site.name}}

6 |
7 | 8 | {{> footer}} 9 | -------------------------------------------------------------------------------- /sample-files/Html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Jade 5 | 12 | 13 | 14 |

Jade - node template engine

15 |
16 |

You are amazing

17 |

18 | Jade is a terse and simple 19 | templating language with a 20 | strong focus on performance 21 | and powerful features. 22 |

23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /sample-files/Image.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/sample-files/Image.ai -------------------------------------------------------------------------------- /sample-files/JSON.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MyProject", 3 | "version": 0.0.1, 4 | "dependencies": { 5 | "backbone": "latest", 6 | "requirejs": "2.1.1" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /sample-files/Jade.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | title= pageTitle 5 | script(type='text/javascript'). 6 | var foo = false; 7 | if (foo) { 8 | var bar = 6; 9 | return bar; 10 | } 11 | body 12 | h1 Jade - node template engine 13 | #container.col 14 | if youAreUsingJade 15 | p You are amazing 16 | else 17 | p Get on it! 18 | p. 19 | Jade is a terse and simple 20 | templating language with a 21 | strong focus on performance 22 | and powerful features. 23 | 24 | include ../file.name 25 | 26 | //- i am a comment 27 | block dynamic-content 28 | 29 | ul 30 | each item in group 31 | li #{item} name 32 | -------------------------------------------------------------------------------- /sample-files/JavaScript.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | HIGHLIGHTING: https://github.com/atom/language-javascript/blob/master/grammars/javascript.cson 4 | FILE TYPES: 'js', 'htc', '_js', 'es', 'es6', 'jsm', 'pac', 'pjs', 'xsjs', 'xsjslib' 5 | WRAPPER: source.js 6 | 7 | */ 8 | 9 | 10 | /* 11 | 12 | COMMENTS 13 | -------- 14 | CLASS: punctuation.definition.comment.js 15 | TRIGGERS: js single line or comment blocks 16 | 17 | */ 18 | 19 | 20 | 21 | /* 22 | 23 | DOCBLOCK 24 | -------- 25 | CLASS: storage.type.class.jsdoc 26 | 27 | TRIGGERS: abstract, access, alias, augments, author, async, attribute, arg, argument, beta, borrows, bubbes, callback, class, classdesc, config, const, constant, constructs, constructor, copyright, chainable, default, defaultvalue, deprecated, desc, description, enum, emits, event, example, exports, external, extends, extension, extensionfor, extension_for, for, file, fileoverview, fires, final, function, global, host, ignore, implements, inheritdoc, inner, instance, interface, kind, lends, license, listens, main, member, memberof, method, mixex, mixin(?:s, ), module, name, namespace, override, overview, param, private, prop, property, protected, readonly, readOnly, requires, required, return, returns, see, since, static, summary, submodule, this, throws, todo, tutorial, type, typedef, var, variation, version, virtual, uses, writeOnce 28 | 29 | */ 30 | 31 | class Bread { 32 | 33 | constructor(slices) { 34 | this.slices = 12; 35 | 36 | if ( slices > this.slices ) { 37 | console.log('not enough bread'); 38 | } else { 39 | console.log(slices); 40 | } 41 | 42 | } 43 | 44 | } 45 | 46 | class Sandwich extends Bread { 47 | 48 | constructor(slices) { 49 | this.bread = super(slices); 50 | this.toppings = []; 51 | } 52 | 53 | toppings( ingredients ) { 54 | ingredients.forEach(function(value, index) { 55 | this.toppings.push( value ); 56 | }); 57 | } 58 | 59 | } 60 | 61 | var Club = new Sandwich(3).toppings(['roast beef', 'turkey']); 62 | 63 | 64 | /* 65 | 66 | INTERPOLATED JS 67 | -------- 68 | CLASS: punctuation.definition.comment.js 69 | TRIGGERS: punctuation.section.embedded.js 70 | NOTE: This class doesn't currently seem to actually get applied 71 | 72 | */ 73 | 74 | var myName = 'Slim Shady', 75 | template = 'Hello, my name is ${myName}'; 76 | 77 | /* 78 | 79 | FUNCTION PARAMS 80 | -------- 81 | TRIGGER: () CLASS: meta.brace.round.js 82 | TRIGGER: [] CLASS: meta.brace.square.js 83 | TRIGGER: {} CLASS: meta.brace.curly.js 84 | TRIGGER: , CLASS: meta.object.delimiter.js 85 | TRIGGER: = CLASS: keyword.operator.js 86 | TRIGGER: parameters CLASS: variable.parameter.function.js 87 | 88 | */ 89 | 90 | 91 | function testFunction(string,arr,obj) { 92 | // DO SOMETHING 93 | } 94 | 95 | testFunction('one', 'two', [1,2,3], {key: 'value'} ); 96 | 97 | 98 | /* 99 | 100 | METHODS 101 | -------- 102 | CLASS: meta.method.js 103 | 104 | TRIGGER: break, case, catch, continue, do, else, export, finally, for, function, if, import, package, return, switch, throw, try, while, with 105 | 106 | */ 107 | 108 | import { ham as turkey } from 'mySandwich.js'; 109 | 110 | var isFunction; 111 | 112 | switch ( typeof testFunction ) { 113 | 114 | case 'function': 115 | isFunction = true; 116 | break; 117 | default: 118 | isFunction = false; 119 | 120 | } 121 | 122 | try { 123 | testFunction(); 124 | } catch (e) { 125 | throw 'Whoopsadaisy!'; 126 | } finally { 127 | console.log('i think we\'re done here!'); 128 | } 129 | -------------------------------------------------------------------------------- /sample-files/Julia.jl: -------------------------------------------------------------------------------- 1 | function mandel(z) 2 | c = z 3 | maxiter = 80 4 | for n = 1:maxiter 5 | if abs(z) > 2 6 | return n-1 7 | end 8 | z = z^2 + c 9 | end 10 | return maxiter 11 | end 12 | 13 | function randmatstat(t) 14 | n = 5 15 | v = zeros(t) 16 | w = zeros(t) 17 | for i = 1:t 18 | a = randn(n,n) 19 | b = randn(n,n) 20 | c = randn(n,n) 21 | d = randn(n,n) 22 | P = [a b c d] 23 | Q = [a b; c d] 24 | v[i] = trace((P.'*P)^4) 25 | w[i] = trace((Q.'*Q)^4) 26 | end 27 | std(v)/mean(v), std(w)/mean(w) 28 | end 29 | -------------------------------------------------------------------------------- /sample-files/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Jesse Weed 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /sample-files/Less.less: -------------------------------------------------------------------------------- 1 | @base: #f938ab; 2 | 3 | .box-shadow(@style, @c) when (iscolor(@c)) { 4 | -webkit-box-shadow: @style @c; 5 | box-shadow: @style @c; 6 | } 7 | .box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) { 8 | .box-shadow(@style, rgba(0, 0, 0, @alpha)); 9 | } 10 | .box { 11 | color: saturate(@base, 5%); 12 | border-color: lighten(@base, 30%); 13 | div { 14 | .box-shadow(0 0 5px, 30%) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /sample-files/Markdown.md: -------------------------------------------------------------------------------- 1 | A First Level Header 2 | ==================== 3 | 4 | A Second Level Header 5 | --------------------- 6 | 7 | Now is the time for all good men to come to 8 | the aid of their country. This is just a 9 | regular paragraph. 10 | 11 | The quick brown fox jumped over the lazy 12 | dog's back. 13 | 14 | # Header 1 15 | ## Header 2 16 | ### Header 3 17 | #### Header 4 18 | ##### Header 5 19 | ###### Header 6 20 | 21 | This is `inline code`. 22 | You can *emphasize text* or make it **bold**. 23 | This is a [website link](http://www.website.com). 24 | 25 | - This is a list 26 | * This is another list 27 | 28 | > This is a blockquote. 29 | > 30 | > This is the second paragraph in the blockquote. 31 | > 32 | > ## This is an H2 in a blockquote 33 | -------------------------------------------------------------------------------- /sample-files/Mustache.mustache: -------------------------------------------------------------------------------- 1 | {{> header}} 2 | 3 |
4 |

Hello!

5 |

Welcome to {{site.name}}

6 |
7 | 8 | {{> footer}} 9 | -------------------------------------------------------------------------------- /sample-files/PHP.php: -------------------------------------------------------------------------------- 1 | timezone = $_SERVER['TZ']; 8 | 9 | $this->ua = $_SERVER['HTTP_USER_AGENT']; 10 | 11 | $this->root = $_SERVER['DOCUMENT_ROOT']; 12 | $this->filename = $_SERVER['SCRIPT_FILENAME']; 13 | $this->uri = $_SERVER['REQUEST_URI']; 14 | 15 | if (isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/') : 16 | $this->path = '/index'; 17 | elseif ( isset($_SERVER['PATH_INFO']) ) : 18 | $this->path = $_SERVER['PATH_INFO']; 19 | else : 20 | $this->path = '/index'; 21 | endif; 22 | 23 | $this->self = $_SERVER['PHP_SELF']; 24 | 25 | 26 | } 27 | 28 | function current() { 29 | return $this->path; 30 | } 31 | 32 | } 33 | 34 | 35 | // END OF FILE 36 | -------------------------------------------------------------------------------- /sample-files/Procfile: -------------------------------------------------------------------------------- 1 | web: node index.js 2 | -------------------------------------------------------------------------------- /sample-files/Pug.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | title= pageTitle 5 | script(type='text/javascript'). 6 | var foo = false; 7 | if (foo) { 8 | var bar = 6; 9 | return bar; 10 | } 11 | body 12 | h1 Jade - node template engine 13 | #container.col 14 | if youAreUsingJade 15 | p You are amazing 16 | else 17 | p Get on it! 18 | p. 19 | Jade is a terse and simple 20 | templating language with a 21 | strong focus on performance 22 | and powerful features. 23 | 24 | include ../file.name 25 | 26 | //- i am a comment 27 | block dynamic-content 28 | 29 | ul 30 | each item in group 31 | li #{item} name 32 | -------------------------------------------------------------------------------- /sample-files/Python.py: -------------------------------------------------------------------------------- 1 | import package 2 | 3 | 4 | aClass = package.DefinedClass(3, 4, param1="a string") 5 | 6 | 7 | @package.decorate 8 | def SubFib(startNumber, endNumber): 9 | for cur in range(endNumber): 10 | if cur > endNumber: 11 | return 12 | if cur >= startNumber: 13 | yield cur 14 | 15 | for ii in SubFib(10, 200): 16 | if aClass.class_method(): 17 | print ii 18 | 19 | 20 | class ThisClass(object): 21 | def __init__(self, *args, **kwargs): 22 | ''' 23 | Block comments 24 | ''' 25 | self.this = "that" 26 | 27 | def is_this_that(self): 28 | return True if self.this == "that" else False 29 | -------------------------------------------------------------------------------- /sample-files/React.jsx: -------------------------------------------------------------------------------- 1 | var TodoList = React.createClass({ 2 | render: function() { 3 | var createItem = function(itemText) { 4 | return
  • {itemText}
  • ; 5 | }; 6 | return ; 7 | } 8 | }); 9 | var TodoApp = React.createClass({ 10 | getInitialState: function() { 11 | return {items: [], text: ''}; 12 | }, 13 | onChange: function(e) { 14 | this.setState({text: e.target.value}); 15 | }, 16 | handleSubmit: function(e) { 17 | e.preventDefault(); 18 | var nextItems = this.state.items.concat([this.state.text]); 19 | var nextText = ''; 20 | this.setState({items: nextItems, text: nextText}); 21 | }, 22 | render: function() { 23 | return ( 24 |
    25 |

    TODO

    26 | 27 |
    28 | 29 | 30 |
    31 |
    32 | ); 33 | } 34 | }); 35 | 36 | React.render(, mountNode); 37 | -------------------------------------------------------------------------------- /sample-files/Ruby.rb: -------------------------------------------------------------------------------- 1 | # p027readwrite.rb 2 | # Open and read from a text file 3 | # Note that since a block is given, file will 4 | # automatically be closed when the block terminates 5 | File.open('p014constructs.rb', 'r') do |f1| 6 | while line = f1.gets 7 | puts line 8 | end 9 | end 10 | 11 | # Create a new file and write to it 12 | File.open('test.rb', 'w') do |f2| 13 | # use "\n" for two lines of text 14 | f2.puts "Created by Satish\nThank God!" 15 | end 16 | -------------------------------------------------------------------------------- /sample-files/Sass.scss: -------------------------------------------------------------------------------- 1 | $font-stack: Helvetica, sans-serif; 2 | $primary-color: #333; 3 | 4 | body { 5 | font: 100% $font-stack; 6 | color: $primary-color; 7 | } 8 | 9 | nav { 10 | ul { 11 | margin: 0; 12 | padding: 0; 13 | list-style: none; 14 | } 15 | 16 | li { display: inline-block; } 17 | 18 | a { 19 | display: block; 20 | padding: 6px 12px; 21 | text-decoration: none; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /sample-files/Stache.stache: -------------------------------------------------------------------------------- 1 | {{> header}} 2 | 3 |
    4 |

    Hello!

    5 |

    Welcome to {{site.name}}

    6 |
    7 | 8 | {{> footer}} 9 | -------------------------------------------------------------------------------- /sample-files/Stylus.styl: -------------------------------------------------------------------------------- 1 | @import 'vendor' 2 | 3 | fonts = helvetica, arial, sans-serif 4 | 5 | border-radius() 6 | -webkit-border-radius arguments 7 | -moz-border-radius arguments 8 | border-radius arguments 9 | 10 | body 11 | font 12px Helvetica, Arial, fonts 12 | 13 | a.button 14 | border-radius 5px 15 | -------------------------------------------------------------------------------- /sample-files/Text.txt: -------------------------------------------------------------------------------- 1 | How happy is the blameless vestal's lot! 2 | The world forgetting, by the world forgot. 3 | Eternal sunshine of the spotless mind! 4 | Each pray'r accepted, and each wish resign'd; 5 | Labour and rest, that equal periods keep; 6 | "Obedient slumbers that can wake and weep;" 7 | Desires compos'd, affections ever ev'n, 8 | Tears that delight, and sighs that waft to Heav'n. 9 | Grace shines around her with serenest beams, 10 | And whisp'ring angels prompt her golden dreams. 11 | For her th' unfading rose of Eden blooms, 12 | And wings of seraphs shed divine perfumes, 13 | For her the Spouse prepares the bridal ring, 14 | For her white virgins hymeneals sing, 15 | To sounds of heav'nly harps she dies away, 16 | And melts in visions of eternal day. 17 | -------------------------------------------------------------------------------- /sample-files/Typescript.ts: -------------------------------------------------------------------------------- 1 | module Sayings { 2 | export class Greeter { 3 | greeting: string; 4 | constructor(message: string) { 5 | this.greeting = message; 6 | } 7 | greet() { 8 | return "Hello, " + this.greeting; 9 | } 10 | } 11 | } 12 | var greeter = new Sayings.Greeter("world"); 13 | 14 | var button = document.createElement('button'); 15 | button.textContent = "Say Hello"; 16 | button.onclick = function() { 17 | alert(greeter.greet()); 18 | }; 19 | 20 | document.body.appendChild(button); 21 | -------------------------------------------------------------------------------- /sample-files/XML.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Gambardella, Matthew 5 | XML Developer's Guide 6 | Computer 7 | 44.95 8 | 2000-10-01 9 | An in-depth look at creating applications 10 | with XML. 11 | 12 | 13 | Ralls, Kim 14 | Midnight Rain 15 | Fantasy 16 | 5.95 17 | 2000-12-16 18 | A former architect battles corporate zombies, 19 | an evil sorceress, and her own childhood to become queen 20 | of the world. 21 | 22 | 23 | Corets, Eva 24 | Maeve Ascendant 25 | Fantasy 26 | 5.95 27 | 2000-11-17 28 | After the collapse of a nanotechnology 29 | society in England, the young survivors lay the 30 | foundation for a new society. 31 | 32 | 33 | Corets, Eva 34 | Oberon's Legacy 35 | Fantasy 36 | 5.95 37 | 2001-03-10 38 | In post-apocalypse England, the mysterious 39 | agent known only as Oberon helps to create a new life 40 | for the inhabitants of London. Sequel to Maeve 41 | Ascendant. 42 | 43 | 44 | Corets, Eva 45 | The Sundered Grail 46 | Fantasy 47 | 5.95 48 | 2001-09-10 49 | The two daughters of Maeve, half-sisters, 50 | battle one another for control of England. Sequel to 51 | Oberon's Legacy. 52 | 53 | 54 | Randall, Cynthia 55 | Lover Birds 56 | Romance 57 | 4.95 58 | 2000-09-02 59 | When Carla meets Paul at an ornithology 60 | conference, tempers fly as feathers get ruffled. 61 | 62 | 63 | Thurman, Paula 64 | Splish Splash 65 | Romance 66 | 4.95 67 | 2000-11-02 68 | A deep sea diver finds true love twenty 69 | thousand leagues beneath the sea. 70 | 71 | 72 | Knorr, Stefan 73 | Creepy Crawlies 74 | Horror 75 | 4.95 76 | 2000-12-06 77 | An anthology of horror stories about roaches, 78 | centipedes, scorpions and other insects. 79 | 80 | 81 | Kress, Peter 82 | Paradox Lost 83 | Science Fiction 84 | 6.95 85 | 2000-11-02 86 | After an inadvertant trip through a Heisenberg 87 | Uncertainty Device, James Salway discovers the problems 88 | of being quantum. 89 | 90 | 91 | O'Brien, Tim 92 | Microsoft .NET: The Programming Bible 93 | Computer 94 | 36.95 95 | 2000-12-09 96 | Microsoft's .NET initiative is explored in 97 | detail in this deep programmer's reference. 98 | 99 | 100 | O'Brien, Tim 101 | MSXML3: A Comprehensive Guide 102 | Computer 103 | 36.95 104 | 2000-12-01 105 | The Microsoft MSXML3 parser is covered in 106 | detail, with attention to XML DOM interfaces, XSLT processing, 107 | SAX and more. 108 | 109 | 110 | Galos, Mike 111 | Visual Studio 7: A Comprehensive Guide 112 | Computer 113 | 49.95 114 | 2001-04-16 115 | Microsoft Visual Studio 7 is explored in depth, 116 | looking at how Visual Basic, Visual C++, C#, and ASP+ are 117 | integrated into a comprehensive development 118 | environment. 119 | 120 | 121 | -------------------------------------------------------------------------------- /sample-files/YML.yml: -------------------------------------------------------------------------------- 1 | # 2 | # Let's Chat Built-in Defaults 3 | # 4 | 5 | env: development # development / production 6 | 7 | http: 8 | enable: true 9 | port: 5000 10 | 11 | https: 12 | enable: false 13 | port: 5001 14 | key: key.pem 15 | cert: certificate.pem 16 | 17 | xmpp: 18 | enable: false 19 | debug: 20 | handled: false 21 | unhandled: false 22 | port: 5222 23 | host: localhost 24 | tls: 25 | enable: false 26 | key: ./server.key 27 | cert: ./server.crt 28 | 29 | database: 30 | uri: mongodb://localhost/letschat 31 | 32 | secrets: 33 | cookie: stop.hammer time! 34 | 35 | files: 36 | enable: false 37 | provider: local 38 | maxFileSize: 100000000 39 | restrictTypes: true 40 | allowedTypes: 41 | - 'image/jpeg' 42 | - 'image/png' 43 | - 'image/gif' 44 | 45 | local: 46 | dir: uploads 47 | 48 | s3: 49 | accessKeyId: 50 | secretAccessKey: 51 | bucket: 52 | region: 53 | 54 | auth: 55 | throttling: 56 | enable: true 57 | threshold: 3 58 | 59 | providers: [local] # [local, kerberos, ldap] - You can specify the order 60 | 61 | local: 62 | enableRegistration: true 63 | passwordRegex: ^.{8,64}$ 64 | salt: stop.hammer time! # Required when upgrading from version < 0.3 65 | -------------------------------------------------------------------------------- /sample-files/ink.ink: -------------------------------------------------------------------------------- 1 | === Cube === 2 | 3 | = lookat 4 | It's a cube. 5 | No, really, it's a cube. 6 | -> DONE 7 | 8 | = interact 9 | Cube: I'm a cube. 10 | It's a cuby cube. 11 | * [Here's a choice.] 12 | You chose a choice. 13 | * [Here's a different choice.] 14 | You chose a different choice. 15 | -> DONE 16 | -------------------------------------------------------------------------------- /screenshot-colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/screenshot-colors.png -------------------------------------------------------------------------------- /screenshot-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/screenshot-settings.png -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesseweed/seti-syntax/4b4fe13af9c77a71153341b00b629cf47b9c6906/screenshot.png -------------------------------------------------------------------------------- /styles/colors.less: -------------------------------------------------------------------------------- 1 | @import "colors/primary"; 2 | @import "themes/default"; 3 | @import "user-theme"; 4 | 5 | // GUTTER 6 | @gutter-text: @grey; 7 | @gutter-text-highlight: @color1; 8 | @gutter-background: @black-dark; 9 | @gutter-background-highlight: @black; 10 | 11 | // CODE VIEW 12 | @code-background: @black; // editor background 13 | @code-font-color: darken(@white, 10); // default editor text 14 | 15 | // STATUS 16 | @error: @red; 17 | @info: @color1; 18 | @success: @green; 19 | 20 | // GIT STATUS 21 | @removed: @red; 22 | @modified: @yellow; 23 | @added: @green; 24 | 25 | // TEXT 26 | @quotes: lighten(@color1, 20); 27 | @markup: @code-font-color; 28 | @markup-heading: @orange; 29 | @markup-h1: @markup-heading; 30 | @markup-h2: lighten(@markup-heading, 5); 31 | @markup-h3: lighten(@markup-heading, 10); 32 | @markup-h4: lighten(@markup-heading, 15); 33 | @markup-h5: lighten(@markup-heading, 20); 34 | @markup-h6: lighten(@markup-heading, 25); 35 | @unknown: @code-font-color; 36 | 37 | // MISC COLORS 38 | @invisible: rgba(255,255,255,0.1); 39 | @guides: rgba(245,250,255,0.04); 40 | @cursor-color: @code-font-color; 41 | @cursor-width: 2px; 42 | @selected: @color1-highlight; // selected background color 43 | @selected-border: darken(@color1-highlight, 10); 44 | @selected-line: rgba(0,0,0,0.2); 45 | @selected-text: @color1-text; 46 | 47 | 48 | // SEARCH 49 | @search-bg: transparent; 50 | @search-border: solid 1px @color1; 51 | @search-active-bg: @color1; 52 | @search-active-border: solid 1px @color1; 53 | @search-item-border: @color1; 54 | @search-item-bg: @color3; 55 | 56 | 57 | // SYNTAX COLORS 58 | @brackets: darken(@code-font-color, 30%); 59 | @comment: @grey; // comments, duhr. 60 | @comment-bg: none; 61 | @comment-punc: @comment; 62 | @constant: @color3; // true of var x = true, {{}} of {{> hbs_include}} 63 | @entity: @color5; // exports of module.exports,
    , . of .className 64 | @entity-function: @color5; 65 | @error-punc: darken(@error, 20%); 66 | @function: @entity-function; 67 | @function-param: @color1; // (one, two, three) of function (one, two, three) 68 | @meta: @code-font-color; // none of border: none; 69 | @numeric: @color3; 70 | @punctuation: darken(@code-font-color, 30%); 71 | @regex: @color1; 72 | @string: @color1; // 'value' of var='value', "name.png" or src="name.png" 73 | @storage: @white; // var of var a = b; 74 | @support: @color3; // module of module.exports, color of color: rgb(0,0,0) 75 | @variable: @color1; // foo of function(foo), hbs_include of {{> hbs_include}}, http://dom.com/ of url(http://dom.com/) 76 | @storage-function: @color8; 77 | 78 | // obj.param.function() - @obj-name . @obj-method . @function 79 | @obj-name: @support; 80 | @obj-method: @entity; 81 | @obj-function: @function; 82 | 83 | // CONSTANT 84 | @constant-name-attribute-tag: @tag; 85 | 86 | // ENTITY 87 | @entity-name-tag: @color1; 88 | @entity-name-type: @color1; 89 | @entity-name-function: @function; 90 | @entity-other-attribute-name: @color2; 91 | @entity-other-id: @id; 92 | 93 | // META 94 | @meta-control-flow: @color2; 95 | 96 | // STRING 97 | @string-quoted-double: @quotes; 98 | @string-quoted-single: @quotes; 99 | @string-unquoted: @quotes; 100 | @string-other: @string; 101 | 102 | @punctuation-definition-array: @string; 103 | @punctuation-definition-string: @string; 104 | @punctuation-definition-variable: @variable; 105 | 106 | // STORAGE 107 | @storage-var: @storage; 108 | @storage-class: @storage; 109 | @storage-function: @storage; 110 | 111 | // KEYWORD 112 | @keyword: @color4; 113 | @keyword-control: @color2; 114 | @keyword-other-important: @red; 115 | @keyword-operator: @keyword; 116 | @keyword-operator-assignment: @punctuation; 117 | @keyword-operator-new: @color8; 118 | @variable-import: @color2; 119 | 120 | // SUPPORT 121 | @support-type-property-name: @code-font-color; 122 | @support-function-decl: @color1; 123 | 124 | // VARIABLE 125 | @variable: @color8; 126 | @variable-other: @color4; 127 | @variable-other-module: @color3; 128 | @variable-other-module-alias: @color1; 129 | @variable-other-object: @color2; 130 | @variable-other-property: @color4; 131 | 132 | // PUNCTUATION 133 | @punctuation: @grey; 134 | @punctuation-separator: @grey; 135 | 136 | 137 | // HTML 138 | @tag: @color1; 139 | @tag-entity: @color1; 140 | @element-attr: @color2; 141 | @class: @color2; 142 | @id: @color2; 143 | @block: @color1; 144 | @inline: lighten(@color1, 25%); 145 | -------------------------------------------------------------------------------- /styles/colors/primary.less: -------------------------------------------------------------------------------- 1 | // BASE COLORS 2 | @black: #0e1112; 3 | @black-dark: #090b0d; 4 | @white: #d4d7d6; 5 | @grey: #4d5a5e; 6 | @grey-dark: #1f2326; 7 | @grey-light: #6d8086; 8 | 9 | // STATUS 10 | @good: @green; 11 | @bad: @red; 12 | @warn: @yellow; 13 | @hidden: @grey-dark; 14 | @ignore: @grey; 15 | 16 | // PRIMARIES 17 | @blue: #519aba; 18 | @blue-highlight: #1d5b91; 19 | @blue-text: #ffffff; 20 | 21 | @green: #8dc149; 22 | @green-highlight: #436b24; 23 | @green-text: #ffffff; 24 | @blue-secondary: @purple; 25 | 26 | @orange: #e37933; 27 | @orange-highlight: #b55421; 28 | @orange-text: #ffffff; 29 | 30 | @pink: #f55385; 31 | @pink-highlight: #63213f; 32 | @pink-text: #ffffff; 33 | 34 | @purple: #a074c4; 35 | @purple-highlight: #4f397c; 36 | @purple-text: #ffffff; 37 | 38 | @red: #cc3e44; 39 | @red-highlight: #7c1c20; 40 | @red-text: #ffffff; 41 | 42 | @steel: #7494a3; 43 | @steel-highlight: #293c44; 44 | @steel-text: #ffffff; 45 | 46 | @yellow: #cbcb41; 47 | @yellow-highlight: #a2852f; 48 | @yellow-text: #13181b; 49 | -------------------------------------------------------------------------------- /styles/editor.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | // MAIN CODE EDITOR STYLES 4 | .atom-text-editor, atom-text-editor { 5 | 6 | // EDITOR BACKGROUND & FONT COLORS 7 | background-color: @code-background; 8 | color: @code-font-color; 9 | 10 | // border-top: solid 6px @selected-line; 11 | 12 | // LINE THAT DESIGNATES WHERE TEXT WILL WRAP 13 | .wrap-guide { 14 | background: @guides; 15 | } 16 | 17 | // LINE BETWEEN BRACKET INDENTATIONS 18 | .indent-guide { 19 | color: @guides; 20 | } 21 | 22 | .invisible-character { 23 | color: @invisible; 24 | } 25 | 26 | // GUTTER / LINE NUMBERS 27 | .gutter { 28 | 29 | background-color: @gutter-background; 30 | color: @gutter-text; 31 | // border-right: 10px solid @code-background; 32 | 33 | .line-number { 34 | 35 | // GUTTER BACKGROUND 36 | background: @gutter-background; 37 | color: @gutter-text; 38 | padding-left: 10px; 39 | 40 | // SELECTED BLOCK 41 | &.cursor-line { 42 | background-color: @gutter-background-highlight; 43 | color: @gutter-text-highlight; 44 | font-weight: 100; 45 | } 46 | 47 | // CURRENT ACTIVE LINE 48 | &.cursor-line-no-selection { 49 | background-color: @gutter-background-highlight !important; 50 | color: @gutter-text-highlight; 51 | // font-weight: bold; 52 | } 53 | 54 | } 55 | 56 | // HOVER STATE FOR LINE NUMBERS 57 | .line-number:hover { 58 | background-color: @gutter-background !important; 59 | color: @gutter-text-highlight; 60 | } 61 | } 62 | 63 | // LINE NUMBER FOR SECTIONS THAT HAVE BEEN COLLAPSED 64 | .gutter .line-number.folded, 65 | .gutter .line-number:after, 66 | .fold-marker:after { 67 | color: #FFF; 68 | background: @gutter-text; 69 | } 70 | 71 | // INVISIBLE CHARACTES 72 | .invisible { 73 | color: @invisible; 74 | } 75 | 76 | // CURSOR COLOR 77 | .cursor { 78 | border-color: @cursor-color !important; 79 | border-left: solid @cursor-width; 80 | } 81 | 82 | // BACKGROUND OF SELECTED TEXT 83 | .selection .region { 84 | background-color: @selected; 85 | } 86 | 87 | 88 | // ADD LEFT PADDING TO CODE VIEW 89 | .scroll-view { 90 | padding-left: 10px; 91 | } 92 | 93 | 94 | // SELECTED LINE STYLE 95 | .line.cursor-line { 96 | background: @selected-line !important; 97 | } 98 | 99 | 100 | } 101 | -------------------------------------------------------------------------------- /styles/languages/css.less: -------------------------------------------------------------------------------- 1 | .syntax--source.syntax--css { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /styles/languages/gfm.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--source.syntax--gfm { 4 | color: @code-font-color; 5 | 6 | .syntax--heading-1 { 7 | color: @markup-h1; 8 | } 9 | .syntax--heading-2 { 10 | color: @markup-h2; 11 | } 12 | .syntax--heading-3 { 13 | color: @markup-h3; 14 | } 15 | .syntax--heading-4 { 16 | color: @markup-h4; 17 | } 18 | .syntax--heading-5 { 19 | color: @markup-h5; 20 | } 21 | .syntax--heading-6 { 22 | color: @markup-h6; 23 | } 24 | 25 | .syntax--entity { 26 | color: @entity-function; 27 | } 28 | .syntax--link { 29 | color: @green; 30 | .syntax--entity { 31 | color: @purple; 32 | } 33 | } 34 | 35 | .syntax--italic { 36 | color: @yellow; 37 | } 38 | 39 | .syntax--bold { 40 | color: @yellow; 41 | font-weight: bold; 42 | } 43 | 44 | .syntax--variable.syntax--syntax.syntax--list { 45 | color: @yellow-highlight; 46 | } 47 | 48 | .syntax--hr { 49 | color: @meta-control-flow; 50 | } 51 | 52 | .syntax--comment.syntax--quote { 53 | color: @string-quoted-single; 54 | } 55 | 56 | .syntax--support.syntax--quote { 57 | color: @code-background; 58 | background-color: @code-font-color; 59 | } 60 | 61 | .syntax--raw { 62 | color: @red; 63 | border: 1px solid mix(@code-background, @string-quoted-double, 90%); 64 | background-color: mix(@code-background, @string-quoted-double, 90%); 65 | border-radius: 3px; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /styles/languages/go.less: -------------------------------------------------------------------------------- 1 | .syntax--go { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /styles/languages/html.less: -------------------------------------------------------------------------------- 1 | .syntax--html { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /styles/languages/ink.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--source.syntax--ink { 4 | color: @code-font-color; 5 | } 6 | -------------------------------------------------------------------------------- /styles/languages/jade.less: -------------------------------------------------------------------------------- 1 | .syntax--jade, .syntax--pug { 2 | 3 | color: @code-font-color; 4 | 5 | .syntax--comment { 6 | color: @comment; 7 | } 8 | 9 | .syntax--name { 10 | color: @tag; 11 | } 12 | 13 | .syntax--entity { 14 | color: @tag-entity; 15 | } 16 | 17 | .syntax--string { 18 | color: @string; 19 | } 20 | 21 | .syntax--quoted { 22 | color: @quotes; 23 | } 24 | 25 | .syntax--attribute-name, .syntax--id { 26 | color: @red !important; 27 | } 28 | .syntax--class { 29 | color: @class; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /styles/languages/javascript.less: -------------------------------------------------------------------------------- 1 | .syntax--source.syntax--js, 2 | .syntax--source.syntax--ts, 3 | .syntax--source.syntax--jsx { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /styles/languages/json.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--source.syntax--json { 4 | .syntax--meta.syntax--structure.syntax--dictionary.syntax--json { 5 | & > .syntax--string.syntax--quoted.syntax--json { 6 | & > .syntax--punctuation.syntax--string { 7 | color: @tag; 8 | } 9 | color: @tag; 10 | } 11 | } 12 | 13 | .syntax--meta.syntax--structure.syntax--dictionary.syntax--json, 14 | .syntax--meta.syntax--structure.syntax--array.syntax--json { 15 | & > .syntax--value.syntax--json > .syntax--string.syntax--quoted.syntax--json, 16 | & > .syntax--value.syntax--json > .syntax--string.syntax--quoted.syntax--json > .syntax--punctuation { 17 | color: @code-font-color; 18 | } 19 | 20 | & > .syntax--constant.syntax--language.syntax--json { 21 | color: @constant; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /styles/languages/markdown.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--source.syntax--md { 4 | color: @code-font-color; 5 | 6 | .syntax--heading-1 { 7 | color: @markup-h1; 8 | } 9 | .syntax--heading-2 { 10 | color: @markup-h2; 11 | } 12 | .syntax--heading-3 { 13 | color: @markup-h3; 14 | } 15 | .syntax--heading-4 { 16 | color: @markup-h4; 17 | } 18 | .syntax--heading-5 { 19 | color: @markup-h5; 20 | } 21 | .syntax--heading-6 { 22 | color: @markup-h6; 23 | } 24 | 25 | .syntax--entity { 26 | color: @entity-function; 27 | } 28 | .syntax--link { 29 | color: @green; 30 | .syntax--entity { 31 | color: @purple; 32 | } 33 | } 34 | 35 | .syntax--italic { 36 | color: @yellow; 37 | } 38 | 39 | .syntax--bold { 40 | color: @yellow; 41 | font-weight: bold; 42 | } 43 | 44 | .syntax--variable.syntax--syntax.syntax--list { 45 | color: @yellow-highlight; 46 | } 47 | 48 | .syntax--hr { 49 | color: @meta-control-flow; 50 | } 51 | 52 | .syntax--comment.syntax--quote { 53 | color: @string-quoted-single; 54 | } 55 | 56 | .syntax--support.syntax--quote { 57 | color: @code-background; 58 | background-color: @code-font-color; 59 | } 60 | 61 | .syntax--raw { 62 | color: @red; 63 | border: 1px solid mix(@code-background, @string-quoted-double, 90%); 64 | background-color: mix(@code-background, @string-quoted-double, 90%); 65 | border-radius: 3px; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /styles/languages/mustache.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--mustache { 4 | 5 | .syntax--meta.syntax--tag.syntax--template { 6 | color: @tag; 7 | 8 | .syntax--entity.syntax--name.syntax--tag { 9 | color: lighten(@tag, 20%); 10 | } 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /styles/languages/perl.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--source.syntax--perl { 4 | 5 | .syntax--pod { 6 | &.syntax--displayed-text { 7 | color: @constant; 8 | } 9 | 10 | &.syntax--constant.syntax--character.syntax--entity { 11 | &, & .syntax--entity.syntax--name { 12 | color: @constant; 13 | } 14 | } 15 | 16 | &.syntax--inline.syntax--tag { 17 | .syntax--punctuation.syntax--begin, 18 | .syntax--punctuation.syntax--end { 19 | color: @punctuation; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /styles/languages/python.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .syntax--source.syntax--python { 4 | 5 | .syntax--class{ 6 | color: @support; 7 | } 8 | 9 | .syntax--support.syntax--function.syntax--magic, 10 | .syntax--inherited-class{ 11 | color: lighten(@variable, 10%); 12 | .syntax--support.syntax--function.syntax--builtin.syntax--python { 13 | // Necessary to highlight the object base class correctly 14 | color: lighten(@variable, 10%); 15 | } 16 | } 17 | 18 | .syntax--storage, 19 | .syntax--keyword { 20 | color: @storage; 21 | } 22 | 23 | .syntax--string{ 24 | color: @string; 25 | &.syntax--block{ 26 | color: darken(@string, 20%); 27 | .syntax--keyword { 28 | color: darken(@string, 20%); 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /styles/plugins.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | // PLUGIN SPECIFIC STYLES 4 | .bracket-matcher .region { 5 | border-bottom: 1px solid @string; 6 | margin-top: 2px; 7 | } 8 | -------------------------------------------------------------------------------- /styles/plugins/git-time-machine.less: -------------------------------------------------------------------------------- 1 | atom-text-editor, 2 | atom-text-editor.editor { 3 | .line.split-diff-added { 4 | background: @added !important; 5 | color: rgba(0,0,0,0.5) !important; 6 | .syntax--text span, .syntax--source span { 7 | color: rgba(0,0,0,0.5) !important; 8 | } 9 | .indent-guide { 10 | opacity: 0; 11 | } 12 | } 13 | .line.split-diff-removed { 14 | background: @removed !important; 15 | color: rgba(255,255,255,0.8) !important; 16 | .syntax--text span, .syntax--source span { 17 | color: rgba(255,255,255,0.8) !important; 18 | } 19 | .indent-guide { 20 | opacity: 0; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /styles/syntax-variables.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | // General colors 4 | @syntax-text-color: @code-font-color; 5 | @syntax-cursor-color: @cursor-color; 6 | @syntax-selection-color: @selected; 7 | @syntax-selection-flash-color: @search-active-bg; 8 | @syntax-background-color: @code-background; 9 | 10 | // Guide colors 11 | @syntax-wrap-guide-color: @guides; 12 | @syntax-indent-guide-color: @guides; 13 | @syntax-invisible-character-color: @invisible; 14 | 15 | // For find and replace markers 16 | @syntax-result-marker-color: @color1; 17 | @syntax-result-marker-color-selected: rgba(0,0,0,0); 18 | 19 | // Gutter colors 20 | @syntax-gutter-text-color: @gutter-text; 21 | @syntax-gutter-text-color-selected: @gutter-text-highlight; 22 | @syntax-gutter-background-color: @gutter-background; 23 | @syntax-gutter-background-color-selected: @gutter-background-highlight; 24 | 25 | // For git diff info. i.e. in the gutter 26 | @syntax-color-renamed: @color1; 27 | @syntax-color-added: @green; 28 | @syntax-color-modified: @yellow; 29 | @syntax-color-removed: @red; 30 | -------------------------------------------------------------------------------- /styles/syntax.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | 4 | atom-text-editor[mini], atom-text-editor.mini { 5 | .scroll-view { 6 | padding-left: 1px; 7 | } 8 | } 9 | 10 | // MISC 11 | .syntax--source { 12 | color: @color1; 13 | } 14 | 15 | .syntax--text { 16 | color: @code-font-color; 17 | } 18 | 19 | &.syntax--complete_tag { 20 | color: @variable; 21 | } 22 | 23 | 24 | // COMENTS 25 | .syntax--comment { 26 | color: @comment; 27 | background: @comment-bg; 28 | } 29 | 30 | 31 | // CONSTANTS 32 | .syntax--constant { 33 | 34 | // true, false, null, undefined 35 | color: @constant; 36 | 37 | // \ of ("what\'s") 38 | &.syntax--character.syntax--escape { 39 | color: @constant; 40 | } 41 | 42 | &.syntax--name.syntax--attribute.syntax--tag { 43 | color: @constant-name-attribute-tag; 44 | } 45 | 46 | // all the numbers! 47 | &.syntax--numeric { 48 | color: @numeric; 49 | } 50 | 51 | // can't tell what this does :/ 52 | &.syntax--other.syntax--color { 53 | color: @constant; 54 | } 55 | 56 | // can't tell what this does :/ 57 | &.syntax--other.syntax--symbol { 58 | color: @constant; 59 | } 60 | } 61 | 62 | 63 | // ENTITY | exports of module.exports,
    , . of .className 64 | .syntax--entity { 65 | 66 | color: @entity; 67 | 68 | 69 | &.syntax--name { 70 | 71 | &.syntax--class, &.syntax--type.syntax--class { 72 | color: @support; 73 | } 74 | &.syntax--function { 75 | color: @entity-name-function; 76 | } 77 | &.syntax--section { 78 | color: @entity; 79 | } 80 | &.syntax--tag { 81 | color: @entity-name-tag; 82 | text-decoration: none; 83 | &.syntax--block, &.syntax--inline, &.syntax--name { 84 | color: @entity-name-tag; 85 | } 86 | &.syntax--structure { 87 | color: @tag; 88 | } 89 | &.syntax--block { 90 | color: @tag; 91 | } 92 | } 93 | &.syntax--type { 94 | color: @entity-name-type; 95 | text-decoration: none; 96 | &.syntax--tag { 97 | color: @class; 98 | } 99 | } 100 | } 101 | 102 | 103 | &.syntax--other { 104 | &.syntax--attribute-name, { 105 | color: @entity-other-attribute-name; 106 | &.syntax--id { 107 | color: @entity-other-id; 108 | } 109 | } 110 | &.syntax--inherited-class { 111 | color: @entity; 112 | } 113 | } 114 | } 115 | 116 | 117 | // INVALID TEXT 118 | .syntax--invalid.syntax--illegal, .syntax--invalid.syntax--deprecated { 119 | background: none; 120 | color: @error; 121 | 122 | &.syntax--whitespace { 123 | background-color: @error; 124 | } 125 | 126 | .syntax--punctuation { 127 | color: @error-punc; 128 | } 129 | } 130 | 131 | 132 | // KEYWORDS 133 | .syntax--keyword { 134 | 135 | color: @keyword; 136 | 137 | &.syntax--control { 138 | color: @keyword-control; 139 | } 140 | 141 | &.syntax--operator { 142 | color: @keyword-operator; 143 | &.syntax--assignment { 144 | color: @keyword-operator-assignment; 145 | } 146 | &.syntax--new { 147 | color: @keyword-operator-new; 148 | } 149 | } 150 | 151 | &.syntax--other { 152 | &.syntax--important { 153 | color: @keyword-other-important; 154 | } 155 | &.syntax--special-method { 156 | color: @keyword; 157 | } 158 | &.syntax--unit { 159 | color: @keyword; 160 | } 161 | } 162 | 163 | } 164 | 165 | 166 | // MARKUP 167 | .syntax--markup { 168 | &.syntax--bold { 169 | color: @markup; 170 | font-weight: bold; 171 | } 172 | 173 | &.syntax--changed { 174 | color: @markup; 175 | } 176 | 177 | &.syntax--deleted { 178 | color: @markup; 179 | } 180 | 181 | &.syntax--heading .syntax--punctuation.syntax--definition.syntax--heading { 182 | color: @markup; 183 | } 184 | 185 | &.syntax--inserted { 186 | color: @markup; 187 | } 188 | 189 | &.syntax--italic { 190 | color: @markup; 191 | font-style: italic; 192 | } 193 | 194 | &.syntax--list { 195 | color: @markup; 196 | } 197 | 198 | &.syntax--quote { 199 | color: @quotes; 200 | } 201 | 202 | &.syntax--raw.syntax--inline { 203 | color: @markup; 204 | } 205 | } 206 | 207 | 208 | // META 209 | .syntax--meta { 210 | 211 | &.syntax--link { 212 | color: @meta; 213 | } 214 | 215 | &.syntax--require { 216 | color: @meta; 217 | } 218 | 219 | 220 | &.syntax--brace { 221 | &.syntax--curly { color: @brackets; } 222 | &.syntax--round { color: @code-font-color;} 223 | } 224 | 225 | &.syntax--control { 226 | &.syntax--flow { 227 | color: @meta-control-flow; 228 | } 229 | } 230 | 231 | &.syntax--comma { 232 | color: @punctuation; 233 | } 234 | 235 | &.syntax--selector { 236 | color: @punctuation; 237 | } 238 | 239 | &.syntax--separator { 240 | color: @punctuation; 241 | } 242 | 243 | &.syntax--tag { 244 | color: @tag; 245 | } 246 | } 247 | 248 | // NONE 249 | .syntax--none { 250 | color: @code-font-color; 251 | } 252 | 253 | 254 | // PUNCTUATION 255 | .syntax--punctuation { 256 | color: @punctuation; 257 | 258 | &.syntax--terminator { 259 | color: @punctuation; 260 | } 261 | 262 | &.syntax--separator { 263 | color: @punctuation-separator; 264 | } 265 | 266 | &.syntax--definition { 267 | 268 | color: @punctuation; 269 | 270 | &.syntax--array { 271 | color: @punctuation-definition-array; 272 | } 273 | 274 | &.syntax--bold { 275 | color: @code-font-color; 276 | font-weight: bold; 277 | } 278 | 279 | &.syntax--comment { 280 | color: @comment-punc; 281 | } 282 | 283 | &.syntax--heading, 284 | &.syntax--identity, 285 | &.syntax--italic { 286 | color: @code-font-color; 287 | } 288 | 289 | &.syntax--italic { 290 | font-style: italic; 291 | } 292 | 293 | &.syntax--string { 294 | color: @punctuation-definition-string; 295 | &.syntax--begin, &.syntax--end { 296 | color: @quotes; 297 | } 298 | } 299 | 300 | &.syntax--variable { 301 | color: @punctuation-definition-variable; 302 | } 303 | 304 | &.syntax--parameters { 305 | color: @code-font-color; 306 | } 307 | 308 | &.syntax--tag { 309 | color: @tag; 310 | } 311 | } 312 | 313 | &.syntax--section.syntax--embedded { 314 | color: @code-font-color; 315 | } 316 | 317 | } 318 | 319 | 320 | 321 | // STRINGS 322 | .syntax--string { 323 | color: @string; 324 | 325 | .syntax--constant { 326 | color: @constant; 327 | } 328 | 329 | &.syntax--interpolated { 330 | color: @variable; 331 | } 332 | 333 | &.syntax--regexp { 334 | 335 | // ?:input, select, textarea, button of /^(?:input|select|textarea|button)$/i, 336 | color: @regex; 337 | 338 | .syntax--constant.syntax--character.syntax--escape, 339 | .syntax--source.syntax--ruby.syntax--embedded, 340 | .syntax--string.syntax--regexp.syntax--arbitrary-repitition { 341 | color: @regex; 342 | } 343 | 344 | &.syntax--group { 345 | color: @regex; 346 | } 347 | 348 | &.syntax--character-class { 349 | color: @regex; 350 | } 351 | 352 | .syntax--source.syntax--ruby.syntax--embedded { 353 | color: @regex; 354 | } 355 | 356 | } 357 | 358 | &.syntax--quoted { 359 | &.syntax--double { color: @string-quoted-double; } 360 | &.syntax--single { color: @string-quoted-single; } 361 | } 362 | 363 | &.syntax--unquoted { 364 | color: @string-unquoted; 365 | &.syntax--heredoc, &.syntax--here-doc, 366 | &.syntax--nowdoc, &.syntax--now-doc, 367 | &.syntax--block, &.syntax--program-block { 368 | color: @string; 369 | } 370 | } 371 | 372 | &.syntax--other { 373 | color: @string-other; 374 | } 375 | 376 | .syntax--variable { 377 | color: @variable; 378 | } 379 | 380 | // can't tell what this does :/ 381 | &.syntax--other.syntax--link { 382 | color: @string; 383 | } 384 | } 385 | 386 | 387 | // STORAGE 388 | .syntax--storage { 389 | color: @storage; 390 | 391 | &.syntax--modifier { 392 | color: @storage; 393 | } 394 | 395 | &.syntax--type { 396 | &.syntax--class { 397 | color: @storage-class; 398 | } 399 | &.syntax--function { 400 | color: @storage-function; 401 | } 402 | &.syntax--var { 403 | color: @storage-var; 404 | } 405 | } 406 | 407 | } 408 | 409 | 410 | // SUPPORT 411 | .syntax--support { 412 | 413 | color: @support; 414 | 415 | &.syntax--class { 416 | color: @support; 417 | } 418 | 419 | &.syntax--function { 420 | color: @function; 421 | &.syntax--decl { 422 | color: @support-function-decl; 423 | } 424 | } 425 | 426 | &.syntax--constant { 427 | color: @constant; 428 | } 429 | &.syntax--type { 430 | &.syntax--property-name { 431 | color: @support-type-property-name; 432 | } 433 | } 434 | } 435 | 436 | // VARIABLES 437 | .syntax--variable { 438 | color: @variable; 439 | 440 | &.syntax--control.syntax--import.syntax--include { 441 | color: @variable-import; 442 | } 443 | 444 | &.syntax--other { 445 | color: @variable-other; 446 | 447 | &.syntax--property { 448 | color: @variable-other-property; 449 | } 450 | &.syntax--module { 451 | color: @variable-other-module; 452 | } 453 | &.syntax--module-alias { 454 | color: @variable-other-module-alias; 455 | } 456 | &.syntax--object { 457 | color: @variable-other-object; 458 | } 459 | } 460 | 461 | &.syntax--parameter { 462 | &.syntax--function { 463 | color: @obj-method; 464 | } 465 | } 466 | } 467 | -------------------------------------------------------------------------------- /styles/themes/blue.less: -------------------------------------------------------------------------------- 1 | @color1: @blue; 2 | @color1-highlight: @blue-highlight; 3 | @color1-text: @blue-text; 4 | 5 | @color2: @green; 6 | @color2-highlight: @green-highlight; 7 | @color2-text: @green-text; 8 | 9 | @color3: @purple; 10 | @color3-highlight: @purple-highlight; 11 | @color3-text: @purple-text; 12 | 13 | @color4: @red; 14 | @color4-highlight: @red-highlight; 15 | @color4-text: @red-text; 16 | 17 | @color5: @yellow; 18 | @color5-highlight: @yellow-highlight; 19 | @color5-text: @yellow-text; 20 | 21 | @color6: @orange; 22 | @color6-highlight: @orange-highlight; 23 | @color6-text: @orange-text; 24 | 25 | @color7: @pink; 26 | @color7-highlight: @pink-highlight; 27 | @color7-text: @pink-text; 28 | 29 | @color8: @steel; 30 | @color8-highlight: @steel-highlight; 31 | @color8-text: @steel-text; 32 | -------------------------------------------------------------------------------- /styles/themes/default.less: -------------------------------------------------------------------------------- 1 | @import "blue"; 2 | -------------------------------------------------------------------------------- /styles/themes/green.less: -------------------------------------------------------------------------------- 1 | @color1: @green; 2 | @color1-highlight: @green-highlight; 3 | @color1-text: @green-text; 4 | 5 | @color2: @purple; 6 | @color2-highlight: @purple-highlight; 7 | @color2-text: @purple-text; 8 | 9 | @color3: @blue; 10 | @color3-highlight: @blue-highlight; 11 | @color3-text: @blue-text; 12 | 13 | @color4: @pink; 14 | @color4-highlight: @pink-highlight; 15 | @color4-text: @pink-text; 16 | 17 | @color5: @yellow; 18 | @color5-highlight: @yellow-highlight; 19 | @color5-text: @yellow-text; 20 | 21 | @color6: @orange; 22 | @color6-highlight: @orange-highlight; 23 | @color6-text: @orange-text; 24 | 25 | @color7: @steel; 26 | @color7-highlight: @steel-highlight; 27 | @color7-text: @steel-text; 28 | 29 | @color8: @red; 30 | @color8-highlight: @red-highlight; 31 | @color8-text: @red-text; 32 | -------------------------------------------------------------------------------- /styles/themes/orange.less: -------------------------------------------------------------------------------- 1 | @color1: @orange; 2 | @color1-highlight: @orange-highlight; 3 | @color1-text: @orange-text; 4 | 5 | @color2: @purple; 6 | @color2-highlight: @purple-highlight; 7 | @color2-text: @purple-text; 8 | 9 | @color3: @blue; 10 | @color3-highlight: @blue-highlight; 11 | @color3-text: @blue-text; 12 | 13 | @color4: @pink; 14 | @color4-highlight: @pink-highlight; 15 | @color4-text: @pink-text; 16 | 17 | @color5: @yellow; 18 | @color5-highlight: @yellow-highlight; 19 | @color5-text: @yellow-text; 20 | 21 | @color6: @red; 22 | @color6-highlight: @red-highlight; 23 | @color6-text: @red-text; 24 | 25 | @color7: @steel; 26 | @color7-highlight: @steel-highlight; 27 | @color7-text: @steel-text; 28 | 29 | @color8: @green; 30 | @color8-highlight: @green-highlight; 31 | @color8-text: @green-text; 32 | -------------------------------------------------------------------------------- /styles/themes/pink.less: -------------------------------------------------------------------------------- 1 | @color1: @pink; 2 | @color1-highlight: @pink-highlight; 3 | @color1-text: @pink-text; 4 | 5 | @color2: @purple; 6 | @color2-highlight: @purple-highlight; 7 | @color2-text: @purple-text; 8 | 9 | @color3: @green; 10 | @color3-highlight: @green-highlight; 11 | @color3-text: @green-text; 12 | 13 | @color4: @red; 14 | @color4-highlight: @red-highlight; 15 | @color4-text: @red-text; 16 | 17 | @color5: @blue; 18 | @color5-highlight: @blue-highlight; 19 | @color5-text: @blue-text; 20 | 21 | @color6: @orange; 22 | @color6-highlight: @orange-highlight; 23 | @color6-text: @orange-text; 24 | 25 | @color7: @yellow; 26 | @color7-highlight: @yellow-highlight; 27 | @color7-text: @yellow-text; 28 | 29 | @color8: @steel; 30 | @color8-highlight: @steel-highlight; 31 | @color8-text: @steel-text; 32 | -------------------------------------------------------------------------------- /styles/themes/purple.less: -------------------------------------------------------------------------------- 1 | @color1: @purple; 2 | @color1-highlight: @purple-highlight; 3 | @color1-text: @purple-text; 4 | 5 | @color2: @green; 6 | @color2-highlight: @green-highlight; 7 | @color2-text: @green-text; 8 | 9 | @color3: @red; 10 | @color3-highlight: @red-highlight; 11 | @color3-text: @red-text; 12 | 13 | @color4: @yellow; 14 | @color4-highlight: @yellow-highlight; 15 | @color4-text: @yellow-text; 16 | 17 | @color5: @pink; 18 | @color5-highlight: @pink-highlight; 19 | @color5-text: @pink-text; 20 | 21 | @color6: @orange; 22 | @color6-highlight: @orange-highlight; 23 | @color6-text: @orange-text; 24 | 25 | @color7: @blue; 26 | @color7-highlight: @blue-highlight; 27 | @color7-text: @blue-text; 28 | 29 | @color8: @steel; 30 | @color8-highlight: @steel-highlight; 31 | @color8-text: @steel-text; 32 | -------------------------------------------------------------------------------- /styles/themes/red.less: -------------------------------------------------------------------------------- 1 | @color1: @red; 2 | @color1-highlight: @red-highlight; 3 | @color1-text: @red-text; 4 | 5 | @color2: @purple; 6 | @color2-highlight: @purple-highlight; 7 | @color2-text: @purple-text; 8 | 9 | @color3: @blue; 10 | @color3-highlight: @blue-highlight; 11 | @color3-text: @blue-text; 12 | 13 | @color4: @green; 14 | @color4-highlight: @green-highlight; 15 | @color4-text: @green-text; 16 | 17 | @color5: @yellow; 18 | @color5-highlight: @yellow-highlight; 19 | @color5-text: @yellow-text; 20 | 21 | @color6: @steel; 22 | @color6-highlight: @steel-highlight; 23 | @color6-text: @steel-text; 24 | 25 | @color7: @pink; 26 | @color7-highlight: @pink-highlight; 27 | @color7-text: @pink-text; 28 | 29 | @color8: @orange; 30 | @color8-highlight: @orange-highlight; 31 | @color8-text: @orange-text; 32 | -------------------------------------------------------------------------------- /styles/themes/steel.less: -------------------------------------------------------------------------------- 1 | @color1: @steel; 2 | @color1-highlight: @steel-highlight; 3 | @color1-text: @steel-text; 4 | 5 | @color2: @purple; 6 | @color2-highlight: @purple-highlight; 7 | @color2-text: @purple-text; 8 | 9 | @color3: @blue; 10 | @color3-highlight: @blue-highlight; 11 | @color3-text: @blue-text; 12 | 13 | @color4: @green; 14 | @color4-highlight: @green-highlight; 15 | @color4-text: @green-text; 16 | 17 | @color5: @yellow; 18 | @color5-highlight: @yellow-highlight; 19 | @color5-text: @yellow-text; 20 | 21 | @color6: @orange; 22 | @color6-highlight: @orange-highlight; 23 | @color6-text: @orange-text; 24 | 25 | @color7: @pink; 26 | @color7-highlight: @pink-highlight; 27 | @color7-text: @pink-text; 28 | 29 | @color8: @red; 30 | @color8-highlight: @red-highlight; 31 | @color8-text: @red-text; 32 | -------------------------------------------------------------------------------- /styles/themes/yellow.less: -------------------------------------------------------------------------------- 1 | // ENTITY, ENTITY-FUNCTION, FUNCTION PARAM, REGEX, STRING 2 | // HTML : TAG, TAG ENTITY, BLOCK 3 | @color1: @yellow; 4 | @color1-highlight: @yellow-highlight; 5 | @color1-text: @yellow-text; 6 | 7 | // SUPPORT 8 | // HTML : ELEMENT-ATTR, CLASS, ID 9 | @color2: @red; 10 | @color2-highlight: @red-highlight; 11 | @color2-text: @red-text; 12 | 13 | // CONSTANT, NUMERIC 14 | @color3: @purple; 15 | @color3-highlight: @purple-highlight; 16 | @color3-text: @purple-text; 17 | 18 | // KEYWORD 19 | @color4: @purple; 20 | @color4-highlight: @purple-highlight; 21 | @color4-text: @purple-text; 22 | 23 | // STORAGE, VARIABLE 24 | @color5: @blue; 25 | @color5-highlight: @blue-highlight; 26 | @color5-text: @blue-text; 27 | 28 | // N/A 29 | @color6: @steel; 30 | @color6-highlight: @steel-highlight; 31 | @color6-text: @steel-text; 32 | 33 | // N/A 34 | @color7: @orange; 35 | @color7-highlight: @orange-highlight; 36 | @color7-text: @orange-text; 37 | 38 | // N/A 39 | @color8: @green; 40 | @color8-highlight: @green-highlight; 41 | @color8-text: @green-text; 42 | -------------------------------------------------------------------------------- /styles/user-theme.less: -------------------------------------------------------------------------------- 1 | @import "themes/blue"; --------------------------------------------------------------------------------