feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- Base: wintercms/winter branch 1.2 (full framework) - Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS - Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication - Partials: hero (offline-first), features, modes (offline/nube toggle), screenshots, pricing (3 planes), comparison, FAQ, CTA - Plugin VivesPOS.Site with ContactForm - Dockerfile: PHP 8.2 Apache, port 80, healthcheck - Added winter/wn-pages, blog, sitemap, seo plugins - Active theme set to vivespos
This commit is contained in:
233
modules/backend/formwidgets/CodeEditor.php
Normal file
233
modules/backend/formwidgets/CodeEditor.php
Normal file
@@ -0,0 +1,233 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Backend\Models\Preference as BackendPreference;
|
||||
|
||||
/**
|
||||
* Code Editor
|
||||
* Renders a code editor field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class CodeEditor extends FormWidgetBase
|
||||
{
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Code language to display (php, twig)
|
||||
*/
|
||||
public $language = 'php';
|
||||
|
||||
/**
|
||||
* @var boolean Determines whether the gutter is visible.
|
||||
*/
|
||||
public $showGutter = true;
|
||||
|
||||
/**
|
||||
* @var boolean Indicates whether the the word wrapping is enabled.
|
||||
*/
|
||||
public $wordWrap = true;
|
||||
|
||||
/**
|
||||
* @var bool Enables code folding.
|
||||
*/
|
||||
public $codeFolding = true;
|
||||
|
||||
/**
|
||||
* @var boolean Automatically close tags and special characters,
|
||||
* like quotation marks, parenthesis, or brackets.
|
||||
*/
|
||||
public $autoClosing = true;
|
||||
|
||||
/**
|
||||
* @var boolean Indicates whether the the editor uses spaces for indentation.
|
||||
*/
|
||||
public $useSoftTabs = true;
|
||||
|
||||
/**
|
||||
* @var boolean Sets the size of the indentation.
|
||||
*/
|
||||
public $tabSize = 4;
|
||||
|
||||
/**
|
||||
* @var integer Sets the font size.
|
||||
*/
|
||||
public $fontSize = 12;
|
||||
|
||||
/**
|
||||
* @var integer Sets the editor margin size.
|
||||
*/
|
||||
public $margin = 0;
|
||||
|
||||
/**
|
||||
* @var float Number of screen heights to allow scrolling past the end of the document
|
||||
*/
|
||||
public $scrollPastEnd = 0;
|
||||
|
||||
/**
|
||||
* @var string Editor theme to use.
|
||||
*/
|
||||
public $theme = 'twilight';
|
||||
|
||||
/**
|
||||
* @var bool Show invisible characters.
|
||||
*/
|
||||
public $showInvisibles = false;
|
||||
|
||||
/**
|
||||
* @var bool Highlight the active line.
|
||||
*/
|
||||
public $highlightActiveLine = true;
|
||||
|
||||
/**
|
||||
* @var boolean If true, the editor is set to read-only mode
|
||||
*/
|
||||
public $readOnly = false;
|
||||
|
||||
/**
|
||||
* @var boolean If true, the editor show Indent Guides
|
||||
*/
|
||||
public $displayIndentGuides = true;
|
||||
|
||||
/**
|
||||
* @var boolean If true, the editor show Print Margin
|
||||
*/
|
||||
public $showPrintMargin = false;
|
||||
|
||||
/**
|
||||
* @var boolean Show minimap (code preview) on the right of the editor
|
||||
*/
|
||||
public $showMinimap = true;
|
||||
|
||||
/**
|
||||
* @var boolean Colorize brackets
|
||||
*/
|
||||
public $bracketColors = false;
|
||||
|
||||
/**
|
||||
* @var boolean Show inline color previews and color picker
|
||||
*/
|
||||
public $showColors = true;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'codeeditor';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->applyEditorPreferences();
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->readOnly = true;
|
||||
}
|
||||
|
||||
$this->fillFromConfig([
|
||||
'language',
|
||||
'showGutter',
|
||||
'wordWrap',
|
||||
'codeFolding',
|
||||
'autoClosing',
|
||||
'useSoftTabs',
|
||||
'tabSize',
|
||||
'fontSize',
|
||||
'margin',
|
||||
'scrollPastEnd',
|
||||
'theme',
|
||||
'showInvisibles',
|
||||
'highlightActiveLine',
|
||||
'readOnly',
|
||||
'displayIndentGuides',
|
||||
'showPrintMargin',
|
||||
'showMinimap',
|
||||
'bracketColors',
|
||||
'showColors',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('codeeditor');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the widget data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['fontSize'] = $this->fontSize;
|
||||
$this->vars['wordWrap'] = $this->wordWrap;
|
||||
$this->vars['codeFolding'] = $this->codeFolding;
|
||||
$this->vars['autoClosing'] = $this->autoClosing;
|
||||
$this->vars['tabSize'] = $this->tabSize;
|
||||
$this->vars['theme'] = $this->theme;
|
||||
$this->vars['showInvisibles'] = $this->showInvisibles;
|
||||
$this->vars['highlightActiveLine'] = $this->highlightActiveLine;
|
||||
$this->vars['useSoftTabs'] = $this->useSoftTabs;
|
||||
$this->vars['showGutter'] = $this->showGutter;
|
||||
$this->vars['language'] = $this->language;
|
||||
$this->vars['margin'] = $this->margin;
|
||||
$this->vars['scrollPastEnd'] = $this->scrollPastEnd;
|
||||
$this->vars['stretch'] = $this->formField->stretch;
|
||||
$this->vars['size'] = $this->formField->size;
|
||||
$this->vars['readOnly'] = $this->readOnly;
|
||||
$this->vars['displayIndentGuides'] = $this->displayIndentGuides;
|
||||
$this->vars['showPrintMargin'] = $this->showPrintMargin;
|
||||
$this->vars['showMinimap'] = $this->showMinimap;
|
||||
$this->vars['bracketColors'] = $this->bracketColors;
|
||||
$this->vars['showColors'] = $this->showColors;
|
||||
|
||||
// Double encode when escaping
|
||||
$this->vars['value'] = htmlentities($this->getLoadValue(), ENT_QUOTES, 'UTF-8', true);
|
||||
$this->vars['name'] = $this->getFieldName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/codeeditor.css', 'core');
|
||||
$this->addJs('js/build/codeeditor.bundle.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* Looks at the user preferences and overrides any set values.
|
||||
* @return void
|
||||
*/
|
||||
protected function applyEditorPreferences()
|
||||
{
|
||||
// Load the editor system settings
|
||||
$preferences = BackendPreference::instance();
|
||||
|
||||
$this->fontSize = $preferences->editor_font_size;
|
||||
$this->wordWrap = $preferences->editor_word_wrap;
|
||||
$this->codeFolding = $preferences->editor_enable_folding ?? ($preferences->editor_code_folding !== 'manual');
|
||||
$this->autoClosing = $preferences->editor_auto_closing;
|
||||
$this->tabSize = $preferences->editor_tab_size;
|
||||
$this->theme = $preferences->editor_theme;
|
||||
$this->showInvisibles = $preferences->editor_show_invisibles;
|
||||
$this->highlightActiveLine = $preferences->editor_highlight_active_line;
|
||||
$this->useSoftTabs = !$preferences->editor_use_hard_tabs;
|
||||
$this->showGutter = $preferences->editor_show_gutter;
|
||||
$this->displayIndentGuides = $preferences->editor_display_indent_guides;
|
||||
$this->showPrintMargin = $preferences->editor_show_print_margin;
|
||||
$this->showMinimap = $preferences->editor_show_minimap;
|
||||
$this->bracketColors = $preferences->editor_bracket_colors;
|
||||
$this->showColors = $preferences->editor_show_colors;
|
||||
}
|
||||
}
|
||||
286
modules/backend/formwidgets/ColorPicker.php
Normal file
286
modules/backend/formwidgets/ColorPicker.php
Normal file
@@ -0,0 +1,286 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Lang;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use ApplicationException;
|
||||
use Backend\Models\BrandSetting;
|
||||
|
||||
/**
|
||||
* Color picker
|
||||
* Renders a color picker field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
* @author Winter CMS
|
||||
*/
|
||||
class ColorPicker extends FormWidgetBase
|
||||
{
|
||||
// All color formats supported
|
||||
const ALL_FORMATS = ['cmyk', 'hex', 'hsl', 'rgb'];
|
||||
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var array Default available colors
|
||||
*/
|
||||
public $availableColors = null;
|
||||
|
||||
/**
|
||||
* @var bool Allow empty value
|
||||
*/
|
||||
public $allowEmpty = false;
|
||||
|
||||
/**
|
||||
* @var bool Allow a custom color
|
||||
*/
|
||||
public $allowCustom = true;
|
||||
|
||||
/**
|
||||
* @var bool Show opacity slider
|
||||
*/
|
||||
public $showAlpha = false;
|
||||
|
||||
/**
|
||||
* @var bool If true, the color picker is set to read-only mode
|
||||
*/
|
||||
public $readOnly = false;
|
||||
|
||||
/**
|
||||
* @var bool If true, the color picker is set to disabled mode
|
||||
*/
|
||||
public $disabled = false;
|
||||
|
||||
/**
|
||||
* @var string|array Color format(s) to allow for the resulting color value. Specify "all" as a string to allow all
|
||||
* formats.
|
||||
* Allowed values: 'cmyk', 'hex', 'hsl', 'rgb', 'all'
|
||||
*/
|
||||
public $formats = 'hex';
|
||||
|
||||
/**
|
||||
* @var array|string[] Patterns to validate colour string on save
|
||||
*/
|
||||
protected array $validationPatterns = [
|
||||
'cmyk' => '/^cmyk\((\d{1,2}\.?\d{0,2}%,? ?){4}\)$/',
|
||||
'hex' => '/^#[\w\d]{6,8}$/',
|
||||
'hsl' => '/^hsla\((\d{1,3}\.?\d{0,2}%?, ?){3}\d\.?\d{0,2}?\)$/',
|
||||
'rgb' => '/^rgba\((\d{1,3}\.?\d{0,2}, ?){3}\d\.?\d{0,2}?\)$/',
|
||||
];
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'colorpicker';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'availableColors',
|
||||
'formats',
|
||||
'allowEmpty',
|
||||
'allowCustom',
|
||||
'showAlpha',
|
||||
'readOnly',
|
||||
'disabled',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('colorpicker');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['name'] = $this->getFieldName();
|
||||
$this->vars['value'] = $this->getLoadValue();
|
||||
$this->vars['availableColors'] = $this->getAvailableColors();
|
||||
$this->vars['formats'] = $this->getFormats();
|
||||
$this->vars['allowEmpty'] = (bool) $this->allowEmpty;
|
||||
$this->vars['allowCustom'] = (bool) $this->allowCustom;
|
||||
$this->vars['showAlpha'] = (bool) $this->showAlpha;
|
||||
$this->vars['readOnly'] = (bool) $this->readOnly;
|
||||
$this->vars['disabled'] = (bool) $this->disabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the appropriate list of colors.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getAvailableColors()
|
||||
{
|
||||
$availableColors = $this->availableColors;
|
||||
|
||||
if (is_array($availableColors)) {
|
||||
return $availableColors;
|
||||
} elseif (is_string($availableColors) && !empty($availableColors)) {
|
||||
if ($this->model->methodExists($availableColors)) {
|
||||
return $this->availableColors = $this->model->{$availableColors}(
|
||||
$this->formField->fieldName,
|
||||
$this->formField->value,
|
||||
$this->formField->config
|
||||
);
|
||||
} else {
|
||||
throw new ApplicationException(Lang::get('backend::lang.field.colors_method_not_exists', [
|
||||
'model' => get_class($this->model),
|
||||
'method' => $availableColors,
|
||||
'field' => $this->formField->fieldName
|
||||
]));
|
||||
}
|
||||
} else {
|
||||
return $this->availableColors = array_map(function ($color) {
|
||||
return $color['color'];
|
||||
}, BrandSetting::get('default_colors', [
|
||||
[
|
||||
'color' => '#1abc9c',
|
||||
],
|
||||
[
|
||||
'color' => '#16a085',
|
||||
],
|
||||
[
|
||||
'color' => '#6cc551',
|
||||
],
|
||||
[
|
||||
'color' => '#52a838',
|
||||
],
|
||||
[
|
||||
'color' => '#b1dbef',
|
||||
],
|
||||
[
|
||||
'color' => '#88c9e7',
|
||||
],
|
||||
[
|
||||
'color' => '#2da7c7',
|
||||
],
|
||||
[
|
||||
'color' => '#227f96',
|
||||
],
|
||||
[
|
||||
'color' => '#b281c5',
|
||||
],
|
||||
[
|
||||
'color' => '#7b4e8e',
|
||||
],
|
||||
[
|
||||
'color' => '#103141',
|
||||
],
|
||||
[
|
||||
'color' => '#081821',
|
||||
],
|
||||
[
|
||||
'color' => '#f8e095',
|
||||
],
|
||||
[
|
||||
'color' => '#dcb22d',
|
||||
],
|
||||
[
|
||||
'color' => '#de8754',
|
||||
],
|
||||
[
|
||||
'color' => '#d66829',
|
||||
],
|
||||
[
|
||||
'color' => '#b33f32',
|
||||
],
|
||||
[
|
||||
'color' => '#ab2a1c',
|
||||
],
|
||||
[
|
||||
'color' => '#95a5a6',
|
||||
],
|
||||
[
|
||||
'color' => '#7f8c8d',
|
||||
],
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the allowed color formats.
|
||||
*
|
||||
* If no valid formats are specified, the "hex" format will be used.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getFormats()
|
||||
{
|
||||
if ($this->formats === 'all') {
|
||||
return static::ALL_FORMATS;
|
||||
}
|
||||
|
||||
$availableFormats = [];
|
||||
$configFormats = (is_string($this->formats))
|
||||
? [$this->formats]
|
||||
: $this->formats;
|
||||
|
||||
foreach ($configFormats as $format) {
|
||||
if (in_array($format, static::ALL_FORMATS)) {
|
||||
$availableFormats[] = $format;
|
||||
}
|
||||
}
|
||||
|
||||
return (count($availableFormats))
|
||||
? $availableFormats
|
||||
: ['hex'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addJs('js/dist/colorpicker.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if (!strlen($value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (is_array($this->formats) ? 'all' : $this->formats) {
|
||||
case 'cmyk':
|
||||
case 'hex':
|
||||
case 'hsl':
|
||||
case 'rgb':
|
||||
if (!preg_match($this->validationPatterns[$this->formats], $value)) {
|
||||
throw new ApplicationException(Lang::get('backend::lang.field.colors_invalid_input'));
|
||||
}
|
||||
break;
|
||||
case 'all':
|
||||
$valid = false;
|
||||
foreach ($this->validationPatterns as $pattern) {
|
||||
if (preg_match($pattern, $value)) {
|
||||
$valid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid) {
|
||||
throw new ApplicationException(Lang::get('backend::lang.field.colors_invalid_input'));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
205
modules/backend/formwidgets/DataTable.php
Normal file
205
modules/backend/formwidgets/DataTable.php
Normal file
@@ -0,0 +1,205 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Lang;
|
||||
use Backend\Widgets\Table;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Winter\Storm\Html\Helper as HtmlHelper;
|
||||
use ApplicationException;
|
||||
|
||||
/**
|
||||
* Data Table
|
||||
* Renders a table field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class DataTable extends FormWidgetBase
|
||||
{
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Table size
|
||||
*/
|
||||
public $size = 'large';
|
||||
|
||||
/**
|
||||
* @var bool Allow rows to be sorted
|
||||
* @todo Not implemented...
|
||||
*/
|
||||
public $rowSorting = false;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'datatable';
|
||||
|
||||
/**
|
||||
* @var Backend\Widgets\Table Table widget
|
||||
*/
|
||||
protected $table;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'size',
|
||||
'rowSorting',
|
||||
]);
|
||||
|
||||
$this->table = $this->makeTableWidget();
|
||||
$this->table->bindToController();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Backend\Widgets\Table The table to be displayed.
|
||||
*/
|
||||
public function getTable()
|
||||
{
|
||||
return $this->table;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('datatable');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->populateTableWidget();
|
||||
$this->vars['table'] = $this->table;
|
||||
$this->vars['size'] = $this->size;
|
||||
$this->vars['rowSorting'] = $this->rowSorting;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getLoadValue()
|
||||
{
|
||||
$value = (array) parent::getLoadValue();
|
||||
|
||||
// Sync the array keys as the ID to make the
|
||||
// table widget happy!
|
||||
foreach ($value as $key => $_value) {
|
||||
$value[$key] = ['id' => $key] + (array) $_value;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
// TODO: provide a streaming implementation of saving
|
||||
// data to the model. The current implementation returns
|
||||
// all records at once. -ab
|
||||
|
||||
$dataSource = $this->table->getDataSource();
|
||||
|
||||
$result = [];
|
||||
while ($records = $dataSource->readRecords()) {
|
||||
$result = array_merge($result, $records);
|
||||
}
|
||||
|
||||
// We should be dealing with a simple array, so
|
||||
// strip out the id columns in the final array.
|
||||
foreach ($result as $key => $_result) {
|
||||
unset($result[$key]['id']);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Populate data
|
||||
*/
|
||||
protected function populateTableWidget()
|
||||
{
|
||||
$dataSource = $this->table->getDataSource();
|
||||
|
||||
// TODO: provide a streaming implementation of loading
|
||||
// data from the model. The current implementation loads
|
||||
// all records at once. -ab
|
||||
|
||||
$records = $this->getLoadValue() ?: [];
|
||||
|
||||
$dataSource->purge();
|
||||
$dataSource->initRecords((array) $records);
|
||||
}
|
||||
|
||||
protected function makeTableWidget()
|
||||
{
|
||||
$config = $this->makeConfig((array) $this->config);
|
||||
|
||||
$config->dataSource = 'client';
|
||||
if (isset($this->getParentForm()->arrayName)) {
|
||||
$config->alias = studly_case(HtmlHelper::nameToId($this->getParentForm()->arrayName . '[' . $this->fieldName . ']')) . 'datatable';
|
||||
$config->fieldName = $this->getParentForm()->arrayName . '[' . $this->fieldName . ']';
|
||||
} else {
|
||||
$config->alias = studly_case(HtmlHelper::nameToId($this->fieldName)) . 'datatable';
|
||||
$config->fieldName = $this->fieldName;
|
||||
}
|
||||
|
||||
$table = new Table($this->controller, $config);
|
||||
|
||||
$table->bindEvent('table.getDropdownOptions', [$this, 'getDataTableOptions']);
|
||||
|
||||
return $table;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dropdown/autocomplete option callback handler
|
||||
*
|
||||
* Looks at the model for getXXXDataTableOptions or getDataTableOptions methods
|
||||
* to obtain values for autocomplete and dropdown column types.
|
||||
*
|
||||
* @param string $columnName The name of the column to pass through to the callback.
|
||||
* @param array $rowData The data provided for the current row in the datatable.
|
||||
* @return array The options to make available to the dropdown or autocomplete, in format ["value" => "label"]
|
||||
*/
|
||||
public function getDataTableOptions($columnName, $rowData)
|
||||
{
|
||||
$methodName = 'get' . studly_case($this->fieldName) . 'DataTableOptions';
|
||||
|
||||
if (!$this->model->methodExists($methodName) && !$this->model->methodExists('getDataTableOptions')) {
|
||||
throw new ApplicationException(
|
||||
Lang::get(
|
||||
'backend::lang.model.missing_method',
|
||||
[
|
||||
'class' => get_class($this->model),
|
||||
'method' => 'getDataTableOptions'
|
||||
]
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->model->methodExists($methodName)) {
|
||||
$result = $this->model->$methodName($columnName, $rowData);
|
||||
} else {
|
||||
$result = $this->model->getDataTableOptions($this->fieldName, $columnName, $rowData);
|
||||
}
|
||||
|
||||
if (!is_array($result)) {
|
||||
$result = [];
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
207
modules/backend/formwidgets/DatePicker.php
Normal file
207
modules/backend/formwidgets/DatePicker.php
Normal file
@@ -0,0 +1,207 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Config;
|
||||
use Carbon\Carbon;
|
||||
use Backend\Classes\FormField;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use System\Helpers\DateTime as DateTimeHelper;
|
||||
use Winter\Storm\Exception\ApplicationException;
|
||||
|
||||
/**
|
||||
* Date picker
|
||||
* Renders a date picker field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class DatePicker extends FormWidgetBase
|
||||
{
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var bool Display mode: datetime, date, time.
|
||||
*/
|
||||
public $mode = 'datetime';
|
||||
|
||||
/**
|
||||
* @var string Provide an explicit date display format.
|
||||
*/
|
||||
public $format;
|
||||
|
||||
/**
|
||||
* @var string the minimum/earliest date that can be selected.
|
||||
* eg: 2000-01-01
|
||||
*/
|
||||
public $minDate;
|
||||
|
||||
/**
|
||||
* @var string the maximum/latest date that can be selected.
|
||||
* eg: 2020-12-31
|
||||
*/
|
||||
public $maxDate;
|
||||
|
||||
/**
|
||||
* @var string number of years either side or array of upper/lower range
|
||||
* eg: 10 or [1900,1999]
|
||||
*/
|
||||
public $yearRange;
|
||||
|
||||
/**
|
||||
* @var int first day of the week
|
||||
* eg: 0 (Sunday), 1 (Monday), 2 (Tuesday), etc.
|
||||
*/
|
||||
public $firstDay = 0;
|
||||
|
||||
/**
|
||||
* @var bool show week numbers at head of row
|
||||
*/
|
||||
public $showWeekNumber = false;
|
||||
|
||||
/**
|
||||
* @var bool change datetime exactly as is in database
|
||||
*/
|
||||
public $ignoreTimezone = false;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'datepicker';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'format',
|
||||
'mode',
|
||||
'minDate',
|
||||
'maxDate',
|
||||
'yearRange',
|
||||
'firstDay',
|
||||
'showWeekNumber',
|
||||
'ignoreTimezone',
|
||||
]);
|
||||
|
||||
$this->mode = strtolower($this->mode);
|
||||
|
||||
if ($this->minDate !== null) {
|
||||
$this->minDate = is_int($this->minDate)
|
||||
? Carbon::createFromTimestamp($this->minDate)
|
||||
: Carbon::parse($this->minDate);
|
||||
}
|
||||
|
||||
if ($this->maxDate !== null) {
|
||||
$this->maxDate = is_int($this->maxDate)
|
||||
? Carbon::createFromTimestamp($this->maxDate)
|
||||
: Carbon::parse($this->maxDate);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
try {
|
||||
$this->prepareVars();
|
||||
} catch (ApplicationException $ex) {
|
||||
$this->vars['error'] = $ex->getMessage();
|
||||
}
|
||||
|
||||
return $this->makePartial('datepicker');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
if ($value = $this->getLoadValue()) {
|
||||
$value = DateTimeHelper::makeCarbon($value, false);
|
||||
|
||||
if (!($value instanceof Carbon)) {
|
||||
$this->vars['error'] = (sprintf('"%s" is not a valid date / time value.', $value));
|
||||
} else {
|
||||
if ($this->mode === 'date' && !$this->ignoreTimezone) {
|
||||
$backendTimeZone = \Backend\Models\Preference::get('timezone');
|
||||
$value->setTimezone($backendTimeZone);
|
||||
$value->setTime(0, 0, 0);
|
||||
$value->setTimezone(Config::get('app.timezone'));
|
||||
}
|
||||
$value = $value->toDateTimeString();
|
||||
}
|
||||
}
|
||||
|
||||
// Disable the datepicker visually when readOnly is enabled
|
||||
if ($this->formField->readOnly) {
|
||||
$this->formField->disabled = true;
|
||||
}
|
||||
|
||||
$this->vars['name'] = $this->getFieldName();
|
||||
$this->vars['value'] = $value ?: '';
|
||||
$this->vars['field'] = $this->formField;
|
||||
$this->vars['mode'] = $this->mode;
|
||||
$this->vars['minDate'] = $this->minDate;
|
||||
$this->vars['maxDate'] = $this->maxDate;
|
||||
$this->vars['yearRange'] = $this->yearRange;
|
||||
$this->vars['firstDay'] = $this->firstDay;
|
||||
$this->vars['showWeekNumber'] = $this->showWeekNumber;
|
||||
$this->vars['ignoreTimezone'] = $this->ignoreTimezone;
|
||||
$this->vars['format'] = $this->format;
|
||||
$this->vars['formatMoment'] = $this->getDateFormatMoment();
|
||||
$this->vars['formatAlias'] = $this->getDateFormatAlias();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if ($this->formField->disabled || $this->formField->hidden) {
|
||||
return FormField::NO_SAVE_DATA;
|
||||
}
|
||||
|
||||
if (!strlen($value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert PHP format to JS format
|
||||
*/
|
||||
protected function getDateFormatMoment()
|
||||
{
|
||||
if ($this->format) {
|
||||
return DateTimeHelper::momentFormat($this->format);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Display alias, used by preview mode
|
||||
*/
|
||||
protected function getDateFormatAlias()
|
||||
{
|
||||
if ($this->format) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($this->mode == 'time') {
|
||||
return 'time';
|
||||
}
|
||||
elseif ($this->mode == 'date') {
|
||||
return 'dateLong';
|
||||
}
|
||||
else {
|
||||
return 'dateTimeLong';
|
||||
}
|
||||
}
|
||||
}
|
||||
102
modules/backend/formwidgets/FieldSet.php
Normal file
102
modules/backend/formwidgets/FieldSet.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormField;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Backend\Widgets\Form;
|
||||
|
||||
/**
|
||||
* FieldSet
|
||||
* Renders a fieldset from multiple form fields.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Marc Jauvin <marc.jauvin@gmail.com>
|
||||
*/
|
||||
class FieldSet extends FormWidgetBase
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'fieldset';
|
||||
|
||||
/**
|
||||
* @var array Field configuration
|
||||
*/
|
||||
public $fields;
|
||||
|
||||
/**
|
||||
* @var bool Determines if this form field should display comments and labels.
|
||||
*/
|
||||
public $showLabels = false;
|
||||
|
||||
/**
|
||||
* @var Form form widget reference
|
||||
*/
|
||||
protected $formWidget;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'fields',
|
||||
]);
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
$config = $this->makeConfig(['fields' => $this->fields]);
|
||||
$config->model = $this->model;
|
||||
$config->data = $this->getLoadValue();
|
||||
$config->alias = $this->alias . $this->defaultAlias;
|
||||
// set arrayName from parent form to save fields to the model
|
||||
$config->arrayName = $this->getParentForm()->arrayName;
|
||||
$config->isNested = true;
|
||||
|
||||
$widget = $this->formWidget = $this->makeWidget(Form::class, $config);
|
||||
$widget->previewMode = $this->previewMode;
|
||||
$widget->bindToController();
|
||||
}
|
||||
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/fieldset.css', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the save data for the nested fields, to be merged into the parent
|
||||
* form's data as if these fields were defined at that level. Reusing the nested
|
||||
* form's getSaveData() ensures number casting, widget getSaveValue() handling,
|
||||
* NO_SAVE_DATA exclusion and disabled/hidden skipping all behave identically to
|
||||
* a regular field.
|
||||
*/
|
||||
public function getSaveData(): array
|
||||
{
|
||||
return $this->formWidget->getSaveData();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('fieldset');
|
||||
}
|
||||
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->formWidget->previewMode = $this->previewMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
return FormField::NO_SAVE_DATA;
|
||||
}
|
||||
}
|
||||
561
modules/backend/formwidgets/FileUpload.php
Normal file
561
modules/backend/formwidgets/FileUpload.php
Normal file
@@ -0,0 +1,561 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormField;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Backend\Widgets\Form;
|
||||
use Exception;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use System\Models\File;
|
||||
use Winter\Storm\Exception\ApplicationException;
|
||||
use Winter\Storm\Exception\ValidationException;
|
||||
use Winter\Storm\Filesystem\Definitions as FileDefinitions;
|
||||
use Winter\Storm\Support\Facades\DB;
|
||||
use Winter\Storm\Support\Facades\Event;
|
||||
use Winter\Storm\Support\Facades\Input;
|
||||
use Winter\Storm\Support\Facades\Validator;
|
||||
|
||||
/**
|
||||
* File upload field
|
||||
* Renders a form file uploader field.
|
||||
*
|
||||
* Supported options:
|
||||
* - mode: image-single, image-multi, file-single, file-multi
|
||||
* - upload-label: Add file
|
||||
* - empty-label: No file uploaded
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class FileUpload extends FormWidgetBase
|
||||
{
|
||||
use \Backend\Traits\FormModelSaver;
|
||||
use \Backend\Traits\FormModelWidget;
|
||||
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Icon class to use for the upload button.
|
||||
*/
|
||||
public $iconClass;
|
||||
|
||||
/**
|
||||
* @var string Prompt text to display for the upload button.
|
||||
*/
|
||||
public $prompt;
|
||||
|
||||
/**
|
||||
* @var int Preview image width
|
||||
*/
|
||||
public $imageWidth;
|
||||
|
||||
/**
|
||||
* @var int Preview image height
|
||||
*/
|
||||
public $imageHeight;
|
||||
|
||||
/**
|
||||
* @var mixed Collection of acceptable file types.
|
||||
*/
|
||||
public $fileTypes = false;
|
||||
|
||||
/**
|
||||
* @var mixed Collection of acceptable mime types.
|
||||
*/
|
||||
public $mimeTypes = false;
|
||||
|
||||
/**
|
||||
* @var mixed Max file size.
|
||||
*/
|
||||
public $maxFilesize;
|
||||
|
||||
/**
|
||||
* @var array Options used for generating thumbnails.
|
||||
*/
|
||||
public $thumbOptions = [
|
||||
'mode' => 'crop',
|
||||
'extension' => 'auto'
|
||||
];
|
||||
|
||||
/**
|
||||
* @var boolean Allow the user to set a caption.
|
||||
*/
|
||||
public $useCaption = true;
|
||||
|
||||
/**
|
||||
* @var boolean Automatically attaches the uploaded file on upload if the parent record exists instead of using deferred binding to attach on save of the parent record. Defaults to false.
|
||||
*/
|
||||
public $attachOnUpload = false;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'fileupload';
|
||||
|
||||
/**
|
||||
* @var Form The embedded form for modifying the properties of the selected file
|
||||
*/
|
||||
protected $configFormWidget;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->maxFilesize = $this->getUploadMaxFilesize();
|
||||
|
||||
$this->fillFromConfig([
|
||||
'iconClass',
|
||||
'prompt',
|
||||
'imageWidth',
|
||||
'imageHeight',
|
||||
'fileTypes',
|
||||
'maxFilesize',
|
||||
'mimeTypes',
|
||||
'thumbOptions',
|
||||
'useCaption',
|
||||
'attachOnUpload',
|
||||
]);
|
||||
|
||||
$this->iconClass = $this->iconClass ?? 'icon-upload';
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
$this->getConfigFormWidget();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('fileupload');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the view data
|
||||
*/
|
||||
protected function prepareVars()
|
||||
{
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
if ($this->previewMode) {
|
||||
$this->useCaption = false;
|
||||
}
|
||||
|
||||
if ($this->maxFilesize > $this->getUploadMaxFilesize()) {
|
||||
throw new ApplicationException('Maximum allowed size for uploaded files: ' . $this->getUploadMaxFilesize());
|
||||
}
|
||||
|
||||
$this->vars['fileList'] = $fileList = $this->getFileList();
|
||||
$this->vars['singleFile'] = $fileList->first();
|
||||
$this->vars['displayMode'] = $this->getDisplayMode();
|
||||
$this->vars['emptyIcon'] = $this->getConfig('emptyIcon', 'icon-upload');
|
||||
$this->vars['imageHeight'] = $this->imageHeight;
|
||||
$this->vars['imageWidth'] = $this->imageWidth;
|
||||
$this->vars['acceptedFileTypes'] = $this->getAcceptedFileTypes(true);
|
||||
$this->vars['maxFilesize'] = $this->maxFilesize;
|
||||
$this->vars['cssDimensions'] = $this->getCssDimensions();
|
||||
$this->vars['cssBlockDimensions'] = $this->getCssDimensions('block');
|
||||
$this->vars['useCaption'] = $this->useCaption;
|
||||
$this->vars['iconClass'] = $this->iconClass;
|
||||
$this->vars['prompt'] = $this->getPromptText();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the file record for this request, returns false if none available
|
||||
*
|
||||
* @return File|false
|
||||
*/
|
||||
protected function getFileRecord()
|
||||
{
|
||||
$record = false;
|
||||
|
||||
if (!empty(post('file_id'))) {
|
||||
// Scope the lookup to this widget's own relation (including any files
|
||||
// bound via the current deferred-binding session) so that an
|
||||
// attacker-controlled file_id cannot reference an arbitrary
|
||||
// System\Models\File record belonging to another model. See
|
||||
// GHSA-3277-h8g9-qj5f.
|
||||
$record = $this->getRelationObject()
|
||||
->withDeferred($this->sessionKey)
|
||||
->find(post('file_id')) ?: false;
|
||||
}
|
||||
|
||||
return $record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the instantiated config Form widget
|
||||
*/
|
||||
public function getConfigFormWidget(): Form
|
||||
{
|
||||
if ($this->configFormWidget) {
|
||||
return $this->configFormWidget;
|
||||
}
|
||||
|
||||
$config = $this->makeConfig('~/modules/system/models/file/fields.yaml');
|
||||
$config->model = $this->getFileRecord() ?: $this->getRelationModel();
|
||||
$config->alias = $this->alias . $this->defaultAlias;
|
||||
$config->arrayName = $this->getFieldName();
|
||||
|
||||
$widget = $this->makeWidget(Form::class, $config);
|
||||
$widget->bindToController();
|
||||
|
||||
return $this->configFormWidget = $widget;
|
||||
}
|
||||
|
||||
protected function getFileList()
|
||||
{
|
||||
$list = $this
|
||||
->getRelationObject()
|
||||
->withDeferred($this->sessionKey)
|
||||
->orderBy('sort_order')
|
||||
->get()
|
||||
;
|
||||
|
||||
/*
|
||||
* Decorate each file with thumb and custom download path
|
||||
*/
|
||||
$list->each(function ($file) {
|
||||
$this->decorateFileAttributes($file);
|
||||
});
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the display mode for the file upload. Eg: file-multi, image-single, etc.
|
||||
*/
|
||||
protected function getDisplayMode(): string
|
||||
{
|
||||
$mode = $this->getConfig('mode', 'image');
|
||||
|
||||
if (str_contains($mode, '-')) {
|
||||
return $mode;
|
||||
}
|
||||
|
||||
$relationType = $this->getRelationType();
|
||||
$mode .= ($relationType === 'attachMany' || $relationType === 'morphMany') ? '-multi' : '-single';
|
||||
|
||||
return $mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the escaped and translated prompt text to display according to the type.
|
||||
*/
|
||||
protected function getPromptText(): string
|
||||
{
|
||||
if ($this->prompt === null) {
|
||||
$isMulti = ends_with($this->getDisplayMode(), 'multi');
|
||||
$this->prompt = $isMulti
|
||||
? 'backend::lang.fileupload.upload_file'
|
||||
: 'backend::lang.fileupload.default_prompt';
|
||||
}
|
||||
|
||||
$uploadIconStr = sprintf('<i class="%s"></i>', $this->iconClass);
|
||||
return str_replace('%s', $uploadIconStr, e(trans($this->prompt)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the CSS dimensions for the uploaded image,
|
||||
* uses auto where no dimension is provided.
|
||||
*/
|
||||
protected function getCssDimensions(?string $mode = null): string
|
||||
{
|
||||
if (!$this->imageWidth && !$this->imageHeight) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$cssDimensions = '';
|
||||
|
||||
if ($mode == 'block') {
|
||||
$cssDimensions .= $this->imageWidth
|
||||
? 'width: ' . $this->imageWidth . 'px;'
|
||||
: 'width: ' . $this->imageHeight . 'px;';
|
||||
|
||||
$cssDimensions .= ($this->imageHeight)
|
||||
? 'max-height: ' . $this->imageHeight . 'px;'
|
||||
: 'height: auto;';
|
||||
} else {
|
||||
$cssDimensions .= $this->imageWidth
|
||||
? 'width: ' . $this->imageWidth . 'px;'
|
||||
: 'width: auto;';
|
||||
|
||||
$cssDimensions .= ($this->imageHeight)
|
||||
? 'max-height: ' . $this->imageHeight . 'px;'
|
||||
: 'height: auto;';
|
||||
}
|
||||
|
||||
return $cssDimensions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the specified accepted file types, or the default
|
||||
* based on the mode. Image mode will return:
|
||||
* - jpg,jpeg,bmp,png,gif,svg
|
||||
* @return string
|
||||
*/
|
||||
public function getAcceptedFileTypes($includeDot = false)
|
||||
{
|
||||
$types = $this->fileTypes;
|
||||
|
||||
if ($types === false) {
|
||||
$isImage = starts_with($this->getDisplayMode(), 'image');
|
||||
$types = implode(',', FileDefinitions::get($isImage ? 'imageExtensions' : 'defaultExtensions'));
|
||||
}
|
||||
|
||||
if (!$types || $types == '*') {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!is_array($types)) {
|
||||
$types = explode(',', $types);
|
||||
}
|
||||
|
||||
$types = array_map(function ($value) use ($includeDot) {
|
||||
$value = trim($value);
|
||||
|
||||
if (substr($value, 0, 1) == '.') {
|
||||
$value = substr($value, 1);
|
||||
}
|
||||
|
||||
if ($includeDot) {
|
||||
$value = '.'.$value;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}, $types);
|
||||
|
||||
return implode(',', $types);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a file attachment.
|
||||
*/
|
||||
public function onRemoveAttachment(): void
|
||||
{
|
||||
if ($file = $this->getFileRecord()) {
|
||||
$this->getRelationObject()->remove($file, $this->sessionKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts file attachments.
|
||||
*
|
||||
* Expects (array) sortOrder [$fileId => $fileOrder] in the POST data.
|
||||
*/
|
||||
public function onSortAttachments(): void
|
||||
{
|
||||
if ($sortData = post('sortOrder')) {
|
||||
// Only reorder files that actually belong to this widget's relation
|
||||
// (including the current deferred-binding session), never arbitrary
|
||||
// System\Models\File rows referenced by a posted id. See
|
||||
// GHSA-3277-h8g9-qj5f.
|
||||
$keyName = $this->getRelationModel()->getKeyName();
|
||||
$validIds = $this->getRelationObject()
|
||||
->withDeferred($this->sessionKey)
|
||||
->pluck($keyName)
|
||||
->all();
|
||||
|
||||
$sortData = array_intersect_key($sortData, array_flip($validIds));
|
||||
if (empty($sortData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$ids = array_keys($sortData);
|
||||
$orders = array_values($sortData);
|
||||
|
||||
$this->getRelationModel()->setSortableOrder($ids, $orders);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the configuration form for an attachment, allowing title and description to be set.
|
||||
*
|
||||
* @throws ApplicationException if unable to find the file record
|
||||
*/
|
||||
public function onLoadAttachmentConfig(): string
|
||||
{
|
||||
if ($file = $this->getFileRecord()) {
|
||||
$file = $this->decorateFileAttributes($file);
|
||||
|
||||
$this->vars['file'] = $file;
|
||||
$this->vars['displayMode'] = $this->getDisplayMode();
|
||||
$this->vars['cssDimensions'] = $this->getCssDimensions();
|
||||
$this->vars['parentElementId'] = $this->getId();
|
||||
|
||||
return $this->makePartial('config_form');
|
||||
}
|
||||
|
||||
throw new ApplicationException('Unable to find file, it may no longer exist');
|
||||
}
|
||||
|
||||
/**
|
||||
* Commit the changes of the attachment configuration form.
|
||||
*/
|
||||
public function onSaveAttachmentConfig()
|
||||
{
|
||||
try {
|
||||
$formWidget = $this->getConfigFormWidget();
|
||||
if ($file = $formWidget->model) {
|
||||
$modelsToSave = $this->prepareModelsToSave($file, $formWidget->getSaveData());
|
||||
Db::transaction(function () use ($modelsToSave, $formWidget) {
|
||||
foreach ($modelsToSave as $modelToSave) {
|
||||
$modelToSave->save(null, $formWidget->getSessionKey());
|
||||
}
|
||||
});
|
||||
|
||||
return ['displayName' => $file->title ?: $file->file_name];
|
||||
}
|
||||
|
||||
throw new ApplicationException('Unable to find file, it may no longer exist');
|
||||
}
|
||||
catch (Exception $ex) {
|
||||
return json_encode(['error' => $ex->getMessage()]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/fileupload.css', 'core');
|
||||
$this->addJs('js/fileupload.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
return FormField::NO_SAVE_DATA;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload handler for the server-side processing of uploaded files
|
||||
*/
|
||||
public function onUpload()
|
||||
{
|
||||
try {
|
||||
$file = $this->getRelationModel();
|
||||
$fileRelation = $this->getRelationObject();
|
||||
$file->is_public = $fileRelation->isPublic();
|
||||
|
||||
/**
|
||||
* @event backend.formwidgets.fileupload.onUpload
|
||||
* Provides an opportunity to process the file upload using custom logic.
|
||||
*
|
||||
* Example usage ()
|
||||
*/
|
||||
if (!($data = Event::fire('backend.formwidgets.fileupload.onUpload', [$this, $file], true))) {
|
||||
if (!Input::hasFile('file_data')) {
|
||||
throw new ApplicationException('File missing from request');
|
||||
}
|
||||
|
||||
$validationRules = ['max:'.$file::getMaxFilesize()];
|
||||
$data = Input::file('file_data');
|
||||
|
||||
if (!$data->isValid()) {
|
||||
throw new ApplicationException('File is not valid');
|
||||
}
|
||||
|
||||
if ($fileTypes = $this->getAcceptedFileTypes()) {
|
||||
$validationRules[] = 'extensions:'.$fileTypes;
|
||||
}
|
||||
|
||||
if ($this->mimeTypes) {
|
||||
$validationRules[] = 'mimes:'.$this->mimeTypes;
|
||||
}
|
||||
|
||||
$validation = Validator::make(
|
||||
['file_data' => $data],
|
||||
['file_data' => $validationRules]
|
||||
);
|
||||
|
||||
if ($validation->fails()) {
|
||||
throw new ValidationException($validation);
|
||||
}
|
||||
}
|
||||
|
||||
$file->data = $data;
|
||||
$file->save();
|
||||
|
||||
/**
|
||||
* Attach directly to the parent model if it exists and attachOnUpload has been set to true
|
||||
* else attach via deferred binding
|
||||
*/
|
||||
$parent = $fileRelation->getParent();
|
||||
if ($this->attachOnUpload && $parent && $parent->exists) {
|
||||
$fileRelation->add($file);
|
||||
}
|
||||
else {
|
||||
$fileRelation->add($file, $this->sessionKey);
|
||||
}
|
||||
|
||||
$file = $this->decorateFileAttributes($file);
|
||||
|
||||
$result = [
|
||||
'id' => $file->id,
|
||||
'thumb' => $file->thumbUrl,
|
||||
'path' => $file->pathUrl
|
||||
];
|
||||
|
||||
$response = Response::make($result, 200);
|
||||
}
|
||||
catch (Exception $ex) {
|
||||
$response = Response::make($ex->getMessage(), 400);
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the bespoke attributes used internally by this widget.
|
||||
* - thumbUrl
|
||||
* - pathUrl
|
||||
* @return System\Models\File
|
||||
*/
|
||||
protected function decorateFileAttributes($file)
|
||||
{
|
||||
$path = $thumb = $file->getPath();
|
||||
|
||||
if ($this->imageWidth || $this->imageHeight) {
|
||||
$thumb = $file->getThumb($this->imageWidth, $this->imageHeight, $this->thumbOptions);
|
||||
}
|
||||
|
||||
$file->pathUrl = $path;
|
||||
$file->thumbUrl = $thumb;
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return max upload filesize in Mb
|
||||
* @return integer
|
||||
*/
|
||||
protected function getUploadMaxFilesize()
|
||||
{
|
||||
$size = ini_get('upload_max_filesize');
|
||||
if (preg_match('/^([\d\.]+)([KMG])$/i', $size, $match)) {
|
||||
$pos = array_search(strtoupper($match[2]), ['K', 'M', 'G']);
|
||||
if ($pos !== false) {
|
||||
$size = $match[1] * pow(1024, $pos + 1);
|
||||
}
|
||||
}
|
||||
return floor($size / 1024 / 1024);
|
||||
}
|
||||
}
|
||||
59
modules/backend/formwidgets/IconPicker.php
Normal file
59
modules/backend/formwidgets/IconPicker.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use File;
|
||||
use Url;
|
||||
use Yaml;
|
||||
|
||||
/**
|
||||
* Icon picker
|
||||
* Renders an icon picker field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Robert Alexa, Jack Wilkinson
|
||||
*/
|
||||
class IconPicker extends FormWidgetBase
|
||||
{
|
||||
public const DEFAULT_LIBRARIES = '~/modules/backend/formwidgets/iconpicker/meta/libraries.yaml';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'iconpicker';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('iconpicker');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['field'] = $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function loadAssets(): void
|
||||
{
|
||||
$this->addJs('js/dist/iconpicker.js', 'core');
|
||||
}
|
||||
|
||||
public function onLoadIconLibrary()
|
||||
{
|
||||
$libraries = $this->config->libraries ?? static::DEFAULT_LIBRARIES;
|
||||
|
||||
if (is_string($libraries)) {
|
||||
$libraries = Yaml::parseFile(File::symbolizePath($libraries));
|
||||
}
|
||||
|
||||
return json_encode($libraries);
|
||||
}
|
||||
}
|
||||
142
modules/backend/formwidgets/MarkdownEditor.php
Normal file
142
modules/backend/formwidgets/MarkdownEditor.php
Normal file
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Backend\Facades\BackendAuth;
|
||||
use Winter\Storm\Support\Facades\Html;
|
||||
use Winter\Storm\Support\Facades\Markdown;
|
||||
|
||||
/**
|
||||
* Code Editor
|
||||
* Renders a code editor field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class MarkdownEditor extends FormWidgetBase
|
||||
{
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Display mode: split, tab.
|
||||
*/
|
||||
public $mode = 'tab';
|
||||
|
||||
/**
|
||||
* @var bool Render preview with safe markdown.
|
||||
*/
|
||||
public $safe = false;
|
||||
|
||||
/**
|
||||
* @var bool If true, the editor is set to read-only mode
|
||||
*/
|
||||
public $readOnly = false;
|
||||
|
||||
/**
|
||||
* @var bool If true, the editor is set to read-only mode
|
||||
*/
|
||||
public $disabled = false;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected $defaultAlias = 'markdown';
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'mode',
|
||||
'safe',
|
||||
'readOnly',
|
||||
'disabled',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('markdowneditor');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the widget data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['mode'] = $this->mode;
|
||||
$this->vars['stretch'] = $this->formField->stretch;
|
||||
$this->vars['size'] = $this->formField->size;
|
||||
$this->vars['name'] = $this->getFieldName();
|
||||
$this->vars['value'] = $this->getLoadValue();
|
||||
$this->vars['readOnly'] = $this->readOnly;
|
||||
$this->vars['disabled'] = $this->disabled;
|
||||
$this->vars['useMediaManager'] = BackendAuth::getUser()->hasAccess('media.manage_media');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/markdowneditor.css', 'core');
|
||||
$this->addJs('js/markdowneditor.js', 'core');
|
||||
$this->addJs('/modules/backend/assets/vendor/ace-codeeditor/build-min.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* Check to see if the generated HTML should be cleaned to remove any potential XSS
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
protected function shouldCleanHtml()
|
||||
{
|
||||
$user = BackendAuth::getUser();
|
||||
return !$user || !$user->hasAccess('backend.allow_unsafe_markdown');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if ($this->shouldCleanHtml()) {
|
||||
$value = Html::clean($value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX handler to render the markdown as HTML
|
||||
*
|
||||
* @return array ['preview' => $generatedHTML]
|
||||
*/
|
||||
public function onRefresh()
|
||||
{
|
||||
$value = post($this->getFieldName());
|
||||
$previewHtml = $this->safe
|
||||
? Markdown::parseSafe($value)
|
||||
: Markdown::parse($value);
|
||||
|
||||
if ($this->shouldCleanHtml()) {
|
||||
$previewHtml = Html::clean($previewHtml);
|
||||
}
|
||||
|
||||
return [
|
||||
'preview' => $previewHtml
|
||||
];
|
||||
}
|
||||
}
|
||||
126
modules/backend/formwidgets/MediaFinder.php
Normal file
126
modules/backend/formwidgets/MediaFinder.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use BackendAuth;
|
||||
use Backend\Classes\FormField;
|
||||
use System\Classes\MediaLibrary;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
|
||||
/**
|
||||
* Media Finder
|
||||
* Renders a record finder field.
|
||||
*
|
||||
* image:
|
||||
* label: Some image
|
||||
* type: media
|
||||
* prompt: Click the %s button to find a user
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class MediaFinder extends FormWidgetBase
|
||||
{
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Prompt to display if no record is selected.
|
||||
*/
|
||||
public $prompt = 'backend::lang.mediafinder.default_prompt';
|
||||
|
||||
/**
|
||||
* @var string Display mode for the selection. Values: file, image.
|
||||
*/
|
||||
public $mode = 'file';
|
||||
|
||||
/**
|
||||
* @var int Preview image width
|
||||
*/
|
||||
public $imageWidth;
|
||||
|
||||
/**
|
||||
* @var int Preview image height
|
||||
*/
|
||||
public $imageHeight;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'media';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'mode',
|
||||
'prompt',
|
||||
'imageWidth',
|
||||
'imageHeight'
|
||||
]);
|
||||
|
||||
$user = BackendAuth::getUser();
|
||||
|
||||
if ($this->formField->disabled
|
||||
|| $this->formField->readOnly
|
||||
|| !$user
|
||||
|| !$user->hasAccess('media.manage_media')
|
||||
) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
|
||||
return $this->makePartial('mediafinder');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$value = $this->getLoadValue();
|
||||
$isImage = $this->mode === 'image';
|
||||
|
||||
$this->vars['value'] = $value;
|
||||
$this->vars['imageUrl'] = $isImage && $value ? MediaLibrary::url($value) : '';
|
||||
$this->vars['imageExists'] = $isImage && $value ? MediaLibrary::instance()->exists($value) : '';
|
||||
$this->vars['field'] = $this->formField;
|
||||
$this->vars['prompt'] = str_replace('%s', '<i class="icon-folder"></i>', trans($this->prompt));
|
||||
$this->vars['mode'] = $this->mode;
|
||||
$this->vars['imageWidth'] = $this->imageWidth;
|
||||
$this->vars['imageHeight'] = $this->imageHeight;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if ($this->formField->disabled || $this->formField->hidden) {
|
||||
return FormField::NO_SAVE_DATA;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addJs('js/mediafinder.js', 'core');
|
||||
$this->addCss('css/mediafinder.css', 'core');
|
||||
}
|
||||
}
|
||||
85
modules/backend/formwidgets/NestedForm.php
Normal file
85
modules/backend/formwidgets/NestedForm.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Backend\Widgets\Form;
|
||||
|
||||
/**
|
||||
* Nested Form
|
||||
* Renders a nested form bound to a jsonable field of a model.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Sascha Aeppli
|
||||
*/
|
||||
class NestedForm extends FormWidgetBase
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'nestedform';
|
||||
|
||||
/**
|
||||
* @var array Form configuration
|
||||
*/
|
||||
public $form;
|
||||
|
||||
/**
|
||||
* @var bool defines if the nested form is styled like a panel (default true).
|
||||
*/
|
||||
public $usePanelStyles = true;
|
||||
|
||||
/**
|
||||
* @var Form form widget reference
|
||||
*/
|
||||
protected $formWidget;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'form',
|
||||
'usePanelStyles',
|
||||
]);
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
$config = $this->makeConfig($this->form);
|
||||
$config->model = $this->model;
|
||||
$config->data = $this->getLoadValue();
|
||||
$config->alias = $this->alias . $this->defaultAlias;
|
||||
$config->arrayName = $this->getFieldName();
|
||||
$config->isNested = true;
|
||||
|
||||
if (object_get($this->getParentForm()->config, 'enableDefaults') === true) {
|
||||
$config->enableDefaults = true;
|
||||
}
|
||||
|
||||
$widget = $this->makeWidget(Form::class, $config);
|
||||
$widget->previewMode = $this->previewMode;
|
||||
$widget->bindToController();
|
||||
|
||||
$this->formWidget = $widget;
|
||||
}
|
||||
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/nestedform.css', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('nestedform');
|
||||
}
|
||||
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->formWidget->previewMode = $this->previewMode;
|
||||
}
|
||||
}
|
||||
171
modules/backend/formwidgets/PermissionEditor.php
Normal file
171
modules/backend/formwidgets/PermissionEditor.php
Normal file
@@ -0,0 +1,171 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use BackendAuth;
|
||||
|
||||
/**
|
||||
* User/group permission editor
|
||||
* This widget is used by the system internally on the System / Administrators pages.
|
||||
*
|
||||
* Available Modes:
|
||||
* - radio: Default mode, used by user-level permissions.
|
||||
* Provides three-state control over each available permission. States are
|
||||
* -1: Explicitly deny the permission
|
||||
* 0: Inherit the permission's value from a parent source (User inherits from Role)
|
||||
* 1: Explicitly grant the permission
|
||||
* - checkbox: Used to define permissions for roles. Intended to define a base of what permissions are available
|
||||
* Provides two state control over each available permission. States are
|
||||
* 1: Explicitly allow the permission
|
||||
* null: If the checkbox is not ticked, the permission will not be sent to the server and will not be stored.
|
||||
* This is interpreted as the permission not being present and thus not allowed
|
||||
* - switch: Used to define overriding permissions in a simpler UX than the radio.
|
||||
* Provides two state control over each available permission. States are
|
||||
* 1: Explicitly allow the permission
|
||||
* -1: Explicitly deny the permission
|
||||
*
|
||||
* Available permissions can be defined in the form of an array of permission codes to allow:
|
||||
* NOTE: Users are still not allowed to modify permissions that they themselves do not have access to
|
||||
* availablePermissions: ['some.author.permission', 'some.other.permission', 'etc.some.system.permission']
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class PermissionEditor extends FormWidgetBase
|
||||
{
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* @var string Mode to display the permission editor with. Available options: radio, checkbox, switch
|
||||
*/
|
||||
public $mode = 'radio';
|
||||
|
||||
/**
|
||||
* @var array Permission codes to allow to be interacted with through this widget
|
||||
*/
|
||||
public $availablePermissions;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'mode',
|
||||
'availablePermissions',
|
||||
]);
|
||||
|
||||
$this->user = BackendAuth::getUser();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('permissioneditor');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
$permissionsData = $this->formField->getValueFromData($this->model);
|
||||
if (!is_array($permissionsData)) {
|
||||
$permissionsData = [];
|
||||
}
|
||||
|
||||
$this->vars['mode'] = $this->mode;
|
||||
$this->vars['permissions'] = $this->getFilteredPermissions();
|
||||
$this->vars['baseFieldName'] = $this->getFieldName();
|
||||
$this->vars['permissionsData'] = $permissionsData;
|
||||
$this->vars['field'] = $this->formField;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if ($this->user->isSuperUser()) {
|
||||
return is_array($value) ? $value : [];
|
||||
}
|
||||
|
||||
return $this->getSaveValueSecure($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/permissioneditor.css', 'core');
|
||||
$this->addJs('js/permissioneditor.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a safely parsed set of permissions, ensuring the user cannot elevate
|
||||
* their own permissions or permissions of another user above their own.
|
||||
*
|
||||
* @param string $value
|
||||
* @return array
|
||||
*/
|
||||
protected function getSaveValueSecure($value)
|
||||
{
|
||||
$newPermissions = is_array($value) ? array_map('intval', $value) : [];
|
||||
|
||||
if (!empty($newPermissions)) {
|
||||
$existingPermissions = $this->model->permissions ?: [];
|
||||
|
||||
$allowedPermissions = array_map(function ($permissionObject) {
|
||||
return $permissionObject->code;
|
||||
}, array_flatten($this->getFilteredPermissions()));
|
||||
|
||||
foreach ($newPermissions as $permission => $code) {
|
||||
if (in_array($permission, $allowedPermissions)) {
|
||||
$existingPermissions[$permission] = $code;
|
||||
}
|
||||
}
|
||||
|
||||
$newPermissions = $existingPermissions;
|
||||
}
|
||||
|
||||
return $newPermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the available permissions; removing those that the logged-in user does not have access to
|
||||
*
|
||||
* @return array The permissions that the logged-in user does have access to ['permission-tab' => $arrayOfAllowedPermissionObjects]
|
||||
*/
|
||||
protected function getFilteredPermissions()
|
||||
{
|
||||
$permissions = BackendAuth::listTabbedPermissions();
|
||||
|
||||
foreach ($permissions as $tab => $permissionsArray) {
|
||||
foreach ($permissionsArray as $index => $permission) {
|
||||
if (!$this->user->hasAccess($permission->code) ||
|
||||
(
|
||||
is_array($this->availablePermissions) &&
|
||||
!in_array($permission->code, $this->availablePermissions)
|
||||
)) {
|
||||
unset($permissionsArray[$index]);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($permissionsArray)) {
|
||||
unset($permissions[$tab]);
|
||||
}
|
||||
else {
|
||||
$permissions[$tab] = $permissionsArray;
|
||||
}
|
||||
}
|
||||
|
||||
return $permissions;
|
||||
}
|
||||
}
|
||||
380
modules/backend/formwidgets/RecordFinder.php
Normal file
380
modules/backend/formwidgets/RecordFinder.php
Normal file
@@ -0,0 +1,380 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Lang;
|
||||
use ApplicationException;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Winter\Storm\Database\Model;
|
||||
|
||||
/**
|
||||
* Record Finder
|
||||
* Renders a record finder field.
|
||||
*
|
||||
* user:
|
||||
* label: User
|
||||
* type: recordfinder
|
||||
* list: ~/plugins/winter/user/models/user/columns.yaml
|
||||
* recordsPerPage: 10
|
||||
* title: Find Record
|
||||
* prompt: Click the Find button to find a user
|
||||
* keyFrom: id
|
||||
* nameFrom: name
|
||||
* descriptionFrom: email
|
||||
* conditions: email = "bob@example.com"
|
||||
* scope: whereActive
|
||||
* searchMode: all
|
||||
* searchScope: searchUsers
|
||||
* useRelation: false
|
||||
* modelClass: Winter\User\Models\User
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class RecordFinder extends FormWidgetBase
|
||||
{
|
||||
use \Backend\Traits\FormModelWidget;
|
||||
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Field name to use for key.
|
||||
*/
|
||||
public $keyFrom = 'id';
|
||||
|
||||
/**
|
||||
* @var string Relation column to display for the name
|
||||
*/
|
||||
public $nameFrom = 'name';
|
||||
|
||||
/**
|
||||
* @var string Relation column to display for the description
|
||||
*/
|
||||
public $descriptionFrom;
|
||||
|
||||
/**
|
||||
* @var string Text to display for the title of the popup list form
|
||||
*/
|
||||
public $title = 'backend::lang.recordfinder.find_record';
|
||||
|
||||
/**
|
||||
* @var string Prompt to display if no record is selected.
|
||||
*/
|
||||
public $prompt = null;
|
||||
|
||||
/**
|
||||
* @var int Maximum rows to display for each page.
|
||||
*/
|
||||
public $recordsPerPage = 10;
|
||||
|
||||
/**
|
||||
* @var string Use a custom scope method for the list query.
|
||||
*/
|
||||
public $scope;
|
||||
|
||||
/**
|
||||
* @var string Filters the relation using a raw where query statement.
|
||||
*/
|
||||
public $conditions;
|
||||
|
||||
/**
|
||||
* @var string If searching the records, specifies a policy to use.
|
||||
* - all: result must contain all words
|
||||
* - any: result can contain any word
|
||||
* - exact: result must contain the exact phrase
|
||||
*/
|
||||
public $searchMode;
|
||||
|
||||
/**
|
||||
* @var string Use a custom scope method for performing searches.
|
||||
*/
|
||||
public $searchScope;
|
||||
|
||||
/**
|
||||
* @var boolean Flag for using the name of the field as a relation name to interact with directly on the parent model. Default: true. Disable to return just the selected model's ID
|
||||
*/
|
||||
public $useRelation = true;
|
||||
|
||||
/**
|
||||
* @var string Class of the model to use for listing records when useRelation = false
|
||||
*/
|
||||
public $modelClass;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'recordfinder';
|
||||
|
||||
/**
|
||||
* @var Model Relationship model
|
||||
*/
|
||||
public $relationModel;
|
||||
|
||||
/**
|
||||
* @var \Backend\Classes\WidgetBase Reference to the widget used for viewing (list or form).
|
||||
*/
|
||||
protected $listWidget;
|
||||
|
||||
/**
|
||||
* @var \Backend\Classes\WidgetBase Reference to the widget used for searching.
|
||||
*/
|
||||
protected $searchWidget;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'title',
|
||||
'prompt',
|
||||
'keyFrom',
|
||||
'nameFrom',
|
||||
'descriptionFrom',
|
||||
'scope',
|
||||
'conditions',
|
||||
'searchMode',
|
||||
'searchScope',
|
||||
'recordsPerPage',
|
||||
'useRelation',
|
||||
'modelClass',
|
||||
]);
|
||||
|
||||
if (!isset($this->prompt)) {
|
||||
$this->prompt = Lang::get('backend::lang.recordfinder.default_prompt');
|
||||
}
|
||||
|
||||
if (!$this->useRelation && !class_exists($this->modelClass)) {
|
||||
throw new ApplicationException(Lang::get('backend::lang.recordfinder.invalid_model_class', ['modelClass' => $this->modelClass]));
|
||||
}
|
||||
|
||||
$modelKey = $this->getRecordModel()->getKeyName();
|
||||
if ($this->keyFrom === 'id' && $modelKey !== 'id') {
|
||||
$this->keyFrom = $modelKey;
|
||||
}
|
||||
|
||||
if (post('recordfinder_flag')) {
|
||||
$this->listWidget = $this->makeListWidget();
|
||||
$this->listWidget->bindToController();
|
||||
|
||||
$this->searchWidget = $this->makeSearchWidget();
|
||||
$this->searchWidget->bindToController();
|
||||
|
||||
$this->listWidget->setSearchTerm($this->searchWidget->getActiveTerm());
|
||||
|
||||
/*
|
||||
* Link the Search Widget to the List Widget
|
||||
*/
|
||||
$this->searchWidget->bindEvent('search.submit', function () {
|
||||
$this->listWidget->setSearchTerm($this->searchWidget->getActiveTerm());
|
||||
return $this->listWidget->onRefresh();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('container');
|
||||
}
|
||||
|
||||
public function onRefresh()
|
||||
{
|
||||
$value = post($this->getFieldName());
|
||||
if ($this->useRelation) {
|
||||
list($model, $attribute) = $this->resolveModelAttribute($this->valueFrom);
|
||||
$model->{$attribute} = $value;
|
||||
} else {
|
||||
$this->formField->value = $value;
|
||||
}
|
||||
|
||||
$this->prepareVars();
|
||||
return ['#'.$this->getId('container') => $this->makePartial('recordfinder')];
|
||||
}
|
||||
|
||||
public function onClearRecord()
|
||||
{
|
||||
if ($this->useRelation) {
|
||||
list($model, $attribute) = $this->resolveModelAttribute($this->valueFrom);
|
||||
$model->{$attribute} = null;
|
||||
} else {
|
||||
$this->formField->value = null;
|
||||
}
|
||||
|
||||
$this->prepareVars();
|
||||
return ['#'.$this->getId('container') => $this->makePartial('recordfinder')];
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->relationModel = $this->getLoadValue();
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
$this->vars['value'] = $this->getKeyValue();
|
||||
$this->vars['field'] = $this->formField;
|
||||
$this->vars['nameValue'] = $this->getNameValue();
|
||||
$this->vars['descriptionValue'] = $this->getDescriptionValue();
|
||||
$this->vars['listWidget'] = $this->listWidget;
|
||||
$this->vars['searchWidget'] = $this->searchWidget;
|
||||
$this->vars['title'] = $this->title;
|
||||
$this->vars['prompt'] = str_replace('%s', '<i class="icon-th-list"></i>', e(trans($this->prompt)));
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addJs('js/recordfinder.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
return strlen($value) ? $value : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getLoadValue()
|
||||
{
|
||||
$value = null;
|
||||
|
||||
if ($this->useRelation) {
|
||||
list($model, $attribute) = $this->resolveModelAttribute($this->valueFrom);
|
||||
if ($model !== null) {
|
||||
$value = $model->{$attribute};
|
||||
}
|
||||
} else {
|
||||
$value = $this->modelClass::where($this->keyFrom, parent::getLoadValue())->first();
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function getKeyValue()
|
||||
{
|
||||
if (!$this->relationModel) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->useRelation ?
|
||||
$this->relationModel->{$this->keyFrom} :
|
||||
$this->formField->value;
|
||||
}
|
||||
|
||||
public function getNameValue()
|
||||
{
|
||||
if (!$this->relationModel || !$this->nameFrom) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->relationModel->{$this->nameFrom};
|
||||
}
|
||||
|
||||
public function getDescriptionValue()
|
||||
{
|
||||
if (!$this->relationModel || !$this->descriptionFrom) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->relationModel->{$this->descriptionFrom};
|
||||
}
|
||||
|
||||
public function onFindRecord()
|
||||
{
|
||||
$this->prepareVars();
|
||||
|
||||
// Attach the parent element ID to the popup
|
||||
$this->vars['parentElementId'] = $this->getId('popupTrigger');
|
||||
|
||||
/*
|
||||
* Purge the search term stored in session
|
||||
*/
|
||||
if ($this->searchWidget) {
|
||||
$this->listWidget->setSearchTerm(null);
|
||||
$this->searchWidget->setActiveTerm(null);
|
||||
}
|
||||
|
||||
return $this->makePartial('recordfinder_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the base model instance used by this field
|
||||
*/
|
||||
protected function getRecordModel(): Model
|
||||
{
|
||||
$model = null;
|
||||
if ($this->useRelation) {
|
||||
$model = $this->getRelationModel();
|
||||
} else {
|
||||
$model = new $this->modelClass;
|
||||
}
|
||||
return $model;
|
||||
}
|
||||
|
||||
protected function makeListWidget()
|
||||
{
|
||||
$config = $this->makeConfig($this->getConfig('list'));
|
||||
|
||||
$config->model = $this->getRecordModel();
|
||||
$config->alias = $this->alias . 'List';
|
||||
$config->showSetup = false;
|
||||
$config->showCheckboxes = false;
|
||||
$config->recordsPerPage = $this->recordsPerPage;
|
||||
$config->recordOnClick = sprintf("$('#%s').recordFinder('updateRecord', this, ':" . $this->keyFrom . "')", $this->getId());
|
||||
$widget = $this->makeWidget('Backend\Widgets\Lists', $config);
|
||||
|
||||
$widget->setSearchOptions([
|
||||
'mode' => $this->searchMode,
|
||||
'scope' => $this->searchScope,
|
||||
]);
|
||||
|
||||
if ($sqlConditions = $this->conditions) {
|
||||
$widget->bindEvent('list.extendQueryBefore', function ($query) use ($sqlConditions) {
|
||||
$query->whereRaw($sqlConditions);
|
||||
});
|
||||
}
|
||||
elseif ($scopeMethod = $this->scope) {
|
||||
$widget->bindEvent('list.extendQueryBefore', function ($query) use ($scopeMethod) {
|
||||
$query->$scopeMethod($this->model);
|
||||
});
|
||||
}
|
||||
else {
|
||||
if ($this->useRelation) {
|
||||
$widget->bindEvent('list.extendQueryBefore', function ($query) {
|
||||
$this->getRelationObject()->addDefinedConstraintsToQuery($query);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return $widget;
|
||||
}
|
||||
|
||||
protected function makeSearchWidget()
|
||||
{
|
||||
$config = $this->makeConfig();
|
||||
$config->alias = $this->alias . 'Search';
|
||||
$config->growable = false;
|
||||
$config->prompt = 'backend::lang.list.search_prompt';
|
||||
$widget = $this->makeWidget('Backend\Widgets\Search', $config);
|
||||
$widget->cssClasses[] = 'recordfinder-search';
|
||||
return $widget;
|
||||
}
|
||||
}
|
||||
198
modules/backend/formwidgets/Relation.php
Normal file
198
modules/backend/formwidgets/Relation.php
Normal file
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Db;
|
||||
use Lang;
|
||||
use Backend\Classes\FormField;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation as RelationBase;
|
||||
use Winter\Storm\Exception\SystemException;
|
||||
|
||||
/**
|
||||
* Form Relationship
|
||||
* Renders a field prepopulated with a belongsTo and belongsToHasMany relation.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class Relation extends FormWidgetBase
|
||||
{
|
||||
use \Backend\Traits\FormModelWidget;
|
||||
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Model column to use for the name reference
|
||||
*/
|
||||
public $nameFrom = 'name';
|
||||
|
||||
/**
|
||||
* @var string Custom SQL column selection to use for the name reference
|
||||
*/
|
||||
public $sqlSelect;
|
||||
|
||||
/**
|
||||
* @var string Empty value to use if the relation is singluar (belongsTo)
|
||||
*/
|
||||
public $emptyOption;
|
||||
|
||||
/**
|
||||
* @var string Use a custom scope method for the list query.
|
||||
*/
|
||||
public $scope;
|
||||
|
||||
/**
|
||||
* @var string Define the order of the list query.
|
||||
*/
|
||||
public $order;
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'relation';
|
||||
|
||||
/**
|
||||
* @var FormField Object used for rendering a simple field type
|
||||
*/
|
||||
public $renderFormField;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'nameFrom',
|
||||
'emptyOption',
|
||||
'scope',
|
||||
'order',
|
||||
]);
|
||||
|
||||
if (isset($this->config->select)) {
|
||||
$this->sqlSelect = $this->config->select;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('relation');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the view data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['field'] = $this->makeRenderFormField();
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes the form object used for rendering a simple field type
|
||||
* @throws SystemException if an unsupported relation type is used.
|
||||
*/
|
||||
protected function makeRenderFormField()
|
||||
{
|
||||
return $this->renderFormField = RelationBase::noConstraints(function () {
|
||||
|
||||
$field = clone $this->formField;
|
||||
$relationObject = $this->getRelationObject();
|
||||
$query = $relationObject->newQuery();
|
||||
|
||||
list($model, $attribute) = $this->resolveModelAttribute($this->valueFrom);
|
||||
$relationType = $model->getRelationType($attribute);
|
||||
$relationModel = $model->makeRelation($attribute);
|
||||
|
||||
if (in_array($relationType, ['belongsToMany', 'morphToMany', 'morphedByMany', 'hasMany'])) {
|
||||
$field->type = 'checkboxlist';
|
||||
} elseif (in_array($relationType, ['belongsTo', 'hasOne'])) {
|
||||
$field->type = 'dropdown';
|
||||
} else {
|
||||
throw new SystemException(
|
||||
Lang::get('backend::lang.relation.relationwidget_unsupported_type', [
|
||||
'type' => $relationType
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
// Order query by the configured option.
|
||||
if ($this->order) {
|
||||
// Using "raw" to allow authors to use a string to define the order clause.
|
||||
$query->orderByRaw($this->order);
|
||||
}
|
||||
|
||||
// It is safe to assume that if the model and related model are of
|
||||
// the exact same class, then it cannot be related to itself
|
||||
if ($model->exists && (get_class($model) == get_class($relationModel))) {
|
||||
$query->where($relationModel->getKeyName(), '<>', $model->getKey());
|
||||
}
|
||||
|
||||
// Even though "no constraints" is applied, belongsToMany constrains the query
|
||||
// by joining its pivot table. Remove all joins from the query.
|
||||
$query->getQuery()->getQuery()->joins = [];
|
||||
|
||||
if ($scopeMethod = $this->scope) {
|
||||
$query->$scopeMethod($model);
|
||||
}
|
||||
|
||||
// Determine if the model uses a tree trait
|
||||
$treeTraits = ['Winter\Storm\Database\Traits\NestedTree', 'Winter\Storm\Database\Traits\SimpleTree'];
|
||||
$usesTree = count(array_intersect($treeTraits, class_uses($relationModel))) > 0;
|
||||
|
||||
// The "sqlSelect" config takes precedence over "nameFrom".
|
||||
// A virtual column called "selection" will contain the result.
|
||||
// Tree models must select all columns to return parent columns, etc.
|
||||
if ($this->sqlSelect) {
|
||||
$nameFrom = 'selection';
|
||||
$selectColumn = $usesTree ? '*' : $relationModel->getKeyName();
|
||||
$result = $query->select($selectColumn, Db::raw($this->sqlSelect . ' AS ' . $nameFrom));
|
||||
}
|
||||
else {
|
||||
$nameFrom = $this->nameFrom;
|
||||
$result = $query->getQuery()->get();
|
||||
}
|
||||
|
||||
// Some simpler relations can specify a custom local or foreign "other" key,
|
||||
// which can be detected and implemented here automagically.
|
||||
$primaryKeyName = in_array($relationType, ['hasMany', 'belongsTo', 'hasOne'])
|
||||
? $relationObject->getOtherKey()
|
||||
: $relationModel->getKeyName();
|
||||
|
||||
$field->options = $usesTree
|
||||
? $result->listsNested($nameFrom, $primaryKeyName)
|
||||
: $result->lists($nameFrom, $primaryKeyName);
|
||||
|
||||
return $field;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if ($this->formField->disabled || $this->formField->hidden) {
|
||||
return FormField::NO_SAVE_DATA;
|
||||
}
|
||||
|
||||
if (is_string($value) && !strlen($value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (is_array($value) && !count($value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
84
modules/backend/formwidgets/RelationManager.php
Normal file
84
modules/backend/formwidgets/RelationManager.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormField;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Illuminate\Support\Facades\Lang;
|
||||
use Winter\Storm\Exception\SystemException;
|
||||
|
||||
class RelationManager extends FormWidgetBase
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'relationmanager';
|
||||
|
||||
/**
|
||||
* Disables the ability to add, update, delete or create relations.
|
||||
*/
|
||||
protected ?bool $readOnly = null;
|
||||
|
||||
/**
|
||||
* Path to controller action to open a record.
|
||||
*/
|
||||
protected ?string $recordUrl = null;
|
||||
|
||||
/**
|
||||
* Custom JavaScript code to execute when clicking on a record.
|
||||
*/
|
||||
protected ?string $recordOnClick = null;
|
||||
|
||||
/**
|
||||
* Relation name if different from the field name.
|
||||
*/
|
||||
protected string $relation = '';
|
||||
|
||||
public function init(): void
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'readOnly',
|
||||
'recordUrl',
|
||||
'recordOnClick',
|
||||
'relation',
|
||||
]);
|
||||
|
||||
if (!isset($this->readOnly) && $this->config->previewMode) {
|
||||
$this->readOnly = $this->config->previewMode;
|
||||
}
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
if (!$this->controller->isClassExtendedWith(\Backend\Behaviors\RelationController::class)) {
|
||||
$error = Lang::get('backend::lang.relation.missing_behavior', [
|
||||
'field' => $this->formField->fieldName,
|
||||
'controller' => get_class($this->controller),
|
||||
]);
|
||||
throw new SystemException($error);
|
||||
}
|
||||
|
||||
$options = [];
|
||||
|
||||
if (!is_null($this->readOnly)) {
|
||||
$options['readOnly'] = $this->readOnly;
|
||||
}
|
||||
|
||||
if (!is_null($this->recordUrl)) {
|
||||
$options['recordUrl'] = $this->recordUrl;
|
||||
}
|
||||
|
||||
if (!is_null($this->recordOnClick)) {
|
||||
$options['recordOnClick'] = $this->recordOnClick;
|
||||
}
|
||||
|
||||
$relation = $this->relation ?: $this->formField->fieldName;
|
||||
|
||||
return $this->controller->relationRender($relation, $options);
|
||||
}
|
||||
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
return FormField::NO_SAVE_DATA;
|
||||
}
|
||||
}
|
||||
535
modules/backend/formwidgets/Repeater.php
Normal file
535
modules/backend/formwidgets/Repeater.php
Normal file
@@ -0,0 +1,535 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Lang;
|
||||
use ApplicationException;
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
|
||||
/**
|
||||
* Repeater Form Widget
|
||||
*/
|
||||
class Repeater extends FormWidgetBase
|
||||
{
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* Form field configuration
|
||||
*/
|
||||
public array|string|object $form = [];
|
||||
|
||||
/**
|
||||
* Repeater mode. Can be either `list` (default) to display items in a vertical list, or `grid` to
|
||||
* display items in a grid.
|
||||
*/
|
||||
public string $mode = 'list';
|
||||
|
||||
/**
|
||||
* Prompt text for adding new items.
|
||||
*/
|
||||
public string $prompt = 'backend::lang.repeater.add_new_item';
|
||||
|
||||
/**
|
||||
* If `true`, items can be sorted.
|
||||
*/
|
||||
public bool $sortable = true;
|
||||
|
||||
/**
|
||||
* Field name to use for the title of collapsed items
|
||||
*/
|
||||
public ?string $titleFrom = null;
|
||||
|
||||
/**
|
||||
* Minimum items required. Pre-displays those items when not using groups. Set to `0` to not enforce a minimum.
|
||||
*/
|
||||
public int $minItems = 0;
|
||||
|
||||
/**
|
||||
* Maximum items permitted. Set to `0` to not enforce a limit.
|
||||
*/
|
||||
public int $maxItems = 0;
|
||||
|
||||
/**
|
||||
* Number of columns in a grid mode repeater. Can be between 2 and 6. Defaults to `4`.
|
||||
*/
|
||||
public int $columns = 4;
|
||||
|
||||
/**
|
||||
* The row height, in pixels, of a grid mode repeater. Defaults to `120`. Note that if items are larger than this
|
||||
* value, the row will scale accordingly.
|
||||
*/
|
||||
public int $rowHeight = 120;
|
||||
|
||||
/**
|
||||
* The style of the repeater. Can be one of three values:
|
||||
* - "default": Shows all repeater items expanded on load.
|
||||
* - "collapsed": Shows all repeater items collapsed on load.
|
||||
* - "accordion": Shows only the first repeater item expanded on load. When another item is clicked, all other open
|
||||
* items are collapsed.
|
||||
*
|
||||
* Ignored when using `grid` mode.
|
||||
*/
|
||||
public string $style = 'default';
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected $defaultAlias = 'repeater';
|
||||
|
||||
/**
|
||||
* Meta data associated to each field, organised by index
|
||||
*/
|
||||
protected array $indexMeta = [];
|
||||
|
||||
/**
|
||||
* Collection of form widgets.
|
||||
*/
|
||||
protected array $formWidgets = [];
|
||||
|
||||
/**
|
||||
* Stops nested repeaters populating from previous sibling.
|
||||
*/
|
||||
protected static bool $onAddItemCalled = false;
|
||||
|
||||
/**
|
||||
* Determines if a child repeater has made an AJAX request to add an item
|
||||
*/
|
||||
protected bool $childAddItemCalled = false;
|
||||
|
||||
/**
|
||||
* Determines which child index has made the AJAX request to add an item
|
||||
*/
|
||||
protected ?int $childIndexCalled = null;
|
||||
|
||||
/**
|
||||
* If `true`, sets the repeater to use "grouped" items. Grouped items are selectable form configurations that can
|
||||
* be different for each item in the repeater.
|
||||
*/
|
||||
protected bool $useGroups = false;
|
||||
|
||||
/**
|
||||
* Defines the group item form definitions available for the repeater.
|
||||
*/
|
||||
protected array $groupDefinitions = [];
|
||||
|
||||
/**
|
||||
* Determines if repeater has been initialised previously
|
||||
*/
|
||||
protected bool $loaded = false;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'form',
|
||||
'mode',
|
||||
'style',
|
||||
'prompt',
|
||||
'sortable',
|
||||
'titleFrom',
|
||||
'minItems',
|
||||
'maxItems',
|
||||
'columns',
|
||||
'rowHeight',
|
||||
]);
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
if ($this->columns < 2 || $this->columns > 6) {
|
||||
$this->columns = 4;
|
||||
}
|
||||
|
||||
// Check for loaded flag in POST
|
||||
if ((bool) post($this->alias . '_loaded') === true) {
|
||||
$this->loaded = true;
|
||||
}
|
||||
|
||||
$this->checkAddItemRequest();
|
||||
$this->processGroupMode();
|
||||
|
||||
if (!self::$onAddItemCalled) {
|
||||
$this->processItems();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('repeater');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the form widget view data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
// Refresh the loaded data to support being modified by filterFields
|
||||
// @see https://github.com/octobercms/october/issues/2613
|
||||
if (!self::$onAddItemCalled) {
|
||||
$this->processItems();
|
||||
}
|
||||
|
||||
if ($this->previewMode) {
|
||||
foreach ($this->formWidgets as $widget) {
|
||||
$widget->previewMode = true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->vars['prompt'] = $this->prompt;
|
||||
$this->vars['mode'] = in_array($this->mode, ['list', 'grid']) ? $this->mode : 'list';
|
||||
$this->vars['formWidgets'] = $this->formWidgets;
|
||||
$this->vars['titleFrom'] = $this->titleFrom;
|
||||
$this->vars['minItems'] = (int) $this->minItems;
|
||||
$this->vars['maxItems'] = (int) $this->maxItems;
|
||||
$this->vars['sortable'] = (bool) $this->sortable;
|
||||
$this->vars['style'] = in_array($this->style, ['default', 'collapsed', 'accordion']) ? $this->style : 'default';
|
||||
$this->vars['columns'] = (int) $this->columns;
|
||||
$this->vars['rowHeight'] = (int) $this->rowHeight;
|
||||
|
||||
$this->vars['useGroups'] = $this->useGroups;
|
||||
$this->vars['groupDefinitions'] = $this->groupDefinitions;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/repeater.css', 'core');
|
||||
$this->addJs('js/repeater.js', 'core');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
return $this->processSaveValue($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Splices in some meta data (group and index values) to the dataset.
|
||||
* @param array $value
|
||||
* @return array|null
|
||||
*/
|
||||
protected function processSaveValue($value)
|
||||
{
|
||||
if (!is_array($value) || !$value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($this->minItems && count($value) < $this->minItems) {
|
||||
throw new ApplicationException(Lang::get('backend::lang.repeater.min_items_failed', ['name' => $this->fieldName, 'min' => $this->minItems, 'items' => count($value)]));
|
||||
}
|
||||
if ($this->maxItems && count($value) > $this->maxItems) {
|
||||
throw new ApplicationException(Lang::get('backend::lang.repeater.max_items_failed', ['name' => $this->fieldName, 'max' => $this->maxItems, 'items' => count($value)]));
|
||||
}
|
||||
|
||||
/*
|
||||
* Give repeated form field widgets an opportunity to process the data.
|
||||
*/
|
||||
foreach ($value as $index => $data) {
|
||||
if (isset($this->formWidgets[$index])) {
|
||||
if ($this->useGroups) {
|
||||
$value[$index] = array_merge($this->formWidgets[$index]->getSaveData(), ['_group' => $data['_group']]);
|
||||
} else {
|
||||
$value[$index] = $this->formWidgets[$index]->getSaveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array_values($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes form data and applies it to the form widgets.
|
||||
* @return void
|
||||
*/
|
||||
protected function processItems()
|
||||
{
|
||||
$currentValue = ($this->loaded === true)
|
||||
? post($this->formField->getName())
|
||||
: $this->getLoadValue();
|
||||
|
||||
// Detect when a child widget is trying to run an AJAX handler
|
||||
// outside of the form element that contains all the repeater
|
||||
// fields that would normally be used to identify that case
|
||||
$handler = $this->controller->getAjaxHandler();
|
||||
if (!$this->loaded && starts_with($handler, $this->alias . 'Form')) {
|
||||
// Attempt to get the index of the repeater
|
||||
$handler = str_after($handler, $this->alias . 'Form');
|
||||
preg_match("~^(\d+)~", $handler, $matches);
|
||||
|
||||
if (isset($matches[1])) {
|
||||
$index = $matches[1];
|
||||
$this->makeItemFormWidget($index);
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure that the minimum number of items are preinitialized
|
||||
// ONLY DONE WHEN NOT IN GROUP MODE
|
||||
if (!$this->useGroups && $this->minItems > 0) {
|
||||
if (!is_array($currentValue)) {
|
||||
$currentValue = [];
|
||||
for ($i = 0; $i < $this->minItems; $i++) {
|
||||
$currentValue[$i] = [];
|
||||
}
|
||||
} elseif (count($currentValue) < $this->minItems) {
|
||||
for ($i = 0; $i < ($this->minItems - count($currentValue)); $i++) {
|
||||
$currentValue[] = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$this->childAddItemCalled && $currentValue === null) {
|
||||
$this->formWidgets = [];
|
||||
return;
|
||||
}
|
||||
|
||||
if ($this->childAddItemCalled && !isset($currentValue[$this->childIndexCalled])) {
|
||||
// If no value is available but a child repeater has added an item, add a "stub" repeater item
|
||||
$this->makeItemFormWidget($this->childIndexCalled);
|
||||
}
|
||||
|
||||
if (!is_array($currentValue)) {
|
||||
return;
|
||||
}
|
||||
|
||||
collect($currentValue)->each(function ($value, $index) {
|
||||
$this->makeItemFormWidget($index, array_get($value, '_group', null));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a form widget based on a field index and optional group code.
|
||||
* @param int $index
|
||||
* @param string $index
|
||||
* @return \Backend\Widgets\Form
|
||||
*/
|
||||
protected function makeItemFormWidget($index = 0, $groupCode = null)
|
||||
{
|
||||
$configDefinition = $this->useGroups
|
||||
? $this->getGroupFormFieldConfig($groupCode)
|
||||
: $this->form;
|
||||
|
||||
$config = $this->makeConfig($configDefinition);
|
||||
$config->model = $this->model;
|
||||
$config->data = $this->getValueFromIndex($index);
|
||||
$config->alias = $this->alias . 'Form' . $index;
|
||||
$config->arrayName = $this->getFieldName().'['.$index.']';
|
||||
$config->isNested = true;
|
||||
if (self::$onAddItemCalled || $this->minItems > 0) {
|
||||
$config->enableDefaults = true;
|
||||
}
|
||||
|
||||
$widget = $this->makeWidget('Backend\Widgets\Form', $config);
|
||||
$widget->previewMode = $this->previewMode;
|
||||
$widget->bindToController();
|
||||
|
||||
$this->indexMeta[$index] = [
|
||||
'groupCode' => $groupCode
|
||||
];
|
||||
|
||||
return $this->formWidgets[$index] = $widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the data at a given index.
|
||||
* @param int $index
|
||||
*/
|
||||
protected function getValueFromIndex($index)
|
||||
{
|
||||
$value = ($this->loaded === true)
|
||||
? post($this->formField->getName())
|
||||
: $this->getLoadValue();
|
||||
|
||||
if (!is_array($value)) {
|
||||
$value = [];
|
||||
}
|
||||
|
||||
return array_get($value, $index, []);
|
||||
}
|
||||
|
||||
//
|
||||
// AJAX handlers
|
||||
//
|
||||
|
||||
public function onAddItem()
|
||||
{
|
||||
$groupCode = post('_repeater_group');
|
||||
|
||||
$index = $this->getNextIndex();
|
||||
|
||||
$this->prepareVars();
|
||||
$this->vars['widget'] = $this->makeItemFormWidget($index, $groupCode);
|
||||
$this->vars['indexValue'] = $index;
|
||||
|
||||
$itemContainer = '@#' . $this->getId('items');
|
||||
$addItemContainer = '#' . $this->getId('add-item');
|
||||
|
||||
return [
|
||||
$addItemContainer => '',
|
||||
$itemContainer => $this->makePartial('repeater_item') . $this->makePartial('repeater_add_item')
|
||||
];
|
||||
}
|
||||
|
||||
public function onRemoveItem()
|
||||
{
|
||||
// Useful for deleting relations
|
||||
}
|
||||
|
||||
public function onRefresh()
|
||||
{
|
||||
$index = post('_repeater_index');
|
||||
$group = post('_repeater_group');
|
||||
|
||||
$widget = $this->makeItemFormWidget($index, $group);
|
||||
|
||||
return $widget->onRefresh();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the next available index number for assigning to a new repeater item.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
protected function getNextIndex()
|
||||
{
|
||||
if ($this->loaded === true) {
|
||||
$data = post($this->formField->getName());
|
||||
|
||||
if (is_array($data) && count($data)) {
|
||||
return (max(array_keys($data)) + 1);
|
||||
}
|
||||
} else {
|
||||
$data = $this->getLoadValue();
|
||||
|
||||
if (is_array($data)) {
|
||||
return count($data);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the repeater that has triggered an AJAX request to add an item.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function checkAddItemRequest()
|
||||
{
|
||||
$handler = $this->getParentForm()
|
||||
->getController()
|
||||
->getAjaxHandler();
|
||||
|
||||
if ($handler === null || strpos($handler, '::') === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
list($widgetName, $handlerName) = explode('::', $handler);
|
||||
if ($handlerName !== 'onAddItem') {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($this->alias === $widgetName) {
|
||||
// This repeater has made the AJAX request
|
||||
self::$onAddItemCalled = true;
|
||||
} else if (strpos($widgetName, $this->alias . 'Form') === 0) {
|
||||
// A child repeater has made the AJAX request
|
||||
|
||||
// Get index from AJAX handler
|
||||
$handlerSuffix = str_replace($this->alias . 'Form', '', $widgetName);
|
||||
if (preg_match('/^[0-9]+/', $handlerSuffix, $matches)) {
|
||||
$this->childAddItemCalled = true;
|
||||
$this->childIndexCalled = (int) $matches[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Group mode
|
||||
//
|
||||
|
||||
/**
|
||||
* Returns the form field configuration for a group, identified by code.
|
||||
* @param string $code
|
||||
* @return array|null
|
||||
*/
|
||||
protected function getGroupFormFieldConfig($code)
|
||||
{
|
||||
if (!$code) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$fields = array_get($this->groupDefinitions, $code.'.fields');
|
||||
|
||||
if (!$fields) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return ['fields' => $fields, 'enableDefaults' => object_get($this->config, 'enableDefaults')];
|
||||
}
|
||||
|
||||
/**
|
||||
* Process features related to group mode.
|
||||
* @return void
|
||||
*/
|
||||
protected function processGroupMode()
|
||||
{
|
||||
$palette = [];
|
||||
|
||||
if (!$group = $this->getConfig('groups', [])) {
|
||||
$this->useGroups = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (is_string($group)) {
|
||||
$group = $this->makeConfig($group);
|
||||
}
|
||||
|
||||
foreach ($group as $code => $config) {
|
||||
$palette[$code] = [
|
||||
'code' => $code,
|
||||
'name' => array_get($config, 'name'),
|
||||
'icon' => array_get($config, 'icon', 'icon-square-o'),
|
||||
'description' => array_get($config, 'description'),
|
||||
'fields' => array_get($config, 'fields')
|
||||
];
|
||||
}
|
||||
|
||||
$this->groupDefinitions = $palette;
|
||||
$this->useGroups = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a field group code from its index.
|
||||
* @param $index int
|
||||
* @return string
|
||||
*/
|
||||
public function getGroupCodeFromIndex($index)
|
||||
{
|
||||
return array_get($this->indexMeta, $index.'.groupCode');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the group title from its unique code.
|
||||
* @param $groupCode string
|
||||
* @return string
|
||||
*/
|
||||
public function getGroupTitle($groupCode)
|
||||
{
|
||||
return array_get($this->groupDefinitions, $groupCode.'.name');
|
||||
}
|
||||
}
|
||||
315
modules/backend/formwidgets/RichEditor.php
Normal file
315
modules/backend/formwidgets/RichEditor.php
Normal file
@@ -0,0 +1,315 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Backend\Facades\Backend;
|
||||
use Backend\Facades\BackendAuth;
|
||||
use Backend\Models\EditorSetting;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\Facades\Lang;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
use Winter\Storm\Support\Facades\Config;
|
||||
use Winter\Storm\Support\Facades\Event;
|
||||
use Winter\Storm\Support\Facades\File;
|
||||
|
||||
/**
|
||||
* Rich Editor
|
||||
* Renders a rich content editor field.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class RichEditor extends FormWidgetBase
|
||||
{
|
||||
use \Backend\Traits\UploadableWidget;
|
||||
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var boolean Determines whether content has HEAD and HTML tags.
|
||||
*/
|
||||
public $fullPage = false;
|
||||
|
||||
/**
|
||||
* @var boolean Determines whether content has HEAD and HTML tags.
|
||||
*/
|
||||
public $toolbarButtons;
|
||||
|
||||
/**
|
||||
* @var boolean If true, the editor is set to read-only mode
|
||||
*/
|
||||
public $readOnly = false;
|
||||
|
||||
/**
|
||||
* @var string|null Path in the Media Library where uploaded files should be stored. If null it will be pulled from Request::input('path');
|
||||
*/
|
||||
public $uploadPath = '/uploaded-files';
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'richeditor';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
if ($this->formField->disabled) {
|
||||
$this->readOnly = true;
|
||||
}
|
||||
|
||||
$this->fillFromConfig([
|
||||
'fullPage',
|
||||
'readOnly',
|
||||
'toolbarButtons',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('richeditor');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the list data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['field'] = $this->formField;
|
||||
$this->vars['editorLang'] = $this->getValidEditorLang();
|
||||
$this->vars['fullPage'] = $this->fullPage;
|
||||
$this->vars['stretch'] = $this->formField->stretch;
|
||||
$this->vars['size'] = $this->formField->size;
|
||||
$this->vars['readOnly'] = $this->readOnly;
|
||||
$this->vars['name'] = $this->getFieldName();
|
||||
$this->vars['value'] = $this->getLoadValue();
|
||||
$this->vars['toolbarButtons'] = $this->evalToolbarButtons();
|
||||
$this->vars['useMediaManager'] = BackendAuth::getUser()->hasAccess('media.manage_media');
|
||||
|
||||
$this->vars['globalToolbarButtons'] = EditorSetting::getConfigured('html_toolbar_buttons');
|
||||
$this->vars['allowEmptyTags'] = EditorSetting::getConfigured('html_allow_empty_tags');
|
||||
$this->vars['allowTags'] = EditorSetting::getConfigured('html_allow_tags');
|
||||
$this->vars['allowAttributes'] = EditorSetting::getConfigured('html_allow_attributes');
|
||||
$this->vars['noWrapTags'] = EditorSetting::getConfigured('html_no_wrap_tags');
|
||||
$this->vars['removeTags'] = EditorSetting::getConfigured('html_remove_tags');
|
||||
$this->vars['lineBreakerTags'] = EditorSetting::getConfigured('html_line_breaker_tags');
|
||||
|
||||
$this->vars['imageStyles'] = EditorSetting::getConfiguredStyles('html_style_image');
|
||||
$this->vars['linkStyles'] = EditorSetting::getConfiguredStyles('html_style_link');
|
||||
$this->vars['paragraphStyles'] = EditorSetting::getConfiguredStyles('html_style_paragraph');
|
||||
$this->vars['paragraphFormats'] = EditorSetting::getConfiguredFormats('html_paragraph_formats');
|
||||
$this->vars['tableStyles'] = EditorSetting::getConfiguredStyles('html_style_table');
|
||||
$this->vars['tableCellStyles'] = EditorSetting::getConfiguredStyles('html_style_table_cell');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the toolbar buttons to use based on config.
|
||||
* @return string
|
||||
*/
|
||||
protected function evalToolbarButtons()
|
||||
{
|
||||
$buttons = $this->toolbarButtons;
|
||||
|
||||
if (is_string($buttons)) {
|
||||
$buttons = array_map(function ($button) {
|
||||
return strlen($button) ? $button : '|';
|
||||
}, explode('|', $buttons));
|
||||
}
|
||||
|
||||
return $buttons;
|
||||
}
|
||||
|
||||
public function onLoadPageLinksForm()
|
||||
{
|
||||
$this->vars['links'] = $this->getPageLinksArray();
|
||||
return $this->makePartial('page_links_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/richeditor.css', 'core');
|
||||
$this->addJs('js/build-min.js', 'core');
|
||||
|
||||
if (Config::get('develop.decompileBackendAssets', false)) {
|
||||
$scripts = Backend::decompileAsset($this->getAssetPath('js/build-plugins.js'));
|
||||
foreach ($scripts as $script) {
|
||||
$this->addJs($script, 'core');
|
||||
}
|
||||
} else {
|
||||
$this->addJs('js/build-plugins-min.js', 'core');
|
||||
}
|
||||
|
||||
$this->addJs('/modules/backend/assets/vendor/ace-codeeditor/build-min.js', 'core');
|
||||
|
||||
if ($lang = $this->getValidEditorLang()) {
|
||||
$this->addJs('vendor/froala/js/languages/'.$lang.'.js', 'core');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a valid language code for Redactor.
|
||||
* @return string|mixed
|
||||
*/
|
||||
protected function getValidEditorLang()
|
||||
{
|
||||
$locale = App::getLocale();
|
||||
|
||||
// English is baked in
|
||||
if ($locale == 'en') {
|
||||
return null;
|
||||
}
|
||||
|
||||
$locale = str_replace('-', '_', strtolower($locale));
|
||||
$path = base_path('modules/backend/formwidgets/richeditor/assets/vendor/froala/js/languages/'.$locale.'.js');
|
||||
|
||||
return File::exists($path) ? $locale : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of registered page link types.
|
||||
* This is reserved functionality for separating the links by type.
|
||||
* @return array Returns an array of registered page link types
|
||||
*/
|
||||
protected function getPageLinkTypes()
|
||||
{
|
||||
$result = [];
|
||||
|
||||
/**
|
||||
* @event backend.richeditor.listTypes
|
||||
* Register additional "page link types" to the RichEditor FormWidget
|
||||
*
|
||||
* Example usage:
|
||||
*
|
||||
* Event::listen('backend.richeditor.listTypes', function () {
|
||||
* return [
|
||||
* 'my-identifier' => 'author.plugin::lang.richeditor.link_types.my_identifier',
|
||||
* ];
|
||||
* });
|
||||
*
|
||||
*/
|
||||
$apiResult = Event::fire('backend.richeditor.listTypes');
|
||||
if (is_array($apiResult)) {
|
||||
foreach ($apiResult as $typeList) {
|
||||
if (!is_array($typeList)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($typeList as $typeCode => $typeName) {
|
||||
$result[$typeCode] = $typeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function getPageLinks($type)
|
||||
{
|
||||
$result = [];
|
||||
|
||||
/**
|
||||
* @event backend.richeditor.getTypeInfo
|
||||
* Register additional "page link types" to the RichEditor FormWidget
|
||||
*
|
||||
* Example usage:
|
||||
*
|
||||
* Event::listen('backend.richeditor.getTypeInfo', function ($type) {
|
||||
* if ($type === 'my-identifier') {
|
||||
* return [
|
||||
* 'https://example.com/page1' => 'Page 1',
|
||||
* 'https://example.com/parent-page' => [
|
||||
* 'title' => 'Parent Page',
|
||||
* 'links' => [
|
||||
* 'https://example.com/child-page' => 'Child Page',
|
||||
* ],
|
||||
* ],
|
||||
* ];
|
||||
* }
|
||||
* });
|
||||
*
|
||||
*/
|
||||
$apiResult = Event::fire('backend.richeditor.getTypeInfo', [$type]);
|
||||
if (is_array($apiResult)) {
|
||||
foreach ($apiResult as $typeInfo) {
|
||||
if (!is_array($typeInfo)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($typeInfo as $name => $value) {
|
||||
$result[$name] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a single collection of available page links.
|
||||
* This implementation has room to place links under
|
||||
* different groups based on the link type.
|
||||
* @return array
|
||||
*/
|
||||
protected function getPageLinksArray()
|
||||
{
|
||||
$links = [];
|
||||
$types = $this->getPageLinkTypes();
|
||||
|
||||
$links[] = ['name' => Lang::get('backend::lang.pagelist.select_page'), 'url' => false];
|
||||
|
||||
$iterator = function ($links, $level = 0) use (&$iterator) {
|
||||
$result = [];
|
||||
|
||||
foreach ($links as $linkUrl => $link) {
|
||||
/*
|
||||
* Remove scheme and host from URL
|
||||
*/
|
||||
$baseUrl = Request::getSchemeAndHttpHost();
|
||||
if (strpos($linkUrl, $baseUrl) === 0) {
|
||||
$linkUrl = substr($linkUrl, strlen($baseUrl));
|
||||
}
|
||||
|
||||
/*
|
||||
* Root page fallback.
|
||||
*/
|
||||
if (strlen($linkUrl) === 0) {
|
||||
$linkUrl = '/';
|
||||
}
|
||||
|
||||
$linkName = str_repeat(' ', $level * 4);
|
||||
$linkName .= is_array($link) ? array_get($link, 'title', '') : $link;
|
||||
$result[] = ['name' => $linkName, 'url' => $linkUrl];
|
||||
|
||||
if (is_array($link)) {
|
||||
$result = array_merge(
|
||||
$result,
|
||||
$iterator(array_get($link, 'links', []), $level + 1)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
};
|
||||
|
||||
foreach ($types as $typeCode => $typeName) {
|
||||
$links = array_merge($links, $iterator($this->getPageLinks($typeCode)));
|
||||
}
|
||||
|
||||
return $links;
|
||||
}
|
||||
}
|
||||
116
modules/backend/formwidgets/Sensitive.php
Normal file
116
modules/backend/formwidgets/Sensitive.php
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
|
||||
/**
|
||||
* Sensitive widget.
|
||||
*
|
||||
* Renders a password field that can be optionally made visible
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
*/
|
||||
class Sensitive extends FormWidgetBase
|
||||
{
|
||||
/**
|
||||
* @var bool If true, the sensitive field cannot be edited, but can be toggled.
|
||||
*/
|
||||
public $readOnly = false;
|
||||
|
||||
/**
|
||||
* @var bool If true, the sensitive field is disabled.
|
||||
*/
|
||||
public $disabled = false;
|
||||
|
||||
/**
|
||||
* @var bool If true, a button will be available to copy the value.
|
||||
*/
|
||||
public $allowCopy = false;
|
||||
|
||||
/**
|
||||
* @var string The string that will be used as a placeholder for an unrevealed sensitive value.
|
||||
*/
|
||||
public $hiddenPlaceholder = '__hidden__';
|
||||
|
||||
/**
|
||||
* @var bool If true, the sensitive input will be hidden if the user changes to another tab in their browser.
|
||||
*/
|
||||
public $hideOnTabChange = true;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'sensitive';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'readOnly',
|
||||
'disabled',
|
||||
'allowCopy',
|
||||
'hiddenPlaceholder',
|
||||
'hideOnTabChange',
|
||||
]);
|
||||
|
||||
if ($this->formField->disabled || $this->formField->readOnly) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
|
||||
return $this->makePartial('sensitive');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the view data for the widget partial.
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['readOnly'] = $this->readOnly;
|
||||
$this->vars['disabled'] = $this->disabled;
|
||||
$this->vars['hasValue'] = !empty($this->getLoadValue());
|
||||
$this->vars['allowCopy'] = $this->allowCopy;
|
||||
$this->vars['hiddenPlaceholder'] = $this->hiddenPlaceholder;
|
||||
$this->vars['hideOnTabChange'] = $this->hideOnTabChange;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reveals the value of a hidden, unmodified sensitive field.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function onShowValue()
|
||||
{
|
||||
return [
|
||||
'value' => $this->getLoadValue()
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if ($value === $this->hiddenPlaceholder) {
|
||||
$value = $this->getLoadValue();
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addJs('js/dist/sensitive.js', 'core');
|
||||
}
|
||||
}
|
||||
242
modules/backend/formwidgets/TagList.php
Normal file
242
modules/backend/formwidgets/TagList.php
Normal file
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation as RelationBase;
|
||||
use Winter\Storm\Database\Relations\BelongsToMany;
|
||||
use Winter\Storm\Database\Relations\MorphToMany;
|
||||
|
||||
/**
|
||||
* Tag List Form Widget
|
||||
*/
|
||||
class TagList extends FormWidgetBase
|
||||
{
|
||||
use \Backend\Traits\FormModelWidget;
|
||||
|
||||
const MODE_ARRAY = 'array';
|
||||
const MODE_STRING = 'string';
|
||||
const MODE_RELATION = 'relation';
|
||||
|
||||
//
|
||||
// Configurable properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @var string Tag separator: space, comma.
|
||||
*/
|
||||
public $separator = 'comma';
|
||||
|
||||
/**
|
||||
* @var bool Allows custom tags to be entered manually by the user.
|
||||
*/
|
||||
public $customTags = true;
|
||||
|
||||
/**
|
||||
* @var mixed Predefined options settings. Set to true to get from model.
|
||||
*/
|
||||
public $options;
|
||||
|
||||
/**
|
||||
* @var string Mode for the return value. Values: string, array, relation.
|
||||
*/
|
||||
public $mode = 'string';
|
||||
|
||||
/**
|
||||
* @var string If mode is relation, model column to use for the name reference.
|
||||
*/
|
||||
public $nameFrom = 'name';
|
||||
|
||||
/**
|
||||
* @var bool Use the key instead of value for saving and reading data.
|
||||
*/
|
||||
public $useKey = false;
|
||||
|
||||
/**
|
||||
* @var string Placeholder for empty TagList widget
|
||||
*/
|
||||
public $placeholder = '';
|
||||
|
||||
//
|
||||
// Object properties
|
||||
//
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = 'taglist';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->fillFromConfig([
|
||||
'separator',
|
||||
'customTags',
|
||||
'options',
|
||||
'mode',
|
||||
'nameFrom',
|
||||
'useKey',
|
||||
'placeholder'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
|
||||
return $this->makePartial('taglist');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the form widget view data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['placeholder'] = $this->placeholder;
|
||||
$this->vars['useKey'] = $this->useKey;
|
||||
$this->vars['field'] = $this->formField;
|
||||
$this->vars['fieldOptions'] = $this->getFieldOptions();
|
||||
$this->vars['selectedValues'] = $this->getLoadValue();
|
||||
$this->vars['customSeparators'] = $this->getCustomSeparators();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
if (!is_array($value)) {
|
||||
$value = [$value];
|
||||
}
|
||||
|
||||
$value = array_values(array_filter($value));
|
||||
|
||||
if ($this->mode === static::MODE_RELATION) {
|
||||
return $this->hydrateRelationSaveValue($value);
|
||||
}
|
||||
|
||||
if ($this->mode === static::MODE_STRING) {
|
||||
return implode($this->getSeparatorCharacter(), $value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array suitable for saving against a relation (array of keys).
|
||||
* This method also creates non-existent tags.
|
||||
*/
|
||||
protected function hydrateRelationSaveValue(array $names): ?array
|
||||
{
|
||||
$relation = $this->getRelationObject();
|
||||
$relationModel = $this->getRelationModel();
|
||||
|
||||
$keyName = $relationModel->getKeyName();
|
||||
$pivot = in_array(get_class($relation), [BelongsToMany::class, MorphToMany::class]);
|
||||
|
||||
if ($pivot) {
|
||||
$existingTags = $relationModel->whereIn($this->nameFrom, $names)->lists($this->nameFrom, $keyName);
|
||||
} else {
|
||||
$existingTags = $relation->lists($this->nameFrom, $keyName);
|
||||
}
|
||||
|
||||
$newTags = $this->customTags ? array_diff($names, $existingTags) : [];
|
||||
$deletedTags = $this->customTags ? array_diff($existingTags, $names) : [];
|
||||
|
||||
foreach ($newTags as $newTag) {
|
||||
if ($pivot) {
|
||||
$newModel = new $relationModel;
|
||||
$newModel->{$this->nameFrom} = $newTag;
|
||||
$newModel->save();
|
||||
} else {
|
||||
$newModel = $relation->create([$this->nameFrom => $newTag]);
|
||||
}
|
||||
$existingTags[$newModel->getKey()] = $newTag;
|
||||
}
|
||||
|
||||
if (!$pivot && $deletedTags) {
|
||||
$deletedKeys = array_keys($deletedTags);
|
||||
$relation->whereIn($keyName, $deletedKeys)->delete();
|
||||
foreach ($deletedTags as $id) {
|
||||
unset($existingTags[$id]);
|
||||
}
|
||||
}
|
||||
|
||||
return array_keys($existingTags);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getLoadValue()
|
||||
{
|
||||
$value = parent::getLoadValue();
|
||||
|
||||
if ($this->mode === static::MODE_RELATION) {
|
||||
return $this->getRelationObject()->lists($this->nameFrom);
|
||||
}
|
||||
|
||||
return $this->mode === static::MODE_STRING
|
||||
? explode($this->getSeparatorCharacter(), $value)
|
||||
: $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns defined field options, or from the relation if available.
|
||||
* @return array
|
||||
*/
|
||||
public function getFieldOptions()
|
||||
{
|
||||
$options = $this->formField->options();
|
||||
|
||||
if (!$options && $this->mode === static::MODE_RELATION) {
|
||||
$options = RelationBase::noConstraints(function () {
|
||||
$query = $this->getRelationObject()->newQuery();
|
||||
|
||||
// Even though "no constraints" is applied, belongsToMany constrains the query
|
||||
// by joining its pivot table. Remove all joins from the query.
|
||||
$query->getQuery()->getQuery()->joins = [];
|
||||
|
||||
return $query->lists($this->nameFrom);
|
||||
});
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns character(s) to use for separating keywords.
|
||||
* @return mixed
|
||||
*/
|
||||
protected function getCustomSeparators()
|
||||
{
|
||||
if (!$this->customTags) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$separators = [];
|
||||
|
||||
$separators[] = $this->getSeparatorCharacter();
|
||||
|
||||
return implode('|', $separators);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the character word to the singular character.
|
||||
* @return string
|
||||
*/
|
||||
protected function getSeparatorCharacter()
|
||||
{
|
||||
switch (strtolower($this->separator)) {
|
||||
case 'comma':
|
||||
return ',';
|
||||
case 'space':
|
||||
return ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
586
modules/backend/formwidgets/codeeditor/README.md
Normal file
586
modules/backend/formwidgets/codeeditor/README.md
Normal file
@@ -0,0 +1,586 @@
|
||||
# Monaco Code Editor for Winter CMS
|
||||
|
||||
This is the Monaco Editor integration for Winter CMS Backend, replacing the legacy Ace Editor with Microsoft's Monaco Editor (the same editor that powers VS Code).
|
||||
|
||||
## Overview
|
||||
|
||||
**Monaco Editor** provides a rich, modern code editing experience with:
|
||||
- IntelliSense (code completion)
|
||||
- Syntax highlighting for 15+ languages
|
||||
- Advanced find/replace with regex support
|
||||
- Multi-cursor editing
|
||||
- Code folding
|
||||
- Bracket matching and colorization
|
||||
- Minimap overview
|
||||
- Color picker for CSS colors
|
||||
- And many more VS Code features
|
||||
|
||||
## Features
|
||||
|
||||
### Supported Languages (15)
|
||||
|
||||
1. **TypeScript** - Full TypeScript support with type checking
|
||||
2. **JavaScript** - Modern ES6+ support
|
||||
3. **CSS** - Including CSS3 properties
|
||||
4. **JSON** - With schema validation
|
||||
5. **HTML** - HTML5 support
|
||||
6. **INI** - Configuration files
|
||||
7. **LESS** - CSS preprocessor
|
||||
8. **Markdown** - Rich markdown editing
|
||||
9. **MySQL** - SQL syntax highlighting
|
||||
10. **PHP** - Full PHP support
|
||||
11. **SCSS** - Sass CSS preprocessor
|
||||
12. **Twig** - Template engine syntax
|
||||
13. **XML** - Markup language support
|
||||
14. **YAML** - Configuration file support
|
||||
|
||||
### Monaco Features (20+)
|
||||
|
||||
Enabled features include:
|
||||
- Anchor select
|
||||
- Bracket matching
|
||||
- Caret operations
|
||||
- Clipboard operations
|
||||
- Code lens
|
||||
- Color picker
|
||||
- Comment toggling
|
||||
- Context menu
|
||||
- Cursor undo/redo
|
||||
- Find and replace
|
||||
- Code folding
|
||||
- Go to symbol
|
||||
- Hover information
|
||||
- In-place replace
|
||||
- Indentation
|
||||
- Inline hints
|
||||
- Links
|
||||
- Multi-cursor editing
|
||||
- Parameter hints
|
||||
- Rename symbol
|
||||
- Smart select
|
||||
- Snippets
|
||||
- Suggest (autocomplete)
|
||||
- Word highlighter
|
||||
- Word operations
|
||||
|
||||
### Themes (35+)
|
||||
|
||||
Includes legacy tmTheme themes plus modern JSON themes
|
||||
|
||||
### User Preferences
|
||||
|
||||
All editor preferences are configurable from **Backend → Preferences → Code editor**:
|
||||
|
||||
**Appearance:**
|
||||
- Font size (default: 12px)
|
||||
- Theme selection
|
||||
- Show/hide line numbers (gutter)
|
||||
- Show/hide invisibles (whitespace)
|
||||
- Highlight active line
|
||||
- Show minimap
|
||||
- Bracket colorization
|
||||
- Color picker for CSS
|
||||
|
||||
**Behavior:**
|
||||
- Tab size (default: 4 spaces)
|
||||
- Use soft tabs (spaces) vs hard tabs
|
||||
- Word wrap
|
||||
- Auto-closing brackets/quotes
|
||||
- Code folding
|
||||
- Indent guides
|
||||
- Print margin
|
||||
|
||||
All preferences persist across sessions and are stored per-user.
|
||||
|
||||
## Editor Architecture
|
||||
|
||||
Winter CMS uses a **dual-editor architecture** to optimize for different use cases:
|
||||
|
||||
### Monaco Editor (this FormWidget)
|
||||
**Used by:** CodeEditor FormWidget
|
||||
**Location:** `/modules/backend/formwidgets/codeeditor/`
|
||||
**Purpose:** Advanced code editing with IntelliSense, syntax highlighting, and modern IDE features
|
||||
**Bundle Size:** ~15 MB gzipped (main bundle + workers)
|
||||
**Best for:** Writing PHP, JavaScript, CSS, YAML, and other code files
|
||||
|
||||
### Ace Editor (preserved)
|
||||
**Used by:** RichEditor and MarkdownEditor FormWidgets
|
||||
**Location:** `/modules/backend/assets/vendor/ace-codeeditor/`
|
||||
**Purpose:** HTML source code editing within WYSIWYG editors
|
||||
**Bundle Size:** ~500 KB (significantly lighter)
|
||||
**Best for:** Viewing/editing raw HTML in rich text contexts
|
||||
|
||||
### Why Both?
|
||||
|
||||
**Monaco for CodeEditor:**
|
||||
- Full IntelliSense and code completion
|
||||
- Advanced refactoring tools
|
||||
- Multi-cursor editing
|
||||
- Rich language support
|
||||
- Worth the bundle size for dedicated code editing
|
||||
|
||||
**Ace for RichEditor/MarkdownEditor:**
|
||||
- Users rarely need advanced IDE features for HTML source view
|
||||
- Lighter bundle improves page load performance
|
||||
- Sufficient for basic HTML editing needs
|
||||
- Reduces total application bundle by keeping WYSIWYG tools lean
|
||||
|
||||
This architecture balances modern features where they matter most (code editing) with performance optimization for general-purpose rich text editing.
|
||||
|
||||
## Technical Details
|
||||
|
||||
### Architecture
|
||||
|
||||
```text
|
||||
modules/backend/formwidgets/codeeditor/
|
||||
├── assets/
|
||||
│ ├── css/
|
||||
│ │ └── codeeditor.css - Compiled styles
|
||||
│ ├── fonts/
|
||||
│ │ └── codicon.ttf - Monaco icons font
|
||||
│ ├── js/
|
||||
│ │ ├── codeeditor.js - Main Monaco integration
|
||||
│ │ └── build/
|
||||
│ │ ├── codeeditor.bundle.js - Main bundle (19 MB)
|
||||
│ │ ├── css.worker.js - CSS language worker
|
||||
│ │ ├── editor.worker.js - Base editor worker
|
||||
│ │ ├── html.worker.js - HTML language worker
|
||||
│ │ ├── json.worker.js - JSON language worker
|
||||
│ │ ├── ts.worker.js - TypeScript worker
|
||||
│ │ └── [language-chunks] - 15 language modules
|
||||
│ ├── less/
|
||||
│ │ └── codeeditor.less - Source styles
|
||||
│ ├── themes/
|
||||
│ │ ├── [34 .tmTheme files] - Legacy TextMate themes
|
||||
│ │ ├── one-dark-pro.json - Modern JSON theme
|
||||
│ │ └── winter.json - Modern JSON theme
|
||||
│ ├── winter.mix.js - Laravel Mix build configuration
|
||||
│ └── package.json - NPM dependencies (in parent)
|
||||
├── partials/
|
||||
│ └── codeeditor.htm - Widget template
|
||||
└── CodeEditor.php - FormWidget class
|
||||
```
|
||||
|
||||
### Build System
|
||||
|
||||
**Current:** Laravel Mix 6 with Webpack 5
|
||||
|
||||
#### Build Command
|
||||
```bash
|
||||
php artisan mix:compile --package=module-backend.formwidgets.codeeditor -f
|
||||
```
|
||||
|
||||
#### Build Configuration
|
||||
|
||||
See `assets/winter.mix.js`:
|
||||
- Uses `monaco-editor-webpack-plugin` for proper worker splitting
|
||||
- Polyfills for browser compatibility (> 0.5%, last 2 versions, Firefox ESR)
|
||||
- Removes inline codicon font CSS (post-build hook)
|
||||
- Minification and terser optimization
|
||||
|
||||
### Web Workers
|
||||
|
||||
Monaco Editor uses Web Workers for language services:
|
||||
|
||||
| Worker | Size | Purpose |
|
||||
|--------|------|---------|
|
||||
| editor.worker.js | 1.6 MB | Base editor operations |
|
||||
| ts.worker.js | 22 MB | TypeScript/JavaScript IntelliSense |
|
||||
| css.worker.js | 4.7 MB | CSS validation and completion |
|
||||
| html.worker.js | 3.3 MB | HTML validation |
|
||||
| json.worker.js | 2.2 MB | JSON schema validation |
|
||||
|
||||
Workers are loaded asynchronously and run in separate threads for better performance.
|
||||
|
||||
### Theme System
|
||||
|
||||
Themes are loaded directly as static assets via HTTP fetch (no PHP handler required). Theme preference values include the file extension (e.g., `twilight.tmTheme`, `one-dark-pro.json`).
|
||||
|
||||
#### Supported Formats
|
||||
|
||||
**1. TextMate Themes (.tmTheme)**
|
||||
Legacy XML-based themes. Converted to Monaco format at runtime using `fast-plist` library.
|
||||
|
||||
**2. JSON Themes (.json)**
|
||||
Modern VS Code theme format. Parsed and mapped to Monaco's theme structure.
|
||||
|
||||
```javascript
|
||||
// codeeditor.js - Themes loaded via static fetch
|
||||
async fetchTheme(themeName) {
|
||||
// Theme name includes extension (e.g., "twilight.tmTheme", "one-dark-pro.json")
|
||||
// Legacy values without extension default to .tmTheme
|
||||
const basePath = window.Snowboard.url().asset('/modules/backend/formwidgets/codeeditor/assets/themes/');
|
||||
const response = await fetch(`${basePath}${themeName}`);
|
||||
// Format determined from file extension
|
||||
}
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Usage
|
||||
|
||||
```yaml
|
||||
# fields.yaml
|
||||
code:
|
||||
type: codeeditor
|
||||
size: giant
|
||||
language: php
|
||||
```
|
||||
|
||||
### Available Options
|
||||
|
||||
```yaml
|
||||
code:
|
||||
type: codeeditor
|
||||
# Editor size
|
||||
size: tiny|small|large|huge|giant # Default: large
|
||||
|
||||
# Programming language
|
||||
language: php|javascript|css|html|twig|yaml|etc # Default: php
|
||||
|
||||
# Theme (overrides user preference)
|
||||
theme: twilight|monokai|github|one-dark-pro|etc
|
||||
|
||||
# Line numbers
|
||||
showGutter: true|false # Default: true
|
||||
|
||||
# Word wrapping
|
||||
wordWrap: true|false # Default: true
|
||||
|
||||
# Code folding
|
||||
codeFolding: true|false # Default: true
|
||||
|
||||
# Auto-closing brackets
|
||||
autoClosing: true|false # Default: true
|
||||
|
||||
# Soft tabs (spaces)
|
||||
useSoftTabs: true|false # Default: true
|
||||
tabSize: 2|4|8 # Default: 4
|
||||
|
||||
# Font size (px)
|
||||
fontSize: 10|12|14|16|18 # Default: 12
|
||||
|
||||
# Read-only mode
|
||||
readOnly: true|false # Default: false
|
||||
disabled: true|false # Sets readOnly
|
||||
|
||||
# Display options
|
||||
showInvisibles: true|false # Default: false
|
||||
highlightActiveLine: true|false # Default: true
|
||||
displayIndentGuides: true|false # Default: true
|
||||
showPrintMargin: true|false # Default: false
|
||||
showMinimap: true|false # Default: true
|
||||
bracketColors: true|false # Default: false
|
||||
showColors: true|false # Default: true (CSS color picker)
|
||||
```
|
||||
|
||||
### JavaScript API
|
||||
|
||||
```javascript
|
||||
// Get editor instance
|
||||
const $editor = $('#my-editor');
|
||||
const wrapper = $editor.data('oc.codeeditor');
|
||||
|
||||
// Access Monaco instance directly
|
||||
const monacoEditor = wrapper.editor;
|
||||
|
||||
// Get/set content (via wrapper)
|
||||
const code = wrapper.getValue();
|
||||
wrapper.setValue('function test() {}');
|
||||
|
||||
// Get/set language
|
||||
wrapper.setLanguage('javascript');
|
||||
|
||||
// Change theme
|
||||
wrapper.setTheme('one-dark-pro');
|
||||
|
||||
// Insert at cursor
|
||||
wrapper.insert('code here');
|
||||
|
||||
// Get cursor position
|
||||
const position = wrapper.getPosition(); // { lineNumber: 1, column: 1 }
|
||||
|
||||
// Fullscreen
|
||||
wrapper.enterFullscreen();
|
||||
wrapper.exitFullscreen();
|
||||
```
|
||||
|
||||
### Migrating from ACE to Monaco API
|
||||
|
||||
Winter CMS has migrated from ACE Editor to Monaco Editor. While backward compatibility is maintained for accessing the editor instance via jQuery `.data('oc.codeEditor')`, direct ACE API calls need to be updated.
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
**ACE's Session API is Removed:**
|
||||
- `editor.getSession()` → No longer available
|
||||
- ACE used a separate "session" object for document operations
|
||||
- Monaco combines session and model into a single API
|
||||
|
||||
**Position Indexing Changed:**
|
||||
- ACE uses **0-indexed** positions (rows and columns start at 0)
|
||||
- Monaco uses **1-indexed** positions (lines and columns start at 1)
|
||||
- Example: ACE row 5 = Monaco line 6, ACE column 0 = Monaco column 1
|
||||
|
||||
**Annotations Replaced with Markers:**
|
||||
- ACE's `setAnnotations()` → Monaco's `monaco.editor.setModelMarkers()`
|
||||
- Different data structure and API
|
||||
|
||||
#### Quick Migration Guide
|
||||
|
||||
**Getting/Setting Editor Value:**
|
||||
|
||||
```javascript
|
||||
// ❌ OLD (ACE API - Deprecated)
|
||||
const editor = $('[data-control=codeeditor]').data('oc.codeEditor').editor;
|
||||
const value = editor.getSession().getValue();
|
||||
editor.getSession().setValue('new value');
|
||||
|
||||
// ✅ NEW (Recommended - Use Wrapper)
|
||||
const wrapper = $('[data-control=codeeditor]').data('oc.codeEditor');
|
||||
const value = wrapper.getValue();
|
||||
wrapper.setValue('new value');
|
||||
|
||||
// ✅ ALTERNATIVE (Direct Monaco API)
|
||||
const monacoEditor = wrapper.editor;
|
||||
const value = monacoEditor.getModel().getValue();
|
||||
monacoEditor.getModel().setValue('new value');
|
||||
```
|
||||
|
||||
**Inserting Text at Cursor:**
|
||||
|
||||
```javascript
|
||||
// ❌ OLD (ACE API)
|
||||
editor.insert('text');
|
||||
|
||||
// ✅ NEW (Wrapper provides this method)
|
||||
wrapper.insert('text');
|
||||
```
|
||||
|
||||
**Working with Annotations/Markers:**
|
||||
|
||||
```javascript
|
||||
// ❌ OLD (ACE Annotations)
|
||||
editor.getSession().setAnnotations([
|
||||
{ row: 5, column: 0, text: 'Warning message', type: 'warning' }
|
||||
]);
|
||||
|
||||
// Clear annotations
|
||||
editor.getSession().setAnnotations([]);
|
||||
|
||||
// ✅ NEW (Monaco Wrapper Method - Recommended)
|
||||
wrapper.setMarkers('sourceId', [
|
||||
{
|
||||
startLineNumber: 6, // ACE row 5 = Monaco line 6 (1-indexed!)
|
||||
startColumn: 1, // ACE column 0 = Monaco column 1
|
||||
endLineNumber: 6,
|
||||
endColumn: Number.MAX_VALUE, // End of line
|
||||
message: 'Warning message',
|
||||
severity: wrapper.monaco.MarkerSeverity.Warning // Info, Warning, or Error
|
||||
}
|
||||
]);
|
||||
|
||||
// Clear markers
|
||||
wrapper.setMarkers('sourceId', []);
|
||||
```
|
||||
|
||||
**Getting Cursor Position:**
|
||||
|
||||
```javascript
|
||||
// ❌ OLD (ACE API)
|
||||
const cursor = editor.getCursorPosition(); // { row: 5, column: 10 } (0-indexed)
|
||||
|
||||
// ✅ NEW (Wrapper)
|
||||
const position = wrapper.getPosition(); // { lineNumber: 6, column: 11 } (1-indexed)
|
||||
|
||||
// ✅ ALTERNATIVE (Direct Monaco)
|
||||
const position = wrapper.editor.getPosition();
|
||||
```
|
||||
|
||||
**Getting Selection:**
|
||||
|
||||
```javascript
|
||||
// ❌ OLD (ACE API)
|
||||
const range = editor.getSelection().getRange();
|
||||
|
||||
// ✅ NEW (Wrapper)
|
||||
const selection = wrapper.getSelection();
|
||||
|
||||
// ✅ ALTERNATIVE (Direct Monaco)
|
||||
const selection = wrapper.editor.getSelection();
|
||||
```
|
||||
|
||||
#### API Comparison Table
|
||||
|
||||
| Operation | ACE API (Deprecated) | Monaco Wrapper (Recommended) | Direct Monaco API |
|
||||
|-----------|---------------------|------------------------------|-------------------|
|
||||
| Get value | `editor.getSession().getValue()` | `wrapper.getValue()` | `editor.getModel().getValue()` |
|
||||
| Set value | `editor.getSession().setValue(v)` | `wrapper.setValue(v)` | `editor.getModel().setValue(v)` |
|
||||
| Insert text | `editor.insert(text)` | `wrapper.insert(text)` | Complex - use wrapper |
|
||||
| Get position | `editor.getCursorPosition()` | `wrapper.getPosition()` | `editor.getPosition()` |
|
||||
| Get selection | `editor.getSelection()` | `wrapper.getSelection()` | `editor.getSelection()` |
|
||||
| Set annotations | `editor.getSession().setAnnotations()` | `wrapper.setMarkers(id, markers)` | `monaco.editor.setModelMarkers()` |
|
||||
| Focus editor | `editor.focus()` | `wrapper.focus()` | `editor.focus()` |
|
||||
| Set language | N/A | `wrapper.setLanguage(lang)` | Complex - use wrapper |
|
||||
|
||||
#### Migration Checklist for Plugin Developers
|
||||
|
||||
If your plugin interacts with the CodeEditor widget, follow these steps:
|
||||
|
||||
1. **Update Editor Instance Access:**
|
||||
- ✅ Keep: `.data('oc.codeEditor')` - Returns the wrapper
|
||||
- ⚠️ Avoid: `.data('oc.codeEditor').editor` - Returns raw Monaco (advanced use only)
|
||||
|
||||
2. **Replace ACE Session Methods:**
|
||||
- ❌ Remove all: `getSession().getValue()` → ✅ Use: `getValue()`
|
||||
- ❌ Remove all: `getSession().setValue()` → ✅ Use: `setValue()`
|
||||
|
||||
3. **Update Annotations:**
|
||||
- ❌ Remove: `getSession().setAnnotations(annotations)`
|
||||
- ✅ Add: `wrapper.setMarkers(sourceId, markers)`
|
||||
- ⚠️ Remember: Convert 0-indexed row/column to 1-indexed line/column
|
||||
- Use `wrapper.monaco.MarkerSeverity` for severity constants
|
||||
|
||||
4. **Test Thoroughly:**
|
||||
- Verify all editor interactions work
|
||||
- Check that cursor operations use correct indexing
|
||||
- Ensure markers/warnings display correctly
|
||||
|
||||
#### Available Wrapper Methods
|
||||
|
||||
The Monaco Snowboard editor wrapper provides these convenience methods:
|
||||
|
||||
```javascript
|
||||
const wrapper = $('[data-control=codeeditor]').data('oc.codeEditor');
|
||||
|
||||
// Content
|
||||
wrapper.getValue() // Get editor content
|
||||
wrapper.setValue(value) // Set editor content
|
||||
wrapper.insert(text) // Insert at cursor position
|
||||
|
||||
// Position & Selection
|
||||
wrapper.getPosition() // Get cursor position (1-indexed)
|
||||
wrapper.getSelection() // Get selection range
|
||||
|
||||
// Markers (Errors/Warnings/Info with squiggly underlines)
|
||||
wrapper.setMarkers(sourceId, markers) // Set error/warning markers in editor
|
||||
// Example: wrapper.setMarkers('myPlugin', [{ startLineNumber: 5, startColumn: 1,
|
||||
// endLineNumber: 5, endColumn: Number.MAX_VALUE, message: 'Warning',
|
||||
// severity: wrapper.monaco.MarkerSeverity.Warning }])
|
||||
|
||||
// Decorations (Visual highlights WITHOUT error semantics)
|
||||
wrapper.setDecorations(sourceId, decorations) // Set visual highlights (no squiggles)
|
||||
// Example: wrapper.setDecorations('myHighlight', [{ range: new monaco.Range(5, 1, 5, Number.MAX_VALUE),
|
||||
// options: { isWholeLine: true, className: 'myHighlightClass',
|
||||
// linesDecorationsClassName: 'myGutterClass' } }])
|
||||
|
||||
// Configuration
|
||||
wrapper.setLanguage(lang) // Change syntax highlighting language
|
||||
wrapper.setTheme(theme) // Change color theme
|
||||
wrapper.focus() // Focus the editor
|
||||
|
||||
// View
|
||||
wrapper.enterFullscreen() // Enter fullscreen mode
|
||||
wrapper.exitFullscreen() // Exit fullscreen mode
|
||||
wrapper.refresh() // Refresh editor (re-create instance)
|
||||
|
||||
// Direct Access (Advanced)
|
||||
wrapper.editor // Access Monaco editor instance
|
||||
wrapper.getEditor() // Same as wrapper.editor
|
||||
wrapper.getModel() // Get Monaco model
|
||||
wrapper.monaco // Access Monaco namespace (for constants like MarkerSeverity)
|
||||
```
|
||||
|
||||
#### Example: Winter.Builder Plugin Migration
|
||||
|
||||
The Winter.Builder plugin was migrated to use Monaco API. Here's a real example:
|
||||
|
||||
**Before (ACE):**
|
||||
```javascript
|
||||
Localization.prototype.copyStringsFromDone = function(data) {
|
||||
var codeEditor = this.getCodeEditor($masterTabPane);
|
||||
|
||||
// Set value using ACE Session API
|
||||
codeEditor.getSession().setValue(responseData.strings);
|
||||
|
||||
// Set annotations using ACE
|
||||
var annotations = [];
|
||||
for (var i = 0; i < updatedLines.length; i++) {
|
||||
annotations.push({
|
||||
row: updatedLines[i], // 0-indexed
|
||||
column: 0,
|
||||
text: 'New String',
|
||||
type: 'warning'
|
||||
});
|
||||
}
|
||||
codeEditor.getSession().setAnnotations(annotations);
|
||||
}
|
||||
```
|
||||
|
||||
**After (Monaco):**
|
||||
```javascript
|
||||
Localization.prototype.copyStringsFromDone = function(data) {
|
||||
var wrapper = this.getCodeEditor($masterTabPane);
|
||||
|
||||
// Set value using wrapper method
|
||||
wrapper.setValue(responseData.strings);
|
||||
|
||||
// Convert to Monaco decorations (visual highlights without error semantics)
|
||||
var decorations = [];
|
||||
for (var i = 0; i < updatedLines.length; i++) {
|
||||
decorations.push({
|
||||
range: new wrapper.monaco.Range(
|
||||
updatedLines[i] + 1, // Convert to 1-indexed!
|
||||
1, // Start column
|
||||
updatedLines[i] + 1, // End line (same line)
|
||||
Number.MAX_VALUE // End column (end of line)
|
||||
),
|
||||
options: {
|
||||
isWholeLine: true,
|
||||
className: 'builder-new-translation-line', // Background highlight
|
||||
linesDecorationsClassName: 'builder-new-translation-gutter', // Gutter indicator
|
||||
hoverMessage: { value: 'New string or section' } // Tooltip on hover
|
||||
}
|
||||
});
|
||||
}
|
||||
wrapper.setDecorations('builderLocalization', decorations);
|
||||
}
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
### Playwright E2E Tests
|
||||
|
||||
Comprehensive test suite with 55+ tests:
|
||||
|
||||
```bash
|
||||
# Run all tests
|
||||
npm run test:e2e
|
||||
|
||||
# Run with UI
|
||||
npm run test:e2e:ui
|
||||
|
||||
# Run specific test file
|
||||
npx playwright test fullscreen.spec.js
|
||||
|
||||
# Debug tests
|
||||
npm run test:e2e:debug
|
||||
```
|
||||
|
||||
### Test Coverage
|
||||
|
||||
- **Fullscreen functionality** (6 tests)
|
||||
- **Theme loading and switching** (9 tests)
|
||||
- **Language support** (14 tests for all 15 languages)
|
||||
- **Monaco features** (14 tests: find, replace, folding, multi-cursor, etc.)
|
||||
- **Preferences persistence** (12 tests)
|
||||
|
||||
See `tests/e2e/README-TESTING.md` for full testing documentation.
|
||||
|
||||
## Resources
|
||||
|
||||
- **Monaco Editor Documentation:** https://microsoft.github.io/monaco-editor/
|
||||
- **Monaco Editor GitHub:** https://github.com/microsoft/monaco-editor
|
||||
- **VS Code Themes:** https://marketplace.visualstudio.com/search?target=VSCode&category=Themes
|
||||
- **Winter CMS Docs:** https://wintercms.com/docs
|
||||
- **PR #801:** https://github.com/wintercms/winter/pull/801
|
||||
- **Issue #431:** https://github.com/wintercms/winter/issues/431
|
||||
File diff suppressed because one or more lines are too long
BIN
modules/backend/formwidgets/codeeditor/assets/fonts/codicon.ttf
Normal file
BIN
modules/backend/formwidgets/codeeditor/assets/fonts/codicon.ttf
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[114],{8114:function(e,t,n){n.r(t),n.d(t,{conf:function(){return u},language:function(){return b}});var r,i,o=n(9201),a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,m=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of d(t))p.call(e,i)||i===n||a(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},l={};
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/m(l,r=o,"default"),i&&m(i,r,"default");var c=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],u={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${c.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:l.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${c.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:l.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#endregion\\b.*--\x3e")}}},b={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,"metatag","@doctype"],[/<!--/,"comment","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/</,"delimiter"],[/[^<]+/]],doctype:[[/[^>]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[134],{7134:function(e,t,n){n.r(t),n.d(t,{conf:function(){return s},language:function(){return p}});var o,a,i=n(9201),r=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,m=Object.prototype.hasOwnProperty,u=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))m.call(e,a)||a===n||r(e,a,{get:()=>t[a],enumerable:!(o=c(t,a))||o.enumerable});return e},d={};
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/u(d,o=i,"default"),a&&u(a,o,"default");var s={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:d.languages.IndentAction.Indent}}]},p={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[202],{5202:function(e,t,n){n.r(t),n.d(t,{conf:function(){return i},language:function(){return r}});
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/
|
||||
var i={wordPattern:/(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},r={defaultToken:"",tokenPostfix:".less",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",identifierPlus:"-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@nestedJSBegin"},["[ \\t\\r\\n]+",""],{include:"@comments"},{include:"@keyword"},{include:"@strings"},{include:"@numbers"},["[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))","attribute.name","@attribute"],["url(\\-prefix)?\\(",{token:"tag",next:"@urldeclaration"}],["[{}()\\[\\]]","@brackets"],["[,:;]","delimiter"],["#@identifierPlus","tag.id"],["&","tag"],["\\.@identifierPlus(?=\\()","tag.class","@attribute"],["\\.@identifierPlus","tag.class"],["@identifierPlus","tag"],{include:"@operators"},["@(@identifier(?=[:,\\)]))","variable","@attribute"],["@(@identifier)","variable"],["@","key","@atRules"]],nestedJSBegin:[["``","delimiter.backtick"],["`",{token:"delimiter.backtick",next:"@nestedJSEnd",nextEmbedded:"text/javascript"}]],nestedJSEnd:[["`",{token:"delimiter.backtick",next:"@pop",nextEmbedded:"@pop"}]],operators:[["[<>=\\+\\-\\*\\/\\^\\|\\~]","operator"]],keyword:[["(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b","keyword"]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"tag",next:"@pop"}]],attribute:[{include:"@nestedJSBegin"},{include:"@comments"},{include:"@strings"},{include:"@numbers"},{include:"@keyword"},["[a-zA-Z\\-]+(?=\\()","attribute.value","@attribute"],[">","operator","@pop"],["@identifier","attribute.value"],{include:"@operators"},["@(@identifier)","variable"],["[)\\}]","@brackets","@pop"],["[{}()\\[\\]>]","@brackets"],["[;]","delimiter","@pop"],["[,=:]","delimiter"],["\\s",""],[".","attribute.value"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],strings:[['~?"',{token:"string.delimiter",next:"@stringsEndDoubleQuote"}],["~?'",{token:"string.delimiter",next:"@stringsEndQuote"}]],stringsEndDoubleQuote:[['\\\\"',"string"],['"',{token:"string.delimiter",next:"@popall"}],[".","string"]],stringsEndQuote:[["\\\\'","string"],["'",{token:"string.delimiter",next:"@popall"}],[".","string"]],atRules:[{include:"@comments"},{include:"@strings"},["[()]","delimiter"],["[\\{;]","delimiter","@pop"],[".","key"]]}}}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[294],{3294:function(e,t,n){n.r(t),n.d(t,{conf:function(){return d},language:function(){return m}});var o,r,i=n(9201),s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,g=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of a(t))p.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=c(t,r))||o.enumerable});return e},l={};
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/g(l,o=i,"default"),r&&g(r,o,"default");var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:l.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:l.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:l.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:l.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},m={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<","</",">>",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]);
|
||||
@@ -0,0 +1,8 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[326],{1326:function(e,t,n){n.r(t),n.d(t,{conf:function(){return r},language:function(){return i}});
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/
|
||||
var r={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},i={defaultToken:"",tokenPostfix:".css",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,13 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[54,294],{9054:function(e,t,n){n.r(t),n.d(t,{conf:function(){return r},language:function(){return i}});var o=n(3294),r=o.conf,i={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:o.language.operators,symbols:o.language.symbols,escapes:o.language.escapes,digits:o.language.digits,octaldigits:o.language.octaldigits,binarydigits:o.language.binarydigits,hexdigits:o.language.hexdigits,regexpctl:o.language.regexpctl,regexpesc:o.language.regexpesc,tokenizer:o.language.tokenizer};
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/},3294:function(e,t,n){n.r(t),n.d(t,{conf:function(){return d},language:function(){return u}});var o,r,i=n(9201),s=Object.defineProperty,a=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,l=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of c(t))g.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=a(t,r))||o.enumerable});return e},p={};
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/l(p,o=i,"default"),r&&l(r,o,"default");var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:p.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:p.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:p.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:p.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},u={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<","</",">>",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]);
|
||||
@@ -0,0 +1,8 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[70],{3070:function(e,t,n){n.r(t),n.d(t,{conf:function(){return s},language:function(){return o}});
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/
|
||||
var s={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},o={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)(\-|\w)*/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)(\-|\w)*\s*>/,{token:"tag"}],[/<!--/,"comment","@comment"]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,"comment","@pop"],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]],tag:[[/[ \t\r\n]+/,"white"],[/(type)(\s*=\s*)(")([^"]+)(")/,["attribute.name.html","delimiter.html","string.html",{token:"string.html",switchTo:"@tag.$S2.$4"},"string.html"]],[/(type)(\s*=\s*)(')([^']+)(')/,["attribute.name.html","delimiter.html","string.html",{token:"string.html",switchTo:"@tag.$S2.$4"},"string.html"]],[/(\w+)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name.html","delimiter.html","string.html"]],[/\w+/,"attribute.name.html"],[/\/>/,"tag","@pop"],[/>/,{cases:{"$S2==style":{token:"tag",switchTo:"embeddedStyle",nextEmbedded:"text/css"},"$S2==script":{cases:{$S3:{token:"tag",switchTo:"embeddedScript",nextEmbedded:"$S3"},"@default":{token:"tag",switchTo:"embeddedScript",nextEmbedded:"text/javascript"}}},"@default":{token:"tag",next:"@pop"}}}]],embeddedStyle:[[/[^<]+/,""],[/<\/style\s*>/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/</,""]],embeddedScript:[[/[^<]+/,""],[/<\/script\s*>/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/</,""]]}}}}]);
|
||||
@@ -0,0 +1,8 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[726],{9726:function(e,n,s){s.r(n),s.d(n,{conf:function(){return t},language:function(){return o}});
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/
|
||||
var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[910],{4910:function(e,n,t){t.r(n),t.d(n,{conf:function(){return m},language:function(){return b}});var r,o,l=t(9201),a=Object.defineProperty,i=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,s=(e,n,t,r)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let o of c(n))u.call(e,o)||o===t||a(e,o,{get:()=>n[o],enumerable:!(r=i(n,o))||r.enumerable});return e},d={};
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/s(d,r=l,"default"),o&&s(o,r,"default");var m={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:d.languages.IndentAction.Indent}}]},b={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/[^#]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}}}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1727
modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js
Normal file
1727
modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,665 @@
|
||||
@import "../../../../assets/less/core/boot.less";
|
||||
|
||||
.field-codeeditor {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
border: 2px solid @color-form-field-border;
|
||||
.border-radius(@border-radius-base);
|
||||
|
||||
&.editor-focus { border: 2px solid @color-form-field-border-focus; }
|
||||
|
||||
.editor-code {
|
||||
.border-radius(@border-radius-base);
|
||||
}
|
||||
|
||||
&.size-tiny { height: @size-tiny; }
|
||||
&.size-small { height: @size-small; }
|
||||
&.size-large { height: @size-large; }
|
||||
&.size-huge { height: @size-huge; }
|
||||
&.size-giant { height: @size-giant; }
|
||||
|
||||
.editor-container {
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.editor-toolbar {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
height: 24px;
|
||||
font-size: 11px;
|
||||
position: relative;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
padding: 2px 8px;
|
||||
z-index: @zindex-form;
|
||||
background: rgba(0,0,0,.8);
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 9;
|
||||
background: rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
&.is-dark::before {
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
> div {
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
.position {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.actions {
|
||||
.action {
|
||||
margin: -2px 0;
|
||||
padding: 0 5px;
|
||||
font-size: 1.1rem;
|
||||
color: inherit;
|
||||
opacity: 0.4;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
&.active {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
@font-face {
|
||||
font-family: "codicon";
|
||||
font-display: block;
|
||||
src: url("../fonts/codicon.ttf?9d44d5a6cc2c9ad0152755e704fa37ba") format("truetype");
|
||||
}
|
||||
|
||||
.codicon[class*='codicon-'] {
|
||||
font: normal normal normal 16px/1 codicon;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
text-rendering: auto;
|
||||
text-align: center;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
/*---------------------
|
||||
* Modifiers
|
||||
*-------------------*/
|
||||
|
||||
@keyframes codicon-spin {
|
||||
100% {
|
||||
transform:rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.codicon-sync.codicon-modifier-spin,
|
||||
.codicon-loading.codicon-modifier-spin,
|
||||
.codicon-gear.codicon-modifier-spin {
|
||||
/* Use steps to throttle FPS to reduce CPU usage */
|
||||
animation: codicon-spin 1.5s steps(30) infinite;
|
||||
}
|
||||
|
||||
.codicon-modifier-disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.codicon-modifier-hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* custom speed & easing for loading icon */
|
||||
.codicon-loading {
|
||||
animation-duration: 1s !important;
|
||||
animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;
|
||||
}
|
||||
|
||||
/*---------------------
|
||||
* Icons
|
||||
*-------------------*/
|
||||
|
||||
.codicon-add:before { content: "\ea60" }
|
||||
.codicon-plus:before { content: "\ea60" }
|
||||
.codicon-gist-new:before { content: "\ea60" }
|
||||
.codicon-repo-create:before { content: "\ea60" }
|
||||
.codicon-lightbulb:before { content: "\ea61" }
|
||||
.codicon-light-bulb:before { content: "\ea61" }
|
||||
.codicon-repo:before { content: "\ea62" }
|
||||
.codicon-repo-delete:before { content: "\ea62" }
|
||||
.codicon-gist-fork:before { content: "\ea63" }
|
||||
.codicon-repo-forked:before { content: "\ea63" }
|
||||
.codicon-git-pull-request:before { content: "\ea64" }
|
||||
.codicon-git-pull-request-abandoned:before { content: "\ea64" }
|
||||
.codicon-record-keys:before { content: "\ea65" }
|
||||
.codicon-keyboard:before { content: "\ea65" }
|
||||
.codicon-tag:before { content: "\ea66" }
|
||||
.codicon-tag-add:before { content: "\ea66" }
|
||||
.codicon-tag-remove:before { content: "\ea66" }
|
||||
.codicon-person:before { content: "\ea67" }
|
||||
.codicon-person-follow:before { content: "\ea67" }
|
||||
.codicon-person-outline:before { content: "\ea67" }
|
||||
.codicon-person-filled:before { content: "\ea67" }
|
||||
.codicon-git-branch:before { content: "\ea68" }
|
||||
.codicon-git-branch-create:before { content: "\ea68" }
|
||||
.codicon-git-branch-delete:before { content: "\ea68" }
|
||||
.codicon-source-control:before { content: "\ea68" }
|
||||
.codicon-mirror:before { content: "\ea69" }
|
||||
.codicon-mirror-public:before { content: "\ea69" }
|
||||
.codicon-star:before { content: "\ea6a" }
|
||||
.codicon-star-add:before { content: "\ea6a" }
|
||||
.codicon-star-delete:before { content: "\ea6a" }
|
||||
.codicon-star-empty:before { content: "\ea6a" }
|
||||
.codicon-comment:before { content: "\ea6b" }
|
||||
.codicon-comment-add:before { content: "\ea6b" }
|
||||
.codicon-alert:before { content: "\ea6c" }
|
||||
.codicon-warning:before { content: "\ea6c" }
|
||||
.codicon-search:before { content: "\ea6d" }
|
||||
.codicon-search-save:before { content: "\ea6d" }
|
||||
.codicon-log-out:before { content: "\ea6e" }
|
||||
.codicon-sign-out:before { content: "\ea6e" }
|
||||
.codicon-log-in:before { content: "\ea6f" }
|
||||
.codicon-sign-in:before { content: "\ea6f" }
|
||||
.codicon-eye:before { content: "\ea70" }
|
||||
.codicon-eye-unwatch:before { content: "\ea70" }
|
||||
.codicon-eye-watch:before { content: "\ea70" }
|
||||
.codicon-circle-filled:before { content: "\ea71" }
|
||||
.codicon-primitive-dot:before { content: "\ea71" }
|
||||
.codicon-close-dirty:before { content: "\ea71" }
|
||||
.codicon-debug-breakpoint:before { content: "\ea71" }
|
||||
.codicon-debug-breakpoint-disabled:before { content: "\ea71" }
|
||||
.codicon-debug-hint:before { content: "\ea71" }
|
||||
.codicon-terminal-decoration-success:before { content: "\ea71" }
|
||||
.codicon-primitive-square:before { content: "\ea72" }
|
||||
.codicon-edit:before { content: "\ea73" }
|
||||
.codicon-pencil:before { content: "\ea73" }
|
||||
.codicon-info:before { content: "\ea74" }
|
||||
.codicon-issue-opened:before { content: "\ea74" }
|
||||
.codicon-gist-private:before { content: "\ea75" }
|
||||
.codicon-git-fork-private:before { content: "\ea75" }
|
||||
.codicon-lock:before { content: "\ea75" }
|
||||
.codicon-mirror-private:before { content: "\ea75" }
|
||||
.codicon-close:before { content: "\ea76" }
|
||||
.codicon-remove-close:before { content: "\ea76" }
|
||||
.codicon-x:before { content: "\ea76" }
|
||||
.codicon-repo-sync:before { content: "\ea77" }
|
||||
.codicon-sync:before { content: "\ea77" }
|
||||
.codicon-clone:before { content: "\ea78" }
|
||||
.codicon-desktop-download:before { content: "\ea78" }
|
||||
.codicon-beaker:before { content: "\ea79" }
|
||||
.codicon-microscope:before { content: "\ea79" }
|
||||
.codicon-vm:before { content: "\ea7a" }
|
||||
.codicon-device-desktop:before { content: "\ea7a" }
|
||||
.codicon-file:before { content: "\ea7b" }
|
||||
.codicon-file-text:before { content: "\ea7b" }
|
||||
.codicon-more:before { content: "\ea7c" }
|
||||
.codicon-ellipsis:before { content: "\ea7c" }
|
||||
.codicon-kebab-horizontal:before { content: "\ea7c" }
|
||||
.codicon-mail-reply:before { content: "\ea7d" }
|
||||
.codicon-reply:before { content: "\ea7d" }
|
||||
.codicon-organization:before { content: "\ea7e" }
|
||||
.codicon-organization-filled:before { content: "\ea7e" }
|
||||
.codicon-organization-outline:before { content: "\ea7e" }
|
||||
.codicon-new-file:before { content: "\ea7f" }
|
||||
.codicon-file-add:before { content: "\ea7f" }
|
||||
.codicon-new-folder:before { content: "\ea80" }
|
||||
.codicon-file-directory-create:before { content: "\ea80" }
|
||||
.codicon-trash:before { content: "\ea81" }
|
||||
.codicon-trashcan:before { content: "\ea81" }
|
||||
.codicon-history:before { content: "\ea82" }
|
||||
.codicon-clock:before { content: "\ea82" }
|
||||
.codicon-folder:before { content: "\ea83" }
|
||||
.codicon-file-directory:before { content: "\ea83" }
|
||||
.codicon-symbol-folder:before { content: "\ea83" }
|
||||
.codicon-logo-github:before { content: "\ea84" }
|
||||
.codicon-mark-github:before { content: "\ea84" }
|
||||
.codicon-github:before { content: "\ea84" }
|
||||
.codicon-terminal:before { content: "\ea85" }
|
||||
.codicon-console:before { content: "\ea85" }
|
||||
.codicon-repl:before { content: "\ea85" }
|
||||
.codicon-zap:before { content: "\ea86" }
|
||||
.codicon-symbol-event:before { content: "\ea86" }
|
||||
.codicon-error:before { content: "\ea87" }
|
||||
.codicon-stop:before { content: "\ea87" }
|
||||
.codicon-variable:before { content: "\ea88" }
|
||||
.codicon-symbol-variable:before { content: "\ea88" }
|
||||
.codicon-array:before { content: "\ea8a" }
|
||||
.codicon-symbol-array:before { content: "\ea8a" }
|
||||
.codicon-symbol-module:before { content: "\ea8b" }
|
||||
.codicon-symbol-package:before { content: "\ea8b" }
|
||||
.codicon-symbol-namespace:before { content: "\ea8b" }
|
||||
.codicon-symbol-object:before { content: "\ea8b" }
|
||||
.codicon-symbol-method:before { content: "\ea8c" }
|
||||
.codicon-symbol-function:before { content: "\ea8c" }
|
||||
.codicon-symbol-constructor:before { content: "\ea8c" }
|
||||
.codicon-symbol-boolean:before { content: "\ea8f" }
|
||||
.codicon-symbol-null:before { content: "\ea8f" }
|
||||
.codicon-symbol-numeric:before { content: "\ea90" }
|
||||
.codicon-symbol-number:before { content: "\ea90" }
|
||||
.codicon-symbol-structure:before { content: "\ea91" }
|
||||
.codicon-symbol-struct:before { content: "\ea91" }
|
||||
.codicon-symbol-parameter:before { content: "\ea92" }
|
||||
.codicon-symbol-type-parameter:before { content: "\ea92" }
|
||||
.codicon-symbol-key:before { content: "\ea93" }
|
||||
.codicon-symbol-text:before { content: "\ea93" }
|
||||
.codicon-symbol-reference:before { content: "\ea94" }
|
||||
.codicon-go-to-file:before { content: "\ea94" }
|
||||
.codicon-symbol-enum:before { content: "\ea95" }
|
||||
.codicon-symbol-value:before { content: "\ea95" }
|
||||
.codicon-symbol-ruler:before { content: "\ea96" }
|
||||
.codicon-symbol-unit:before { content: "\ea96" }
|
||||
.codicon-activate-breakpoints:before { content: "\ea97" }
|
||||
.codicon-archive:before { content: "\ea98" }
|
||||
.codicon-arrow-both:before { content: "\ea99" }
|
||||
.codicon-arrow-down:before { content: "\ea9a" }
|
||||
.codicon-arrow-left:before { content: "\ea9b" }
|
||||
.codicon-arrow-right:before { content: "\ea9c" }
|
||||
.codicon-arrow-small-down:before { content: "\ea9d" }
|
||||
.codicon-arrow-small-left:before { content: "\ea9e" }
|
||||
.codicon-arrow-small-right:before { content: "\ea9f" }
|
||||
.codicon-arrow-small-up:before { content: "\eaa0" }
|
||||
.codicon-arrow-up:before { content: "\eaa1" }
|
||||
.codicon-bell:before { content: "\eaa2" }
|
||||
.codicon-bold:before { content: "\eaa3" }
|
||||
.codicon-book:before { content: "\eaa4" }
|
||||
.codicon-bookmark:before { content: "\eaa5" }
|
||||
.codicon-debug-breakpoint-conditional-unverified:before { content: "\eaa6" }
|
||||
.codicon-debug-breakpoint-conditional:before { content: "\eaa7" }
|
||||
.codicon-debug-breakpoint-conditional-disabled:before { content: "\eaa7" }
|
||||
.codicon-debug-breakpoint-data-unverified:before { content: "\eaa8" }
|
||||
.codicon-debug-breakpoint-data:before { content: "\eaa9" }
|
||||
.codicon-debug-breakpoint-data-disabled:before { content: "\eaa9" }
|
||||
.codicon-debug-breakpoint-log-unverified:before { content: "\eaaa" }
|
||||
.codicon-debug-breakpoint-log:before { content: "\eaab" }
|
||||
.codicon-debug-breakpoint-log-disabled:before { content: "\eaab" }
|
||||
.codicon-briefcase:before { content: "\eaac" }
|
||||
.codicon-broadcast:before { content: "\eaad" }
|
||||
.codicon-browser:before { content: "\eaae" }
|
||||
.codicon-bug:before { content: "\eaaf" }
|
||||
.codicon-calendar:before { content: "\eab0" }
|
||||
.codicon-case-sensitive:before { content: "\eab1" }
|
||||
.codicon-check:before { content: "\eab2" }
|
||||
.codicon-checklist:before { content: "\eab3" }
|
||||
.codicon-chevron-down:before { content: "\eab4" }
|
||||
.codicon-chevron-left:before { content: "\eab5" }
|
||||
.codicon-chevron-right:before { content: "\eab6" }
|
||||
.codicon-chevron-up:before { content: "\eab7" }
|
||||
.codicon-chrome-close:before { content: "\eab8" }
|
||||
.codicon-chrome-maximize:before { content: "\eab9" }
|
||||
.codicon-chrome-minimize:before { content: "\eaba" }
|
||||
.codicon-chrome-restore:before { content: "\eabb" }
|
||||
.codicon-circle-outline:before { content: "\eabc" }
|
||||
.codicon-circle:before { content: "\eabc" }
|
||||
.codicon-debug-breakpoint-unverified:before { content: "\eabc" }
|
||||
.codicon-terminal-decoration-incomplete:before { content: "\eabc" }
|
||||
.codicon-circle-slash:before { content: "\eabd" }
|
||||
.codicon-circuit-board:before { content: "\eabe" }
|
||||
.codicon-clear-all:before { content: "\eabf" }
|
||||
.codicon-clippy:before { content: "\eac0" }
|
||||
.codicon-close-all:before { content: "\eac1" }
|
||||
.codicon-cloud-download:before { content: "\eac2" }
|
||||
.codicon-cloud-upload:before { content: "\eac3" }
|
||||
.codicon-code:before { content: "\eac4" }
|
||||
.codicon-collapse-all:before { content: "\eac5" }
|
||||
.codicon-color-mode:before { content: "\eac6" }
|
||||
.codicon-comment-discussion:before { content: "\eac7" }
|
||||
.codicon-credit-card:before { content: "\eac9" }
|
||||
.codicon-dash:before { content: "\eacc" }
|
||||
.codicon-dashboard:before { content: "\eacd" }
|
||||
.codicon-database:before { content: "\eace" }
|
||||
.codicon-debug-continue:before { content: "\eacf" }
|
||||
.codicon-debug-disconnect:before { content: "\ead0" }
|
||||
.codicon-debug-pause:before { content: "\ead1" }
|
||||
.codicon-debug-restart:before { content: "\ead2" }
|
||||
.codicon-debug-start:before { content: "\ead3" }
|
||||
.codicon-debug-step-into:before { content: "\ead4" }
|
||||
.codicon-debug-step-out:before { content: "\ead5" }
|
||||
.codicon-debug-step-over:before { content: "\ead6" }
|
||||
.codicon-debug-stop:before { content: "\ead7" }
|
||||
.codicon-debug:before { content: "\ead8" }
|
||||
.codicon-device-camera-video:before { content: "\ead9" }
|
||||
.codicon-device-camera:before { content: "\eada" }
|
||||
.codicon-device-mobile:before { content: "\eadb" }
|
||||
.codicon-diff-added:before { content: "\eadc" }
|
||||
.codicon-diff-ignored:before { content: "\eadd" }
|
||||
.codicon-diff-modified:before { content: "\eade" }
|
||||
.codicon-diff-removed:before { content: "\eadf" }
|
||||
.codicon-diff-renamed:before { content: "\eae0" }
|
||||
.codicon-diff:before { content: "\eae1" }
|
||||
.codicon-discard:before { content: "\eae2" }
|
||||
.codicon-editor-layout:before { content: "\eae3" }
|
||||
.codicon-empty-window:before { content: "\eae4" }
|
||||
.codicon-exclude:before { content: "\eae5" }
|
||||
.codicon-extensions:before { content: "\eae6" }
|
||||
.codicon-eye-closed:before { content: "\eae7" }
|
||||
.codicon-file-binary:before { content: "\eae8" }
|
||||
.codicon-file-code:before { content: "\eae9" }
|
||||
.codicon-file-media:before { content: "\eaea" }
|
||||
.codicon-file-pdf:before { content: "\eaeb" }
|
||||
.codicon-file-submodule:before { content: "\eaec" }
|
||||
.codicon-file-symlink-directory:before { content: "\eaed" }
|
||||
.codicon-file-symlink-file:before { content: "\eaee" }
|
||||
.codicon-file-zip:before { content: "\eaef" }
|
||||
.codicon-files:before { content: "\eaf0" }
|
||||
.codicon-filter:before { content: "\eaf1" }
|
||||
.codicon-flame:before { content: "\eaf2" }
|
||||
.codicon-fold-down:before { content: "\eaf3" }
|
||||
.codicon-fold-up:before { content: "\eaf4" }
|
||||
.codicon-fold:before { content: "\eaf5" }
|
||||
.codicon-folder-active:before { content: "\eaf6" }
|
||||
.codicon-folder-opened:before { content: "\eaf7" }
|
||||
.codicon-gear:before { content: "\eaf8" }
|
||||
.codicon-gift:before { content: "\eaf9" }
|
||||
.codicon-gist-secret:before { content: "\eafa" }
|
||||
.codicon-gist:before { content: "\eafb" }
|
||||
.codicon-git-commit:before { content: "\eafc" }
|
||||
.codicon-git-compare:before { content: "\eafd" }
|
||||
.codicon-compare-changes:before { content: "\eafd" }
|
||||
.codicon-git-merge:before { content: "\eafe" }
|
||||
.codicon-github-action:before { content: "\eaff" }
|
||||
.codicon-github-alt:before { content: "\eb00" }
|
||||
.codicon-globe:before { content: "\eb01" }
|
||||
.codicon-grabber:before { content: "\eb02" }
|
||||
.codicon-graph:before { content: "\eb03" }
|
||||
.codicon-gripper:before { content: "\eb04" }
|
||||
.codicon-heart:before { content: "\eb05" }
|
||||
.codicon-home:before { content: "\eb06" }
|
||||
.codicon-horizontal-rule:before { content: "\eb07" }
|
||||
.codicon-hubot:before { content: "\eb08" }
|
||||
.codicon-inbox:before { content: "\eb09" }
|
||||
.codicon-issue-reopened:before { content: "\eb0b" }
|
||||
.codicon-issues:before { content: "\eb0c" }
|
||||
.codicon-italic:before { content: "\eb0d" }
|
||||
.codicon-jersey:before { content: "\eb0e" }
|
||||
.codicon-json:before { content: "\eb0f" }
|
||||
.codicon-kebab-vertical:before { content: "\eb10" }
|
||||
.codicon-key:before { content: "\eb11" }
|
||||
.codicon-law:before { content: "\eb12" }
|
||||
.codicon-lightbulb-autofix:before { content: "\eb13" }
|
||||
.codicon-link-external:before { content: "\eb14" }
|
||||
.codicon-link:before { content: "\eb15" }
|
||||
.codicon-list-ordered:before { content: "\eb16" }
|
||||
.codicon-list-unordered:before { content: "\eb17" }
|
||||
.codicon-live-share:before { content: "\eb18" }
|
||||
.codicon-loading:before { content: "\eb19" }
|
||||
.codicon-location:before { content: "\eb1a" }
|
||||
.codicon-mail-read:before { content: "\eb1b" }
|
||||
.codicon-mail:before { content: "\eb1c" }
|
||||
.codicon-markdown:before { content: "\eb1d" }
|
||||
.codicon-megaphone:before { content: "\eb1e" }
|
||||
.codicon-mention:before { content: "\eb1f" }
|
||||
.codicon-milestone:before { content: "\eb20" }
|
||||
.codicon-mortar-board:before { content: "\eb21" }
|
||||
.codicon-move:before { content: "\eb22" }
|
||||
.codicon-multiple-windows:before { content: "\eb23" }
|
||||
.codicon-mute:before { content: "\eb24" }
|
||||
.codicon-no-newline:before { content: "\eb25" }
|
||||
.codicon-note:before { content: "\eb26" }
|
||||
.codicon-octoface:before { content: "\eb27" }
|
||||
.codicon-open-preview:before { content: "\eb28" }
|
||||
.codicon-package:before { content: "\eb29" }
|
||||
.codicon-paintcan:before { content: "\eb2a" }
|
||||
.codicon-pin:before { content: "\eb2b" }
|
||||
.codicon-play:before { content: "\eb2c" }
|
||||
.codicon-run:before { content: "\eb2c" }
|
||||
.codicon-plug:before { content: "\eb2d" }
|
||||
.codicon-preserve-case:before { content: "\eb2e" }
|
||||
.codicon-preview:before { content: "\eb2f" }
|
||||
.codicon-project:before { content: "\eb30" }
|
||||
.codicon-pulse:before { content: "\eb31" }
|
||||
.codicon-question:before { content: "\eb32" }
|
||||
.codicon-quote:before { content: "\eb33" }
|
||||
.codicon-radio-tower:before { content: "\eb34" }
|
||||
.codicon-reactions:before { content: "\eb35" }
|
||||
.codicon-references:before { content: "\eb36" }
|
||||
.codicon-refresh:before { content: "\eb37" }
|
||||
.codicon-regex:before { content: "\eb38" }
|
||||
.codicon-remote-explorer:before { content: "\eb39" }
|
||||
.codicon-remote:before { content: "\eb3a" }
|
||||
.codicon-remove:before { content: "\eb3b" }
|
||||
.codicon-replace-all:before { content: "\eb3c" }
|
||||
.codicon-replace:before { content: "\eb3d" }
|
||||
.codicon-repo-clone:before { content: "\eb3e" }
|
||||
.codicon-repo-force-push:before { content: "\eb3f" }
|
||||
.codicon-repo-pull:before { content: "\eb40" }
|
||||
.codicon-repo-push:before { content: "\eb41" }
|
||||
.codicon-report:before { content: "\eb42" }
|
||||
.codicon-request-changes:before { content: "\eb43" }
|
||||
.codicon-rocket:before { content: "\eb44" }
|
||||
.codicon-root-folder-opened:before { content: "\eb45" }
|
||||
.codicon-root-folder:before { content: "\eb46" }
|
||||
.codicon-rss:before { content: "\eb47" }
|
||||
.codicon-ruby:before { content: "\eb48" }
|
||||
.codicon-save-all:before { content: "\eb49" }
|
||||
.codicon-save-as:before { content: "\eb4a" }
|
||||
.codicon-save:before { content: "\eb4b" }
|
||||
.codicon-screen-full:before { content: "\eb4c" }
|
||||
.codicon-screen-normal:before { content: "\eb4d" }
|
||||
.codicon-search-stop:before { content: "\eb4e" }
|
||||
.codicon-server:before { content: "\eb50" }
|
||||
.codicon-settings-gear:before { content: "\eb51" }
|
||||
.codicon-settings:before { content: "\eb52" }
|
||||
.codicon-shield:before { content: "\eb53" }
|
||||
.codicon-smiley:before { content: "\eb54" }
|
||||
.codicon-sort-precedence:before { content: "\eb55" }
|
||||
.codicon-split-horizontal:before { content: "\eb56" }
|
||||
.codicon-split-vertical:before { content: "\eb57" }
|
||||
.codicon-squirrel:before { content: "\eb58" }
|
||||
.codicon-star-full:before { content: "\eb59" }
|
||||
.codicon-star-half:before { content: "\eb5a" }
|
||||
.codicon-symbol-class:before { content: "\eb5b" }
|
||||
.codicon-symbol-color:before { content: "\eb5c" }
|
||||
.codicon-symbol-constant:before { content: "\eb5d" }
|
||||
.codicon-symbol-enum-member:before { content: "\eb5e" }
|
||||
.codicon-symbol-field:before { content: "\eb5f" }
|
||||
.codicon-symbol-file:before { content: "\eb60" }
|
||||
.codicon-symbol-interface:before { content: "\eb61" }
|
||||
.codicon-symbol-keyword:before { content: "\eb62" }
|
||||
.codicon-symbol-misc:before { content: "\eb63" }
|
||||
.codicon-symbol-operator:before { content: "\eb64" }
|
||||
.codicon-symbol-property:before { content: "\eb65" }
|
||||
.codicon-wrench:before { content: "\eb65" }
|
||||
.codicon-wrench-subaction:before { content: "\eb65" }
|
||||
.codicon-symbol-snippet:before { content: "\eb66" }
|
||||
.codicon-tasklist:before { content: "\eb67" }
|
||||
.codicon-telescope:before { content: "\eb68" }
|
||||
.codicon-text-size:before { content: "\eb69" }
|
||||
.codicon-three-bars:before { content: "\eb6a" }
|
||||
.codicon-thumbsdown:before { content: "\eb6b" }
|
||||
.codicon-thumbsup:before { content: "\eb6c" }
|
||||
.codicon-tools:before { content: "\eb6d" }
|
||||
.codicon-triangle-down:before { content: "\eb6e" }
|
||||
.codicon-triangle-left:before { content: "\eb6f" }
|
||||
.codicon-triangle-right:before { content: "\eb70" }
|
||||
.codicon-triangle-up:before { content: "\eb71" }
|
||||
.codicon-twitter:before { content: "\eb72" }
|
||||
.codicon-unfold:before { content: "\eb73" }
|
||||
.codicon-unlock:before { content: "\eb74" }
|
||||
.codicon-unmute:before { content: "\eb75" }
|
||||
.codicon-unverified:before { content: "\eb76" }
|
||||
.codicon-verified:before { content: "\eb77" }
|
||||
.codicon-versions:before { content: "\eb78" }
|
||||
.codicon-vm-active:before { content: "\eb79" }
|
||||
.codicon-vm-outline:before { content: "\eb7a" }
|
||||
.codicon-vm-running:before { content: "\eb7b" }
|
||||
.codicon-watch:before { content: "\eb7c" }
|
||||
.codicon-whitespace:before { content: "\eb7d" }
|
||||
.codicon-whole-word:before { content: "\eb7e" }
|
||||
.codicon-window:before { content: "\eb7f" }
|
||||
.codicon-word-wrap:before { content: "\eb80" }
|
||||
.codicon-zoom-in:before { content: "\eb81" }
|
||||
.codicon-zoom-out:before { content: "\eb82" }
|
||||
.codicon-list-filter:before { content: "\eb83" }
|
||||
.codicon-list-flat:before { content: "\eb84" }
|
||||
.codicon-list-selection:before { content: "\eb85" }
|
||||
.codicon-selection:before { content: "\eb85" }
|
||||
.codicon-list-tree:before { content: "\eb86" }
|
||||
.codicon-debug-breakpoint-function-unverified:before { content: "\eb87" }
|
||||
.codicon-debug-breakpoint-function:before { content: "\eb88" }
|
||||
.codicon-debug-breakpoint-function-disabled:before { content: "\eb88" }
|
||||
.codicon-debug-stackframe-active:before { content: "\eb89" }
|
||||
.codicon-circle-small-filled:before { content: "\eb8a" }
|
||||
.codicon-debug-stackframe-dot:before { content: "\eb8a" }
|
||||
.codicon-terminal-decoration-mark:before { content: "\eb8a" }
|
||||
.codicon-debug-stackframe:before { content: "\eb8b" }
|
||||
.codicon-debug-stackframe-focused:before { content: "\eb8b" }
|
||||
.codicon-debug-breakpoint-unsupported:before { content: "\eb8c" }
|
||||
.codicon-symbol-string:before { content: "\eb8d" }
|
||||
.codicon-debug-reverse-continue:before { content: "\eb8e" }
|
||||
.codicon-debug-step-back:before { content: "\eb8f" }
|
||||
.codicon-debug-restart-frame:before { content: "\eb90" }
|
||||
.codicon-debug-alt:before { content: "\eb91" }
|
||||
.codicon-call-incoming:before { content: "\eb92" }
|
||||
.codicon-call-outgoing:before { content: "\eb93" }
|
||||
.codicon-menu:before { content: "\eb94" }
|
||||
.codicon-expand-all:before { content: "\eb95" }
|
||||
.codicon-feedback:before { content: "\eb96" }
|
||||
.codicon-group-by-ref-type:before { content: "\eb97" }
|
||||
.codicon-ungroup-by-ref-type:before { content: "\eb98" }
|
||||
.codicon-account:before { content: "\eb99" }
|
||||
.codicon-bell-dot:before { content: "\eb9a" }
|
||||
.codicon-debug-console:before { content: "\eb9b" }
|
||||
.codicon-library:before { content: "\eb9c" }
|
||||
.codicon-output:before { content: "\eb9d" }
|
||||
.codicon-run-all:before { content: "\eb9e" }
|
||||
.codicon-sync-ignored:before { content: "\eb9f" }
|
||||
.codicon-pinned:before { content: "\eba0" }
|
||||
.codicon-github-inverted:before { content: "\eba1" }
|
||||
.codicon-server-process:before { content: "\eba2" }
|
||||
.codicon-server-environment:before { content: "\eba3" }
|
||||
.codicon-pass:before { content: "\eba4" }
|
||||
.codicon-issue-closed:before { content: "\eba4" }
|
||||
.codicon-stop-circle:before { content: "\eba5" }
|
||||
.codicon-play-circle:before { content: "\eba6" }
|
||||
.codicon-record:before { content: "\eba7" }
|
||||
.codicon-debug-alt-small:before { content: "\eba8" }
|
||||
.codicon-vm-connect:before { content: "\eba9" }
|
||||
.codicon-cloud:before { content: "\ebaa" }
|
||||
.codicon-merge:before { content: "\ebab" }
|
||||
.codicon-export:before { content: "\ebac" }
|
||||
.codicon-graph-left:before { content: "\ebad" }
|
||||
.codicon-magnet:before { content: "\ebae" }
|
||||
.codicon-notebook:before { content: "\ebaf" }
|
||||
.codicon-redo:before { content: "\ebb0" }
|
||||
.codicon-check-all:before { content: "\ebb1" }
|
||||
.codicon-pinned-dirty:before { content: "\ebb2" }
|
||||
.codicon-pass-filled:before { content: "\ebb3" }
|
||||
.codicon-circle-large-filled:before { content: "\ebb4" }
|
||||
.codicon-circle-large:before { content: "\ebb5" }
|
||||
.codicon-circle-large-outline:before { content: "\ebb5" }
|
||||
.codicon-combine:before { content: "\ebb6" }
|
||||
.codicon-gather:before { content: "\ebb6" }
|
||||
.codicon-table:before { content: "\ebb7" }
|
||||
.codicon-variable-group:before { content: "\ebb8" }
|
||||
.codicon-type-hierarchy:before { content: "\ebb9" }
|
||||
.codicon-type-hierarchy-sub:before { content: "\ebba" }
|
||||
.codicon-type-hierarchy-super:before { content: "\ebbb" }
|
||||
.codicon-git-pull-request-create:before { content: "\ebbc" }
|
||||
.codicon-run-above:before { content: "\ebbd" }
|
||||
.codicon-run-below:before { content: "\ebbe" }
|
||||
.codicon-notebook-template:before { content: "\ebbf" }
|
||||
.codicon-debug-rerun:before { content: "\ebc0" }
|
||||
.codicon-workspace-trusted:before { content: "\ebc1" }
|
||||
.codicon-workspace-untrusted:before { content: "\ebc2" }
|
||||
.codicon-workspace-unknown:before { content: "\ebc3" }
|
||||
.codicon-terminal-cmd:before { content: "\ebc4" }
|
||||
.codicon-terminal-debian:before { content: "\ebc5" }
|
||||
.codicon-terminal-linux:before { content: "\ebc6" }
|
||||
.codicon-terminal-powershell:before { content: "\ebc7" }
|
||||
.codicon-terminal-tmux:before { content: "\ebc8" }
|
||||
.codicon-terminal-ubuntu:before { content: "\ebc9" }
|
||||
.codicon-terminal-bash:before { content: "\ebca" }
|
||||
.codicon-arrow-swap:before { content: "\ebcb" }
|
||||
.codicon-copy:before { content: "\ebcc" }
|
||||
.codicon-person-add:before { content: "\ebcd" }
|
||||
.codicon-filter-filled:before { content: "\ebce" }
|
||||
.codicon-wand:before { content: "\ebcf" }
|
||||
.codicon-debug-line-by-line:before { content: "\ebd0" }
|
||||
.codicon-inspect:before { content: "\ebd1" }
|
||||
.codicon-layers:before { content: "\ebd2" }
|
||||
.codicon-layers-dot:before { content: "\ebd3" }
|
||||
.codicon-layers-active:before { content: "\ebd4" }
|
||||
.codicon-compass:before { content: "\ebd5" }
|
||||
.codicon-compass-dot:before { content: "\ebd6" }
|
||||
.codicon-compass-active:before { content: "\ebd7" }
|
||||
.codicon-azure:before { content: "\ebd8" }
|
||||
.codicon-issue-draft:before { content: "\ebd9" }
|
||||
.codicon-git-pull-request-closed:before { content: "\ebda" }
|
||||
.codicon-git-pull-request-draft:before { content: "\ebdb" }
|
||||
.codicon-debug-all:before { content: "\ebdc" }
|
||||
.codicon-debug-coverage:before { content: "\ebdd" }
|
||||
.codicon-run-errors:before { content: "\ebde" }
|
||||
.codicon-folder-library:before { content: "\ebdf" }
|
||||
.codicon-debug-continue-small:before { content: "\ebe0" }
|
||||
.codicon-beaker-stop:before { content: "\ebe1" }
|
||||
.codicon-graph-line:before { content: "\ebe2" }
|
||||
.codicon-graph-scatter:before { content: "\ebe3" }
|
||||
.codicon-pie-chart:before { content: "\ebe4" }
|
||||
.codicon-bracket:before { content: "\eb0f" }
|
||||
.codicon-bracket-dot:before { content: "\ebe5" }
|
||||
.codicon-bracket-error:before { content: "\ebe6" }
|
||||
.codicon-lock-small:before { content: "\ebe7" }
|
||||
.codicon-azure-devops:before { content: "\ebe8" }
|
||||
.codicon-verified-filled:before { content: "\ebe9" }
|
||||
.codicon-newline:before { content: "\ebea" }
|
||||
.codicon-layout:before { content: "\ebeb" }
|
||||
.codicon-layout-activitybar-left:before { content: "\ebec" }
|
||||
.codicon-layout-activitybar-right:before { content: "\ebed" }
|
||||
.codicon-layout-panel-left:before { content: "\ebee" }
|
||||
.codicon-layout-panel-center:before { content: "\ebef" }
|
||||
.codicon-layout-panel-justify:before { content: "\ebf0" }
|
||||
.codicon-layout-panel-right:before { content: "\ebf1" }
|
||||
.codicon-layout-panel:before { content: "\ebf2" }
|
||||
.codicon-layout-sidebar-left:before { content: "\ebf3" }
|
||||
.codicon-layout-sidebar-right:before { content: "\ebf4" }
|
||||
.codicon-layout-statusbar:before { content: "\ebf5" }
|
||||
.codicon-layout-menubar:before { content: "\ebf6" }
|
||||
.codicon-layout-centered:before { content: "\ebf7" }
|
||||
.codicon-target:before { content: "\ebf8" }
|
||||
.codicon-indent:before { content: "\ebf9" }
|
||||
.codicon-record-small:before { content: "\ebfa" }
|
||||
.codicon-error-small:before { content: "\ebfb" }
|
||||
.codicon-terminal-decoration-error:before { content: "\ebfb" }
|
||||
.codicon-arrow-circle-down:before { content: "\ebfc" }
|
||||
.codicon-arrow-circle-left:before { content: "\ebfd" }
|
||||
.codicon-arrow-circle-right:before { content: "\ebfe" }
|
||||
.codicon-arrow-circle-up:before { content: "\ebff" }
|
||||
.codicon-layout-sidebar-right-off:before { content: "\ec00" }
|
||||
.codicon-layout-panel-off:before { content: "\ec01" }
|
||||
.codicon-layout-sidebar-left-off:before { content: "\ec02" }
|
||||
.codicon-blank:before { content: "\ec03" }
|
||||
.codicon-heart-filled:before { content: "\ec04" }
|
||||
.codicon-map:before { content: "\ec05" }
|
||||
.codicon-map-filled:before { content: "\ec06" }
|
||||
.codicon-circle-small:before { content: "\ec07" }
|
||||
.codicon-bell-slash:before { content: "\ec08" }
|
||||
.codicon-bell-slash-dot:before { content: "\ec09" }
|
||||
.codicon-comment-unresolved:before { content: "\ec0a" }
|
||||
.codicon-git-pull-request-go-to-changes:before { content: "\ec0b" }
|
||||
.codicon-git-pull-request-new-changes:before { content: "\ec0c" }
|
||||
.codicon-search-fuzzy:before { content: "\ec0d" }
|
||||
.codicon-comment-draft:before { content: "\ec0e" }
|
||||
@@ -0,0 +1,557 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Amy</string>
|
||||
<key>author</key>
|
||||
<string>William D. Neumann</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#200020</string>
|
||||
<key>caret</key>
|
||||
<string>#7070FF</string>
|
||||
<key>foreground</key>
|
||||
<string>#D0D0FF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#80000040</string>
|
||||
<key>selection</key>
|
||||
<string>#80000080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#200020</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#404080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#707090</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Integer</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7090B0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Int32 constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.integer.int32</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Int64 constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.integer.int64</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Nativeint constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.integer.nativeint</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floating-point constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.floating-point.ocaml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Character constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#666666</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language.boolean</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8080A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#008080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A080FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A0A0FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword decorator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.decorator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D0D0FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floating-point infix operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.infix.floating-point.ocaml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floating-point prefix operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.prefix.floating-point.ocaml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Compiler directives</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.directive</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C080C0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Line-number directives</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.directive.line-number</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#C080C0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Control keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#80A0FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B0FFF0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variants</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.variant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#60B0FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Polymorphic variants</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.variant.polymorphic, entity.name.type.variant.polymorphic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#60B0FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Module definitions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.module</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B000B0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Module type definitions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.module-type.ocaml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#B000B0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support modules</string>
|
||||
<key>scope</key>
|
||||
<string>support.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A00050</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#70E080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class type</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.class-type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#70E0A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#50A0A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#80B0B0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Token definition (ocamlyacc)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.token</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3080A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Token reference (ocamlyacc)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type.token.reference</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3CB0D0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Non-terminal definition (ocamlyacc)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.non-terminal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#90E0E0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Non-terminal reference (ocamlyacc)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.non-terminal.reference</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C0F0F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#009090</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#200020</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#200020</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid - illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFF00</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#400080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid - depricated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#CC66FF</string>
|
||||
<key>foreground</key>
|
||||
<string>#200020</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Camlp4 code</string>
|
||||
<key>scope</key>
|
||||
<string>source.camlp4.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#40008054</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Camlp4 temp (parser)</string>
|
||||
<key>scope</key>
|
||||
<string>source.camlp4.embedded.parser.ocaml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#805080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>3C01FADD-7592-49DD-B7A5-1B82CA4E57B5</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,563 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>http://cbp.io</string>
|
||||
<key>name</key>
|
||||
<string>Behave</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#2C333D</string>
|
||||
<key>caret</key>
|
||||
<string>#909FB5</string>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
<key>invisibles</key>
|
||||
<string>#434D5B</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#232932</string>
|
||||
<key>selection</key>
|
||||
<string>#434D5B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment, punctuation.definition.comment, string.quoted.double.block.python</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#808691</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Foreground</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.class, source.php.embedded.line, meta.method punctuation.definition, meta.method punctuation.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CED1CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable, String Link, Regular Expression, Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>variable, support.other.variable, variable.parameter, string.other.link, string.regexp, declaration.tag, meta.expression.body.function, variable.parameter, string.unquoted.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cab8a3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number, Constant, Function Argument, Tag Attribute, Embedded</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant.language, constant.other, support.constant, variable.other.constant, keyword.other.unit, meta.property-value, punctuation.section.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#c9a9f9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class, Support</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, entity.name.type.class, entity.name.type.instance, entity.name.instance, meta.instance.constructor, meta.property.class, variable.other.class, class.name, support.type, support.class, storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#f0d879</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String, Symbols, Inherited Class, Markup Heading</string>
|
||||
<key>scope</key>
|
||||
<string>string, constant.other.symbol, entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ec9076</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator, Misc</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, keyword.control, entity.other.attribute-name, constant.other.color, constant.character</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7dcbc4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function, Special Method, Block Level</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, support.function, keyword.other.special-method, entity.name.method, meta.accessor, meta.block-level, function.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#61d29d</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword, Storage</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage, storage.type, entity.name.tag.css, meta.tag, entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5ab8e5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Methods</string>
|
||||
<key>scope</key>
|
||||
<string>meta.method.body.java, meta.method.return-type.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CED1CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Strings</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string.begin.java, punctuation.definition.string.end.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ec9076</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Classes, Storage Types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f0d879</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>TypeScript Functions</string>
|
||||
<key>scope</key>
|
||||
<string>meta.expression.body.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#61d29d</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>TypeScript Class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.expression.body.class.ts, meta.class.ts</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#f0d879</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>TypeScript Variables</string>
|
||||
<key>scope</key>
|
||||
<string>meta.toc-list.class.member.ts</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#cab8a3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>TypeScript Strings</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string.ts</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ec9076</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>TypeScript Misc., Braces, Periods, Delimiter etc.</string>
|
||||
<key>scope</key>
|
||||
<string>meta.brace.curly.ts, meta.brace.square.ts, meta.brace.round.ts, meta.delimiter.ts, punctuation.definition.parameters.ts, punctuation.terminator.statement.ts, punctuation.definition.parameters.begin.ts, punctuation.definition.parameters.end.ts, meta.delimiter.method.period.ts, meta.delimiter.object.comma.ts, keyword.operator.ts</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JSON Key</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted.double.json, meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json, meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json meta.structure.dictionary.json string.quoted.double.json</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cab8a3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JSON String</string>
|
||||
<key>scope</key>
|
||||
<string>meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json, meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json meta.structure.dictionary.value.json string.quoted.double.json</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ec9076</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JavaScript Strings</string>
|
||||
<key>scope</key>
|
||||
<string>meta.parameter.optional punctuation.definition.string.begin, meta.parameter.optional punctuation.definition.string.end</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ec9076</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown Titles</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.markdown, markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f0d879</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown lists</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list.unnumbered.markdown, markup.list.numbered.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown bold/italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold.markdown, markup.italic.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown Raw/Pre</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.inline.markdown, markup.raw.block.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cab8a3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown String Link</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link.title.markdown, string.other.link.description.title.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#61d29d</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown link</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline.link.markdown, markup.underline.link.image.markdown, meta.image.inline.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c9a9f9</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ec9076</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.line-number.find-in-files - match</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c9a9f9A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>entity.name.filename.find-in-files</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f0d879</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EF4D44</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7dcbc4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B798BF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CED2CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff foreground</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff insertion</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted.diff, meta.diff.header.to-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff deletion</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted.diff, meta.diff.header.from-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EF4D44</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.from-file, meta.diff.header.to-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
<key>background</key>
|
||||
<string>#4271ae</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff range</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.range</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#7dcbc4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#967EFB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SublimeLinter Error</string>
|
||||
<key>scope</key>
|
||||
<string>sublimelinter.mark.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EF4D44</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SublimeLinter Gutter Mark</string>
|
||||
<key>scope</key>
|
||||
<string>sublimelinter.gutter-mark</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D2D8E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SublimeLinter Warning</string>
|
||||
<key>scope</key>
|
||||
<string>sublimelinter.mark.warning</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FACB68</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>F96223EB-1A60-4617-92F3-D24D4F13DB09</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.behave</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,387 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>[ Argonaut ]</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#151515</string>
|
||||
<key>caret</key>
|
||||
<string>#FF2200</string>
|
||||
<key>foreground</key>
|
||||
<string>#B2B2B2</string>
|
||||
<key>invisibles</key>
|
||||
<string>#000000</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#000C16</string>
|
||||
<key>selection</key>
|
||||
<string>#002F53</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#00A6FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6497C5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escaped, string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A0A3F9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D70000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0068C5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#A4ED2D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor line</string>
|
||||
<key>scope</key>
|
||||
<string>other.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7B9A00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor directive</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFCE00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFCA00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000</string>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#DB001C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument and result types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#70727E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid trailing whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFD0D0</string>
|
||||
<key>foreground</key>
|
||||
<string>#333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Section</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.section entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#3FAF30</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#815DB3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library object</string>
|
||||
<key>scope</key>
|
||||
<string>support.class, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#7A88F6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#06960E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#F18F94</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JS: Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606E7E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>text source, string.unquoted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#00020559</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup XML declaration</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.xml-processing</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#68685B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DOCTYPE</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DTD</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.doctype.DTD</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#62A6FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup name of tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0065D3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.parameter.attribute</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>E30AB985-2C10-4EB1-9C06-06CC4FF68D62</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSSEdit</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#474747</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000012</string>
|
||||
<key>selection</key>
|
||||
<string>#A0CDFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A8A8A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#5D9629</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6D4496</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4678BC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4678BC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4678BC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B84610</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>E338A386-9C33-4E3E-BC5C-842F6825BEB0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,348 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Clouds</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#FFFBD1</string>
|
||||
<key>selection</key>
|
||||
<string>#BDD5FC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BCC8BA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5D90CD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#46A609</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#39946A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, support.constant.property-value, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AF956F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword -> Unit</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#96DC5F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword -> Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#484848</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C52727</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#858585</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606060</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML Entity</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#BF78CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JS Support Class</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#BF78CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606060</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Selector</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css, entity.name.tag.css, entity.other.attribute-name.id.css, entity.other.attribute-name.class.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C52727</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Property</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#484848</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C52727</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FF002A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation/Widgets</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C52727</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation (Tags)</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606060</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword -> CSS</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.color.rgb-value.css, support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#BF78CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>47536290-6FC1-4B09-A08F-B219909E1A69</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,361 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Clouds Midnight</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#191919</string>
|
||||
<key>caret</key>
|
||||
<string>#7DA5DC</string>
|
||||
<key>foreground</key>
|
||||
<string>#929292</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#D7D7D708</string>
|
||||
<key>selection</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3C403B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5D90CD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#46A609</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#39946A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, support.constant.property-value, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#927C5D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword -> Unit</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#366F1A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML Attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A46763</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword -> Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4B4B4B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E92E2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#858585</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606060</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML Entity</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A165AC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JS Support Class</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A165AC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606060</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Selector</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css, entity.name.tag.css, entity.other.attribute-name.id.css, entity.other.attribute-name.class.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E92E2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Property</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#616161</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E92E2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#E92E2E</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation/Widgets</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E92E2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation (Tags)</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#606060</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword -> CSS</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.color.rgb-value.css, support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A165AC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>E5304455-0AC7-4082-8E62-5FD1B3313EEC</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,574 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Jacob Rus</string>
|
||||
<key>comment</key>
|
||||
<string>Created by Jacob Rus. Based on ‘Slate’ by Wilson Miner</string>
|
||||
<key>gutterSettings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#00182c</string>
|
||||
<key>divider</key>
|
||||
<string>#00182c</string>
|
||||
<key>foreground</key>
|
||||
<string>#004581</string>
|
||||
<key>selectionBackground</key>
|
||||
<string>#003767</string>
|
||||
<key>selectionForeground</key>
|
||||
<string>#93a1a1</string>
|
||||
</dict>
|
||||
<key>name</key>
|
||||
<string>Cobalt</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.cobalt</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#002240</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#FFFFFF26</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000059</string>
|
||||
<key>selection</key>
|
||||
<string>#B36539BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation - (punctuation.definition.string | punctuation.definition.comment)</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E1EFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF628C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFDD00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF9D00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFEE80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string -string.unquoted.old-plist -string.unquoted.heredoc, string.unquoted.heredoc string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3AD900</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#0088FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#80FFBB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CCCCCC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lang Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF80E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Call</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFEE80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#800F00</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>text source, string.unquoted.heredoc, source source, meta.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#223545</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity inherited-class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#80FCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String embedded-source</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9EFF80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#80FF82</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#80FFC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EDEF7D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFB054</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#EB939A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF1E00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>C/C++ Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8996A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>C/C++ Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AFC4DB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.metadata.doctype entity, meta.tag.metadata.doctype string, meta.tag.metadata.processing.xml, meta.tag.metadata.processing.xml entity, meta.tag.metadata.processing.xml string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#73817D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Meta.tag.A</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, meta.tag entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9EFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9EFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css#id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFB454</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css.class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#5FE461</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property-name:</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9DF39F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property-value;</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6F080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6AA11</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EDF080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EB939A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000E1A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4C0900</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#806F00</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#154F00</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Raw Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#8FDDF630</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Block Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#004480</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#130D26</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bold Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#C1AFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Italic Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#B8FFD9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Heading Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#001221</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#C8E4FD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>06CD1FB2-A00A-4F8C-97B2-60E131980454</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,437 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>David Powers</string>
|
||||
<key>comment</key>
|
||||
<string>Dawn</string>
|
||||
<key>name</key>
|
||||
<string>Dawn</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F9F9F9</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#080808</string>
|
||||
<key>invisibles</key>
|
||||
<string>#4B4B7E80</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#2463B41F</string>
|
||||
<key>selection</key>
|
||||
<string>#275FFF4D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#5A525F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#811F24</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BF4F24</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#794938</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#A71D5D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string | punctuation.definition.string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0B6125</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#691C97</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#234A97</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation.separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#794938</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#B52A1D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B52A1D</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String embedded-source</string>
|
||||
<key>scope</key>
|
||||
<string>string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#6F8BBA26</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#080808</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#696969</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#234A97</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CF5628</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp.«special»</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.character-class, string.regexp constant.character.escaped, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#CF5628</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp constant.character.escape</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#811F24</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#6F8BBA26</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#693A17</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B4371F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#234A97</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.list</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#693A17</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading | markup.heading entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#19356D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#BBBBBB30</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#0B6125</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#080808</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#080808</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.underline</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#080808</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.link</string>
|
||||
<key>scope</key>
|
||||
<string>markup.link</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#234A97</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.raw</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#BBBBBB30</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#234A97</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#59140E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Meta.separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DCDCDC</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#19356D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>E7E82498-F9EA-49A6-A0D8-12327EA46B01</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,439 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Eiffel</string>
|
||||
<key>author</key>
|
||||
<string>Ian Joyner</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000012</string>
|
||||
<key>selection</key>
|
||||
<string>#C3DCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#00B418</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#0206FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#0100B6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#CD0000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#C5060B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#585CF6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D80800</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape, string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#26B31A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#1A921C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor directive</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#0C450D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, keyword.other.name-of-parameter.objc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#0000A2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument and result types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#70727E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Section</string>
|
||||
<key>scope</key>
|
||||
<string>meta.section entity.name.section, declaration.section entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#3C4C72</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library object</string>
|
||||
<key>scope</key>
|
||||
<string>support.class, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#6D79DE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#06960E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#21439C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JS: Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#687687</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid trailing whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFD0D0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>text source, string.unquoted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#427FF530</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup XML declaration</string>
|
||||
<key>scope</key>
|
||||
<string>meta.xml-processing, declaration.xml-processing</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#68685B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DOCTYPE</string>
|
||||
<key>scope</key>
|
||||
<string>meta.doctype, declaration.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DTD</string>
|
||||
<key>scope</key>
|
||||
<string>meta.doctype.DTD, declaration.doctype.DTD</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#1C02FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup name of tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#0C07FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B90690</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>ADD7FDE7-C6BE-454B-A71A-7951ED54FB04</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,313 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Coda</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#EEF1F5</string>
|
||||
<key>selection</key>
|
||||
<string>#A7CAFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#3C802C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ED7722</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0F20F6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#916319</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#916319</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#916319</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AA2063</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AA2063</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC4C07</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC4C07</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#053369</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#053369</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#881181</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#881181</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7520AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other, variable.js, punctuation.separator.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Language Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Meta Brace</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F02A1D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EB291C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Normal Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.php, variable.other.normal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#916305</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Call</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#163369</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword Control</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AA2063</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>57E9F1F4-9556-47AF-A24D-61BFA4E53138</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,653 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>GitHub</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F8F8FF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000012</string>
|
||||
<key>selection</key>
|
||||
<string>#BCD5FA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Source</string>
|
||||
<key>scope</key>
|
||||
<string>source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F8F8FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#999988</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.assignment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>keyword like new</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.special-method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function (definition)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, keyword.other.name-of-parameter.objc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#990000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class (definition)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#445588</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#009999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#108888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0F8787</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#DD1144</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0F8787</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class seperator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator.inheritance</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>punctuation block</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>array brackets</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.array</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>hash separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator.key-value</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>() brackets</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>hash brackets</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.scope</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Special ruby method</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.special-method.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>symbol</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.symbol</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AA2C8C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support class</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#008080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#009926</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>doctype punctation</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.sgml.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>doctype declaration</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>doctype string</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted.double.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html tag punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#121289</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html tag punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#121289</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0A8585</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html attribute punctation</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0A8585</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>erb tags</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ruby string interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>source.ruby.embedded.source punctuation.section.embedded.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CF1040</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css brackets</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.property-list.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator.key-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property value</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#009999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css ending</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.terminator.rule.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css font</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.font-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#009999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>pseudo class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.pseudo-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css constant property value</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.property-value</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css attribute class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#445588</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css attribute id</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#990000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff header from</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.from-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFDDDD</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff header to</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.to-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DDFFDD</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted.diff</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DDFFDD</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted.diff</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFDDDD</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>26786979-843B-4FE2-BCB6-4FCEC6F8FB58</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,380 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>idleFingers</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#323232</string>
|
||||
<key>caret</key>
|
||||
<string>#91FF00</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#404040</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#353637</string>
|
||||
<key>selection</key>
|
||||
<string>#5A647EE0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>text</string>
|
||||
<key>scope</key>
|
||||
<string>text</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Source base</string>
|
||||
<key>scope</key>
|
||||
<string>source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#282828</string>
|
||||
<key>foreground</key>
|
||||
<string>#CDCDCD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#BC9458</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Html Tags</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag, meta.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFE5BB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFC66D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Function Name</string>
|
||||
<key>scope</key>
|
||||
<string>source.ruby entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFF980</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Other Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B7DFF8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Class Name</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CCCC33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant, support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6C99BB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CC7833</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Pre-processor Line</string>
|
||||
<key>scope</key>
|
||||
<string>other.preprocessor.c</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D0D0FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Pre-processor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Block comment</string>
|
||||
<key>scope</key>
|
||||
<string>source comment.block</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#575757</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A5C261</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String escapes</string>
|
||||
<key>scope</key>
|
||||
<string>string constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AAAAAA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String (executed)</string>
|
||||
<key>scope</key>
|
||||
<string>string.interpolated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#CCCC33</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Regular expression</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CCCC33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String (literal)</string>
|
||||
<key>scope</key>
|
||||
<string>string.literal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CCCC33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String escapes (executed)</string>
|
||||
<key>scope</key>
|
||||
<string>string.interpolated constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#787878</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class inheritance</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B83426</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Textile List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list.unnumbered.textile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6EA533</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Textile Numbered list</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list.numbered.textile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6EA533</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Textile Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold.textile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#C2C2C2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FF0000</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>95BEF169-A2E5-4041-A84A-AAFC1DD61558</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,286 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Jeroen van der Ham</string>
|
||||
<key>name</key>
|
||||
<string>iPlastic</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EEEEEEEB</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#B3B3B3F4</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#0000001A</string>
|
||||
<key>selection</key>
|
||||
<string>#BAD6FD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#009933</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0066FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Regular expression</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF0080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0000FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Identifier</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9700CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#990000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF8000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Arguments</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#0066FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#E71A114D</string>
|
||||
<key>foreground</key>
|
||||
<string>#FF0000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Trailing whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#E71A1100</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FAFAFAFC</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0033CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant, support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6782D3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#3333FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Section name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Frame title</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.frame</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>XML Declaration</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.preprocessor.xml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#3366CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>4FCFA210-B247-11D9-9D00-000D93347A42</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,450 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Chris Thomas</string>
|
||||
<key>name</key>
|
||||
<string>Tango</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#303436</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#0000000F</string>
|
||||
<key>selection</key>
|
||||
<string>#4D97FF54</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#555753</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#303436</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4F9B00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#194A87</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#194A87</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#194A87</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A70000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape, string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A70000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#65961E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor directive</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#65961E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, support.function.any-method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5C3566</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument and result types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#70727E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Section</string>
|
||||
<key>scope</key>
|
||||
<string>meta.section entity.name.section, declaration.section entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3C4C72</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library object</string>
|
||||
<key>scope</key>
|
||||
<string>support.class, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D15B00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#529C08</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#2E65A5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JS: Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#687687</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid trailing whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFD0D0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>text source, string.unquoted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0000000D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>text source string.unquoted, text source text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0000000F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup XML declaration</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.preprocessor.xml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#68685B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DOCTYPE</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.sgml.doctype, meta.tag.sgml.doctype entity, meta.tag.sgml.doctype string, meta.tag.preprocessor.xml, meta.tag.preprocessor.xml entity, meta.tag.preprocessor.xml string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DTD</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted.docinfo.doctype.DTD</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4266A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup name of tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4266A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B90690</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>509B45AB-A33A-472C-80CF-656718CEECC9</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,551 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>Created by Kenneth Reitz, inspired by minimal design</string>
|
||||
<key>name</key>
|
||||
<string>krTheme</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0B0A09</string>
|
||||
<key>caret</key>
|
||||
<string>#FF9900</string>
|
||||
<key>foreground</key>
|
||||
<string>#FCFFE0</string>
|
||||
<key>invisibles</key>
|
||||
<string>#FFB16F52</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#38403D</string>
|
||||
<key>selection</key>
|
||||
<string>#AA00FF73</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D27518C2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A89100B5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity Other</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#BA6912</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#949C8B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFEE80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string -string.unquoted.old-plist -string.unquoted.heredoc, string.unquoted.heredoc string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C7A4A1B5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#706D5B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9FC28A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D1A796</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lang Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF80E1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Call</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFEE80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#A41300</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>text source, string.unquoted.heredoc, source source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#24231D4D</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D9D59F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity inherited-class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7EFCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String embedded-source</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#439740BA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#60DB5DBA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7DFFC0A6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B8B960</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#85873A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C27E66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF1E00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>C/C++ Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8996A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>C/C++ Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AFC4DB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.sgml.html meta.doctype, meta.sgml.html meta.doctype entity, meta.sgml.html meta.doctype string, meta.xml-processing, meta.xml-processing entity, meta.xml-processing string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#73817D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Meta.tag.A</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, meta.tag entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#BABD9C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#99A190</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css#id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC8844</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css.class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CFB958</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property-name:</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E0DDAD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css property-value;</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AEB14B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFB010</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#999179</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>css constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EB939A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000E1A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#800F00</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#806F00</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#228000</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Raw Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#8FDDF630</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Block Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#005BAA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0F0040</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bold Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#9D80FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Italic Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#80FFBB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Heading Markup</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>87F051F7-B6FB-408C-96F9-467B66C14E9F</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,235 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Domenico Carbotta</string>
|
||||
<key>name</key>
|
||||
<string>IDLE</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000012</string>
|
||||
<key>selection</key>
|
||||
<string>#BAD6FD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#919191</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#00A33F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A535AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF5600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF5600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#21439C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#21439C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A535AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A535AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A535AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A535AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.placeholder.py</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#990000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>DDC0CBE1-442B-4CB5-80E4-26E4CFB3A277</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Merbivore</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#161616</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#E6E1DC</string>
|
||||
<key>invisibles</key>
|
||||
<string>#404040</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#333435</string>
|
||||
<key>selection</key>
|
||||
<string>#5A647EE0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Source</string>
|
||||
<key>scope</key>
|
||||
<string>source</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#AD2EA4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FC6F09</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function (definition)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, keyword.other.name-of-parameter.objc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class (definition)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class inheritence</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FC83FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#58C554</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#1EDAFB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant (other variable)</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant (built-in)</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FDC251</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8DFF0A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1EDAFB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8DFF0A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag, entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FC6F09</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFF89</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escaped, constant.character.escape, string source, string source.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#519F50</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff Add</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#144212</string>
|
||||
<key>foreground</key>
|
||||
<string>#E6E1DC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff Remove</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#660000</string>
|
||||
<key>foreground</key>
|
||||
<string>#E6E1DC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff Header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header, meta.separator.diff, meta.diff.index, meta.diff.range</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#2F33AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>2ABC646D-06F3-48A5-94E9-18EF34474C97</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Merbivore Soft</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#1C1C1C</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#E6E1DC</string>
|
||||
<key>invisibles</key>
|
||||
<string>#404040</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#333435</string>
|
||||
<key>selection</key>
|
||||
<string>#392243E0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Source</string>
|
||||
<key>scope</key>
|
||||
<string>source</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#AC4BB8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FC803A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function (definition)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, keyword.other.name-of-parameter.objc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class (definition)</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class inheritence</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C984CD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7FC578</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#68C1D8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant (other variable)</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant (built-in)</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E1C582</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8EC65F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#68C1D8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8EC65F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag, entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FC803A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EAF1A3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FE3838</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escaped, constant.character.escape, string source, string source.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B3E5B4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff Add</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#6FC58B</string>
|
||||
<key>foreground</key>
|
||||
<string>#E6E1DC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff Remove</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#AC3735</string>
|
||||
<key>foreground</key>
|
||||
<string>#E6E1DC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff Header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header, meta.separator.diff, meta.diff.index, meta.diff.range</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#5A9EE1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>B3517E4B-5243-46CF-AB04-9AE7B41DE3F2</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,451 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>monoindustrial</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#222C28</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#666C6880</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#0C0D0C40</string>
|
||||
<key>selection</key>
|
||||
<string>#91999466</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#151C19</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#666C68</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type</string>
|
||||
<key>scope</key>
|
||||
<string>storage, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C23B00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded code</string>
|
||||
<key>scope</key>
|
||||
<string>string.unquoted.embedded, text source, string.unquoted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#151C19</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escaped, string source - string.unquoted.embedded, string string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#1A0700</string>
|
||||
<key>foreground</key>
|
||||
<string>#E9470000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string - string source, string source string, meta.scope.heredoc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#1A0700</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C23800</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E98800</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#648BD2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E98800</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor line</string>
|
||||
<key>scope</key>
|
||||
<string>other.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#161D1A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A8B3AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor directive</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#161D1A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A8B3AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, keyword.operator, keyword.other.name-of-parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A8B3AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9A2F00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#648BD2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument and result types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#666C68</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage.type.function.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A39E64</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000AD</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid trailing whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFD0D0</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#588E60</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library object</string>
|
||||
<key>scope</key>
|
||||
<string>support.class, support.type, entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5778B6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C87500</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5879B7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup XML declaration</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.xml-processing</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#68685B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DOCTYPE</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DTD</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.doctype.DTD</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A65EFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup name of tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A65EFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#909993</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#90999380</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7642B7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Changed files (Subversion)</string>
|
||||
<key>scope</key>
|
||||
<string>meta.scope.changed-files.svn, markup.inserted.svn, markup.changed.svn, markup.deleted.svn</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#00000059</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Blocks, Expressions 1</string>
|
||||
<key>scope</key>
|
||||
<string>meta.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#78807B0A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Blocks, Expressions 2</string>
|
||||
<key>scope</key>
|
||||
<string>meta.section meta.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#78807B0A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Blocks, Expressions 3</string>
|
||||
<key>scope</key>
|
||||
<string>meta.section meta.section meta.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#78807B0A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>EEA328BA-54E5-49DC-81F3-1F25BF8AF163</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,289 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Monokai</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#272822</string>
|
||||
<key>caret</key>
|
||||
<string>#F8F8F0</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F2</string>
|
||||
<key>invisibles</key>
|
||||
<string>#3B3A32</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#3E3D32</string>
|
||||
<key>selection</key>
|
||||
<string>#49483E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#FD971F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F92672</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#AE81FF</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>D8D5E82E-3D5B-46B5-B38E-8C841C21347D</string>
|
||||
</dict>
|
||||
</plist>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,701 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Mats Persson</string>
|
||||
<key>name</key>
|
||||
<string>Pastels on Dark</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#211E1E</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#DADADA</string>
|
||||
<key>invisibles</key>
|
||||
<string>#4F4D4D</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#353030</string>
|
||||
<key>selection</key>
|
||||
<string>#73597E80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#555555</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments Block</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#555555</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AD9361</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Numbers</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CCCCCC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A1A1FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#2F006E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Functions</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A1A1FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function result</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.function function-result</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0000FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.function function-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument name</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.function argument-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument type</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.function function-arg-type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0000FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument variable</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.function function-argument</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.class class-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class inheritance</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.class class-inheritance</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FF0000</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFF9F9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid Trailing Whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFD0D0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Section</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.section section-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>string.interpolation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C10006</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Regular Expressions</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#666666</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C1C144</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6782D3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Character Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AFA472</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Language Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#DE8E30</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded Code</string>
|
||||
<key>scope</key>
|
||||
<string>embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.markup.element-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#858EF4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Attribute name</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.markup.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B456F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Attribute with Value</string>
|
||||
<key>scope</key>
|
||||
<string>meta.attribute-with-value</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B456F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exceptions</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#C82255</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operators</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#47B8D6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Control Structures</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#6969FA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: DocInfo XML</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.preprocessor.xml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#68685B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: DocType</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.sgml.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: DocInfo DTD</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted.docinfo.doctype.DTD</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: ServerSide Includes</string>
|
||||
<key>scope</key>
|
||||
<string>comment.other.server-side-include.xhtml, comment.other.server-side-include.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#909090</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tag</string>
|
||||
<key>scope</key>
|
||||
<string>text.html declaration.tag, text.html meta.tag, text.html entity.name.tag.xhtml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#858EF4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: attribute=""</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.markup.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9B456F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: PHPdocs</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.phpdoc.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#777777</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Include() & Require()</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.include.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C82255</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Constants Core Predefined</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.core.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#DE8E20</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Constants Standard Predefined</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.std.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#DE8E10</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Variables Globals</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.global.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B72E1D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Variables Safer Globals</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.global.safer.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#00FF00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Strings Single-Quoted</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted.single.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#BFA36D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Keywords Storage</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.storage.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6969FA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP: Strings Double-Quoted</string>
|
||||
<key>scope</key>
|
||||
<string>string.quoted.double.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AD9361</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Selectors #ID</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.id.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EC9E00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Selectors <Elements></string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#B8CD06</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Selectors .ClassName</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.class.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EDCA06</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Selectors :PseudoClass</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.pseudo-class.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#2E759C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Invalid Comma</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.bad-comma.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FF0000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Property Value</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9B2E4D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Property Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E1C96B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Property Colours</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.rgb-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#666633</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Font Names</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.font-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#666633</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>TMLangDef: Keys</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.tm-language-def, support.constant.name.tm-language-def</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7171F3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Units</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.unit.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6969FA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>343011CC-B7DF-11D9-B5C6-000D93C8BE28</string>
|
||||
</dict>
|
||||
</plist>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,437 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>BBEdit</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000012</string>
|
||||
<key>selection</key>
|
||||
<string>#FFD420</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#804000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0000FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF0080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF0080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C5060B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#004080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#006600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String interpolation</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escaped, constant.character.escape, string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#33CC33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor line</string>
|
||||
<key>scope</key>
|
||||
<string>other.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#1A921C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Preprocessor directive</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0C450D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, keyword.other.name-of-parameter.objc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0000A2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument and result types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.method</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#70727E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Section</string>
|
||||
<key>scope</key>
|
||||
<string>meta.section entity.name.section, declaration.section entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0000FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library object</string>
|
||||
<key>scope</key>
|
||||
<string>support.class, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#6D79DE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#06960E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#21439C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JS: Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#687687</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#990000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid trailing whitespace</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.trailing-whitespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFD0D0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded source</string>
|
||||
<key>scope</key>
|
||||
<string>text source, string.unquoted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#427FF51A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup XML declaration</string>
|
||||
<key>scope</key>
|
||||
<string>meta.xml-processing, declaration.xml-processing</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#68685B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DOCTYPE</string>
|
||||
<key>scope</key>
|
||||
<string>meta.doctype, declaration.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#888888</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup DTD</string>
|
||||
<key>scope</key>
|
||||
<string>meta.doctype.DTD, declaration.doctype.DTD</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, declaration.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#1C02FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup name of tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0C07FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#B90690</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>0047F0B6-DB9C-4533-A155-5BAA91BD70F2</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,514 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Michael Sheets</string>
|
||||
<key>name</key>
|
||||
<string>Tango in Twilight</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000F2</string>
|
||||
<key>caret</key>
|
||||
<string>#A7A7A7</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8FFF6</string>
|
||||
<key>invisibles</key>
|
||||
<string>#FFFFFF40</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#FFFFFF08</string>
|
||||
<key>selection</key>
|
||||
<string>#6930A299</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#686A78</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CF6A4C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B703F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C4A000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F9EE98</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4E9A06</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#75507B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#729FCF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#D2A8A1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#562D56BF</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B0B3BA14</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Embedded Source (Bright)</string>
|
||||
<key>scope</key>
|
||||
<string>text.html.ruby source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B1B3BA21</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Entity inherited-class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#9B5C2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String embedded-source</string>
|
||||
<key>scope</key>
|
||||
<string>string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#DAEFA3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#DDF2A4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E9C062</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.«special»</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CF7D34</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8A9A95</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#DAD085</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CF6A4C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8996A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AFC4DB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.sgml.doctype, meta.tag.sgml.doctype entity, meta.tag.sgml.doctype string, meta.tag.preprocessor.xml, meta.tag.preprocessor.xml entity, meta.tag.preprocessor.xml string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#494949</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.«all»</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.tag, declaration.tag entity, meta.tag, meta.tag entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AC885B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.inline</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.tag.inline, declaration.tag.inline entity, source entity.name.tag, source entity.other.attribute-name, meta.tag.inline, meta.tag.inline entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E0C589</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CDA869</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css:pseudo-class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.tag.pseudo-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css#id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8B98AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css.class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9B703F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-name:</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FCE94F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-value;</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C4A000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8693A5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CA7840</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header, meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0E2231</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#420E09</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4A410D</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#253B22</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C4A000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC0000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>D00855FD-E400-4887-A6EB-DA4583F68EEC</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,792 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>IR_White</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#A7A7A7</string>
|
||||
<key>foreground</key>
|
||||
<string>#010101</string>
|
||||
<key>invisibles</key>
|
||||
<string>#CAE2FB3D</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#FFFFFF0D</string>
|
||||
<key>selection</key>
|
||||
<string>#E0E0ED</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#898989</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A15001</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#016692</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#646409</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#646409</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#877611</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage.modifier</string>
|
||||
<key>scope</key>
|
||||
<string>storage.modifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#014A69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#333366</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#009F78</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8C008A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#696989</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A00294</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DF68D9BF</string>
|
||||
<key>foreground</key>
|
||||
<string>#A00294</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Embedded Source (Bright)</string>
|
||||
<key>scope</key>
|
||||
<string>text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B1B3BA08</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Entity inherited-class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#D19264</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String embedded-variable</string>
|
||||
<key>scope</key>
|
||||
<string>source string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>source string source punctuation.section.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#00FF00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#00FF00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9D7416</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.«special»</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF8000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.group</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.group</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0000001A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B08C39</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.character-class</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.character-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C29B4E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#756565</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7A7025</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#582B00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#765757</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#502424</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>j Cast</string>
|
||||
<key>scope</key>
|
||||
<string>meta.cast</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#010101</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.sgml.html meta.doctype, meta.sgml.html meta.doctype entity, meta.sgml.html meta.doctype string, meta.xml-processing, meta.xml-processing entity, meta.xml-processing string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#010101</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.«all»</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, meta.tag entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0067C2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.inline</string>
|
||||
<key>scope</key>
|
||||
<string>source entity.name.tag, source entity.other.attribute-name, meta.tag.inline, meta.tag.inline entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#00528B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.attribute-name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BC4D00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Namespaces</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.namespace, entity.other.attribute-name.namespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B431E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#0067C2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css:pseudo-class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.tag.pseudo-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#628795</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css#id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#667587</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css.class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#2A85CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-name:</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-value;</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#675C06</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#795A5A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3C785D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#628795</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0E2231</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#420E09</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4A410D</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#253B22</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>--------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#9D7416</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#9D7416</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Underline</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#9B431E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FEE09C12</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#46391E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading, markup.heading entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#632D04</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D95B06</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#46391E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Raw</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B1B3BA08</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7C4CA8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Comment</string>
|
||||
<key>scope</key>
|
||||
<string>markup comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#C84D09</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#242424</string>
|
||||
<key>foreground</key>
|
||||
<string>#746DFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Log Entry</string>
|
||||
<key>scope</key>
|
||||
<string>meta.line.entry.logfile, meta.line.exit.logfile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EEEEEE29</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Log Entry Error</string>
|
||||
<key>scope</key>
|
||||
<string>meta.line.error.logfile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#751012</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>BC53AA17-9977-4679-9CEF-F047BCC92152</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>http://chriskempson.com</string>
|
||||
<key>name</key>
|
||||
<string>Tomorrow</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#AEAFAD</string>
|
||||
<key>foreground</key>
|
||||
<string>#4D4D4C</string>
|
||||
<key>invisibles</key>
|
||||
<string>#D1D1D1</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#EFEFEF</string>
|
||||
<key>selection</key>
|
||||
<string>#D6D6D6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8E908C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Foreground</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.class, constant.other, source.php.embedded.line</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#666969</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable, String Link, Regular Expression, Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C82829</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number, Constant, Function Argument, Tag Attribute, Embedded</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F5871F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class, Support</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, entity.name.type.class, support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C99E00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String, Symbols, Inherited Class, Markup Heading</string>
|
||||
<key>scope</key>
|
||||
<string>string, constant.other.symbol, entity.other.inherited-class, markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#718C00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator, Misc</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#3E999F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function, Special Method, Block Level</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4271AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword, Storage</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage, storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8959A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#C82829</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4271AE</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#8959A8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>82CCD69C-F1B1-4529-B39E-780F91F07604</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,647 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>Tomorrow Night</string>
|
||||
<key>name</key>
|
||||
<string>Tomorrow Night</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#1D1F21</string>
|
||||
<key>caret</key>
|
||||
<string>#7E807D</string>
|
||||
<key>foreground</key>
|
||||
<string>#AFB0AE</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#282A2E</string>
|
||||
<key>selection</key>
|
||||
<string>#373B41</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tomorrow Night</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>By Chris Kempson</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>http://tomorrowtheme.com</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8E8F8D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A7B367</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D09562</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D09562</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D56C69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D56C69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D56C69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, entity.name.type.class, entity.name.type.module</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D56C69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C3A2CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AFB0AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other, variable.js, punctuation.separator.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Language Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D09562</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Meta Brace</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A7B367</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF0B00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Normal Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.php, variable.other.normal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D56C69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Call</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Object</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call.object</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function Call Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.property</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword Control</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BB99C1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BF9CBE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Doctype</string>
|
||||
<key>scope</key>
|
||||
<string>meta.doctype, meta.tag.sgml-declaration.doctype, meta.tag.sgml.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A7B367</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Inline Source</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.inline source, text.html.php.source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A7B367</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Other</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.other, entity.name.tag.style, entity.name.tag.script, meta.tag.block.script, source.js.embedded punctuation.definition.tag.html, source.css.embedded punctuation.definition.tag.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C3A2CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name, meta.tag punctuation.definition.string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C2A2CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag Value</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag string -source -punctuation, text source text meta.tag string -punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Meta Brace</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D09562</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML ID</string>
|
||||
<key>scope</key>
|
||||
<string>meta.toc-list.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C2A2CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS ID</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BA9AC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Property Name</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#82A3BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Property Value</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D56C69</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JavaScript Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D66C68</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Function Call</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call.object.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D3B96B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Single Quote HMTL Fix</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string.end.php, punctuation.definition.string.begin.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A8B06E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Parenthesis HMTL Fix</string>
|
||||
<key>scope</key>
|
||||
<string>source.php.embedded.line.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AFB0AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Symbol</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.symbol.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A7B467</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D3B96B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Special Method</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.special-method.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D3B96C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>source.ruby.embedded.source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D09562</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SQL</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.DML.sql</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D3B96B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>46647F37-962F-491B-84F4-770380692011</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>http://chriskempson.com</string>
|
||||
<key>name</key>
|
||||
<string>Tomorrow Night - Blue</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#002451</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#404F7D</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00346E</string>
|
||||
<key>selection</key>
|
||||
<string>#003F8E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7285B7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Foreground, Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.class, keyword.operator, constant.other, source.php.embedded.line</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable, String Link, Regular Expression, Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF9DA4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number, Constant, Function Argument, Tag Attribute, Embedded</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFC58F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class, Support</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, entity.name.type.class, support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFEEAD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String, Symbols, Inherited Class, Markup Heading</string>
|
||||
<key>scope</key>
|
||||
<string>string, constant.other.symbol, entity.other.inherited-class, markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D1F1A9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator, Misc</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#99FFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function, Special Method, Block Level</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BBDAFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword, Storage</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage, storage.type, entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#EBBBFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F99DA5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#BBDAFE</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EBBBFF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>3F4BB232-3C3A-4396-99C0-06A9573715E9</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>http://chriskempson.com</string>
|
||||
<key>name</key>
|
||||
<string>Tomorrow Night - Bright</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000</string>
|
||||
<key>caret</key>
|
||||
<string>#9F9F9F</string>
|
||||
<key>foreground</key>
|
||||
<string>#DEDEDE</string>
|
||||
<key>invisibles</key>
|
||||
<string>#343434</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#2A2A2A</string>
|
||||
<key>selection</key>
|
||||
<string>#424242</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#969896</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Foreground</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.class, constant.other, source.php.embedded.line</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#EEEEEE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable, String Link, Regular Expression, Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D54E53</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number, Constant, Function Argument, Tag Attribute, Embedded</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E78C45</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class, Support</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, entity.name.type.class, support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E7C547</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String, Symbols, Inherited Class, Markup Heading</string>
|
||||
<key>scope</key>
|
||||
<string>string, constant.other.symbol, entity.other.inherited-class, markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B9CA4A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator, Misc</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#70C0B1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function, Special Method, Block Level</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7AA6DA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword, Storage</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage, storage.type, entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C397D8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DF5F5F</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CED2CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#82A3BF</string>
|
||||
<key>foreground</key>
|
||||
<string>#CED2CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B798BF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CED2CF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>33D8C715-AD3A-455B-8DF2-56F708909FFE</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>comment</key>
|
||||
<string>http://chriskempson.com</string>
|
||||
<key>name</key>
|
||||
<string>Tomorrow Night - Eighties</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#2D2D2D</string>
|
||||
<key>caret</key>
|
||||
<string>#CCCCCC</string>
|
||||
<key>foreground</key>
|
||||
<string>#CCCCCC</string>
|
||||
<key>invisibles</key>
|
||||
<string>#6A6A6A</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#393939</string>
|
||||
<key>selection</key>
|
||||
<string>#515151</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Foreground</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.class, constant.other, source.php.embedded.line</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CCCCCC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable, String Link, Tag Name</string>
|
||||
<key>scope</key>
|
||||
<string>variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F2777A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number, Constant, Function Argument, Tag Attribute, Embedded</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F99157</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class, Support</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, entity.name.type.class, support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFCC66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String, Symbols, Inherited Class, Markup Heading</string>
|
||||
<key>scope</key>
|
||||
<string>string, constant.other.symbol, entity.other.inherited-class, markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#99CC99</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator, Misc</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, constant.other.color</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#66CCCC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function, Special Method, Block Level</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#99CCCC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword, Storage</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage, storage.type, entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CC99CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F2777A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CDCDCD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#99CCCC</string>
|
||||
<key>foreground</key>
|
||||
<string>#CDCDCD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#CC99CC</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CDCDCD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>DE477E5B-BD4D-46B0-BF80-2EA32A2814D5</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,610 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>Michael Sheets</string>
|
||||
<key>gutterSettings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#232323</string>
|
||||
<key>divider</key>
|
||||
<string>#414143</string>
|
||||
<key>foreground</key>
|
||||
<string>#E2E2E2</string>
|
||||
<key>selectionBackground</key>
|
||||
<string>#414143</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#484848</string>
|
||||
<key>selectionForeground</key>
|
||||
<string>#BABABA</string>
|
||||
</dict>
|
||||
<key>name</key>
|
||||
<string>Twilight</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.twilight</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#141414</string>
|
||||
<key>caret</key>
|
||||
<string>#A7A7A7</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
<key>invisibles</key>
|
||||
<string>#FFFFFF40</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#FFFFFF08</string>
|
||||
<key>selection</key>
|
||||
<string>#DDF0FF33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Foldings</string>
|
||||
<key>scope</key>
|
||||
<string>deco.folding</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#5A6A65</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#5F5A60</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CF6A4C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B703F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CDA869</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F9EE98</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B859D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7587A6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#D2A8A1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#562D56BF</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>meta.embedded.block, punctuation.whitespace.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B0B3BA14</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Embedded Source (Bright)</string>
|
||||
<key>scope</key>
|
||||
<string>meta.embedded.line</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B1B3BA21</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Entity inherited-class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#9B5C2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String embedded-source</string>
|
||||
<key>scope</key>
|
||||
<string>string meta.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#DAEFA3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#DDF2A4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E9C062</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.«special»</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CF7D34</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8A9A95</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#DAD085</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#9B859D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CF6A4C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c, source.swift meta.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8996A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c keyword, source.swift meta.preprocessor keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AFC4DB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.metadata.doctype, meta.tag.metadata.doctype entity, meta.tag.metadata.doctype string, meta.tag.metadata.processing.xml, meta.tag.metadata.processing.xml entity, meta.tag.metadata.processing.xml string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#494949</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.«all»</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.tag, declaration.tag entity, meta.tag, meta.tag entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AC885B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.inline</string>
|
||||
<key>scope</key>
|
||||
<string>declaration.tag.inline, declaration.tag.inline entity, meta.tag.inline, meta.tag.inline entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E0C589</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CDA869</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css:pseudo-class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.tag.pseudo-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css#id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8B98AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css.class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9B703F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-name:</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C5AF75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-value;</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F9EE98</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8693A5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CA7840</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header, meta.separator, meta.diff.range, meta.diff.index</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0E2231</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#420E09</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4A410D</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#253B22</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F9EE98</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CF6A4C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Raw Block</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.block</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B0B3BA14</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Test: 1</string>
|
||||
<key>scope</key>
|
||||
<string>meta.test1</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0E2231C5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Test: 2</string>
|
||||
<key>scope</key>
|
||||
<string>meta.test2</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#420E0990</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Test: 3</string>
|
||||
<key>scope</key>
|
||||
<string>meta.test3</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4A410D90</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Test: 4</string>
|
||||
<key>scope</key>
|
||||
<string>meta.test4</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#253B2290</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>766026CB-703D-4610-B070-8DE07D967C5F</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,447 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Vibrant Ink</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#404040</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#333300</string>
|
||||
<key>selection</key>
|
||||
<string>#35493CE0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Text base</string>
|
||||
<key>scope</key>
|
||||
<string>text</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0F0F0F</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inline Ruby Html</string>
|
||||
<key>scope</key>
|
||||
<string>source.ruby.rails.embedded.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Html</string>
|
||||
<key>scope</key>
|
||||
<string>text.html.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#101010</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CCFF33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Ruby source</string>
|
||||
<key>scope</key>
|
||||
<string>source.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Source base</string>
|
||||
<key>scope</key>
|
||||
<string>source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9933CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#339999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF6600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Pre-processor Line</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#EDF8F9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Pre-processor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.preprocessor directive</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, storage.type.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFCC00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Block comment</string>
|
||||
<key>scope</key>
|
||||
<string>source comment.block</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#070707</string>
|
||||
<key>foreground</key>
|
||||
<string>#772CB7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ActiveRecord Function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.activerecord.rails</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#999966</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#66FF00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String escapes</string>
|
||||
<key>scope</key>
|
||||
<string>string constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AAAAAA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String (executed)</string>
|
||||
<key>scope</key>
|
||||
<string>string.interpolated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#CCCC33</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Regular expression</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#44B4CC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String (literal)</string>
|
||||
<key>scope</key>
|
||||
<string>string.literal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CCCC33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String escapes (executed)</string>
|
||||
<key>scope</key>
|
||||
<string>string.interpolated constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#555555</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, support.class.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class inheritance</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Html Meta</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.inline.any.html, meta.tag.block.any.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF6600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#99CC99</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Other Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#DDE93D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Selector</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css, entity.other.attribute-name.pseudo-class.css, entity.name.tag.wildcard.css, entity.other.attribute-name.id.css, entity.other.attribute-name.class.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF6600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Property</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#999966</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Other</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.unit.css, constant.other.rgb-value.css, constant.numeric.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript Events</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.event-handler.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript Operators</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CCCC66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Prototype Objects</string>
|
||||
<key>scope</key>
|
||||
<string>support.class.prototype.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Prototype Methods</string>
|
||||
<key>scope</key>
|
||||
<string>object.property.function.prototype.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF6600</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>4B7A9AA6-C472-4460-BA48-199E2624956B</string>
|
||||
</dict>
|
||||
</plist>
|
||||
918
modules/backend/formwidgets/codeeditor/assets/themes/winter.json
Normal file
918
modules/backend/formwidgets/codeeditor/assets/themes/winter.json
Normal file
@@ -0,0 +1,918 @@
|
||||
{
|
||||
"name": "Winter",
|
||||
"semanticHighlighting": true,
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"activityBar.activeBorder": "#86a9ff",
|
||||
"activityBar.background": "#0a0c10",
|
||||
"activityBar.border": "#303339",
|
||||
"activityBar.foreground": "#bdc1ca",
|
||||
"activityBar.inactiveForeground": "#84878f",
|
||||
"activityBarBadge.background": "#86a9ff",
|
||||
"activityBarBadge.foreground": "#17191e",
|
||||
"badge.background": "#284992",
|
||||
"badge.foreground": "#d4d8e2",
|
||||
"breadcrumb.activeSelectionForeground": "#84878f",
|
||||
"breadcrumb.focusForeground": "#bdc1ca",
|
||||
"breadcrumb.foreground": "#84878f",
|
||||
"breadcrumbPicker.background": "#24262c",
|
||||
"button.background": "#86a9ff",
|
||||
"button.foreground": "#17191e",
|
||||
"button.hoverBackground": "#7796e0",
|
||||
"button.secondaryBackground": "#303339",
|
||||
"button.secondaryForeground": "#bdc1ca",
|
||||
"button.secondaryHoverBackground": "#2d3036",
|
||||
"charts.blue": "#8bacfe",
|
||||
"charts.green": "#a1c861",
|
||||
"charts.orange": "#ff9946",
|
||||
"charts.purple": "#bfa0ee",
|
||||
"charts.red": "#ff8d90",
|
||||
"charts.yellow": "#e1b834",
|
||||
"checkbox.background": "#303339",
|
||||
"checkbox.border": "#303339",
|
||||
"debugConsole.errorForeground": "#ff8d90",
|
||||
"debugConsole.infoForeground": "#9b9ea7",
|
||||
"debugConsole.sourceForeground": "#9b9ea7",
|
||||
"debugConsole.warningForeground": "#e5b700",
|
||||
"debugConsoleInputIcon.foreground": "#bfa0ee",
|
||||
"debugExceptionWidget.background": "#851a27",
|
||||
"debugExceptionWidget.border": "#962631",
|
||||
"debugIcon.breakpointCurrentStackframeForeground": "#e1b834",
|
||||
"debugIcon.breakpointDisabledForeground": "#9b9ea7",
|
||||
"debugIcon.breakpointForeground": "#e97377",
|
||||
"debugIcon.breakpointStackframeForeground": "#a1c861",
|
||||
"debugIcon.breakpointUnverifiedForeground": "#9b9ea7",
|
||||
"debugIcon.continueForeground": "#8bacfe",
|
||||
"debugIcon.disconnectForeground": "#ff8d90",
|
||||
"debugIcon.pauseForeground": "#8bacfe",
|
||||
"debugIcon.restartForeground": "#a1c861",
|
||||
"debugIcon.startForeground": "#a1c861",
|
||||
"debugIcon.stepBackForeground": "#8bacfe",
|
||||
"debugIcon.stepIntoForeground": "#8bacfe",
|
||||
"debugIcon.stepOutForeground": "#8bacfe",
|
||||
"debugIcon.stepOverForeground": "#8bacfe",
|
||||
"debugIcon.stopForeground": "#ff8d90",
|
||||
"debugTokenExpression.boolean": "#92b1ff",
|
||||
"debugTokenExpression.error": "#ff8d90",
|
||||
"debugTokenExpression.name": "#bdc1ca",
|
||||
"debugTokenExpression.number": "#92b1ff",
|
||||
"debugTokenExpression.string": "#a3ce57",
|
||||
"debugTokenExpression.value": "#a3ce57",
|
||||
"debugToolBar.background": "#24262c",
|
||||
"debugView.exceptionLabelBackground": "#851a27",
|
||||
"descriptionForeground": "#84878f",
|
||||
"diffEditor.diagonalFill": "#3d3f46",
|
||||
"diffEditor.insertedLineBackground": "#3f58214d",
|
||||
"diffEditor.insertedTextBackground": "#3e5815b3",
|
||||
"diffEditor.removedLineBackground": "#7e34324d",
|
||||
"diffEditor.removedTextBackground": "#7c2c2fb3",
|
||||
"disabledForeground": "#84878f",
|
||||
"dropdown.background": "#24262c",
|
||||
"dropdown.border": "#24262c",
|
||||
"dropdown.foreground": "#bdc1ca",
|
||||
"dropdown.listBackground": "#24262c",
|
||||
"editor.background": "#17191e",
|
||||
"editor.findMatchBackground": "#755c00",
|
||||
"editor.findMatchHighlightBackground": "#5a4400bf",
|
||||
"editor.focusedStackFrameHighlightBackground": "#9b750099",
|
||||
"editor.foldBackground": "#24262cb3",
|
||||
"editor.foreground": "#bdc1ca",
|
||||
"editor.inlineValuesForeground": "#84878f",
|
||||
"editor.lineHighlightBackground": "#2a2c32b3",
|
||||
"editor.linkedEditingBackground": "#004e4f",
|
||||
"editor.selectionBackground": "#424f6db3",
|
||||
"editor.selectionHighlightBackground": "#494d5480",
|
||||
"editor.stackFrameHighlightBackground": "#63970080",
|
||||
"editor.wordHighlightBackground": "#63656e80",
|
||||
"editor.wordHighlightBorder": "#00000000",
|
||||
"editor.wordHighlightStrongBackground": "#63656e80",
|
||||
"editor.wordHighlightStrongBorder": "#00000000",
|
||||
"editorBracketHighlight.foreground1": "#c5a0fb",
|
||||
"editorBracketHighlight.foreground2": "#ff9396",
|
||||
"editorBracketHighlight.foreground3": "#ff9e51",
|
||||
"editorBracketHighlight.foreground4": "#e0b627",
|
||||
"editorBracketHighlight.foreground5": "#a3ce57",
|
||||
"editorBracketHighlight.foreground6": "#49c3c5",
|
||||
"editorBracketHighlight.unexpectedBracket.foreground": "#84878f",
|
||||
"editorBracketMatch.background": "#63656e80",
|
||||
"editorBracketMatch.border": "#00000000",
|
||||
"editorCodeLens.foreground": "#84878f",
|
||||
"editorCursor.foreground": "#bacdff",
|
||||
"editorError.foreground": "#f6676f",
|
||||
"editorGhostText.foreground": "#84878f",
|
||||
"editorGroup.border": "#303339",
|
||||
"editorGroup.dropBackground": "#494d5480",
|
||||
"editorGroupHeader.tabsBackground": "#0a0c10",
|
||||
"editorGroupHeader.tabsBorder": "#303339",
|
||||
"editorGutter.addedBackground": "#677e4a",
|
||||
"editorGutter.deletedBackground": "#9c5e62",
|
||||
"editorGutter.modifiedBackground": "#5b6f9e",
|
||||
"editorHint.foreground": "#6d6f77",
|
||||
"editorHoverWidget.border": "#3d3f46",
|
||||
"editorIndentGuide.activeBackground": "#494b52",
|
||||
"editorIndentGuide.background": "#494d5480",
|
||||
"editorInfo.foreground": "#8bacfe",
|
||||
"editorInlayHint.background": "#3b3e45b3",
|
||||
"editorInlayHint.foreground": "#84878f",
|
||||
"editorInlayHint.typeBackground": "#3b3e45b3",
|
||||
"editorInlayHint.typeForeground": "#84878f",
|
||||
"editorLightBulb.foreground": "#e1b834",
|
||||
"editorLightBulbAutoFix.foreground": "#86a9ff",
|
||||
"editorLineNumber.activeForeground": "#9b9ea7",
|
||||
"editorLineNumber.foreground": "#55585f",
|
||||
"editorLink.activeForeground": "#86a9ff",
|
||||
"editorOverviewRuler.border": "#0a0c10",
|
||||
"editorRuler.foreground": "#63656e80",
|
||||
"editorSuggestWidget.border": "#3d3f46",
|
||||
"editorWarning.foreground": "#c9a100",
|
||||
"editorWhitespace.foreground": "#494b52",
|
||||
"editorWidget.background": "#24262c",
|
||||
"editorWidget.border": "#3d3f46",
|
||||
"editorWidget.foreground": "#9b9ea7",
|
||||
"errorForeground": "#f6676f",
|
||||
"focusBorder": "#5e74ab",
|
||||
"foreground": "#bdc1ca",
|
||||
"gitDecoration.addedResourceForeground": "#a1c861",
|
||||
"gitDecoration.conflictingResourceForeground": "#ff9946",
|
||||
"gitDecoration.deletedResourceForeground": "#ff8d90",
|
||||
"gitDecoration.ignoredResourceForeground": "#9b9ea7",
|
||||
"gitDecoration.modifiedResourceForeground": "#8bacfe",
|
||||
"gitDecoration.renamedResourceForeground": "#a1c861",
|
||||
"gitDecoration.stageDeletedResourceForeground": "#ff8d90",
|
||||
"gitDecoration.stageModifiedResourceForeground": "#8bacfe",
|
||||
"gitDecoration.submoduleResourceForeground": "#84878f",
|
||||
"gitDecoration.untrackedResourceForeground": "#a1c861",
|
||||
"icon.foreground": "#9b9ea7",
|
||||
"input.background": "#17191e",
|
||||
"input.border": "#303339",
|
||||
"input.foreground": "#bdc1ca",
|
||||
"input.placeholderForeground": "#84878f",
|
||||
"inputOption.activeBackground": "#26407a",
|
||||
"inputOption.activeForeground": "#bacdff",
|
||||
"inputOption.hoverBackground": "#2b2e34",
|
||||
"inputValidation.errorBackground": "#851a27",
|
||||
"inputValidation.errorBorder": "#962631",
|
||||
"inputValidation.infoBackground": "#234082",
|
||||
"inputValidation.infoBorder": "#2f4d90",
|
||||
"inputValidation.warningBackground": "#665000",
|
||||
"inputValidation.warningBorder": "#755c00",
|
||||
"keybindingLabel.background": "#303339",
|
||||
"keybindingLabel.border": "#3d3f46",
|
||||
"keybindingLabel.bottomBorder": "#3d3f46",
|
||||
"keybindingLabel.foreground": "#bdc1ca",
|
||||
"list.activeSelectionBackground": "#1a3c83",
|
||||
"list.activeSelectionForeground": "#d4d8e2",
|
||||
"list.errorForeground": "#f6676f",
|
||||
"list.focusBackground": "#303339",
|
||||
"list.focusForeground": "#bdc1ca",
|
||||
"list.highlightForeground": "#bacdff",
|
||||
"list.hoverBackground": "#3d3f46",
|
||||
"list.hoverForeground": "#bdc1ca",
|
||||
"list.inactiveFocusBackground": "#303339",
|
||||
"list.inactiveSelectionBackground": "#24262c",
|
||||
"list.inactiveSelectionForeground": "#bdc1ca",
|
||||
"list.invalidItemForeground": "#c9a100",
|
||||
"list.warningForeground": "#ffce1b",
|
||||
"menu.separatorBackground": "#3d3f46",
|
||||
"menubar.selectionBackground": "#303339",
|
||||
"menubar.selectionForeground": "#bdc1ca",
|
||||
"merge.commonContentBackground": "#2a2c32b3",
|
||||
"merge.commonHeaderBackground": "#3b3e45b3",
|
||||
"merge.currentContentBackground": "#26447f66",
|
||||
"merge.currentHeaderBackground": "#314e8db3",
|
||||
"merge.incomingContentBackground": "#3d5a1e66",
|
||||
"merge.incomingHeaderBackground": "#49651eb3",
|
||||
"minimap.errorHighlight": "#851a27",
|
||||
"minimap.findMatchHighlight": "#493900",
|
||||
"minimap.selectionHighlight": "#284992",
|
||||
"minimap.warningHighlight": "#665000",
|
||||
"notificationCenterHeader.background": "#303339",
|
||||
"notificationCenterHeader.foreground": "#84878f",
|
||||
"notifications.background": "#303339",
|
||||
"notifications.border": "#303339",
|
||||
"notifications.foreground": "#bdc1ca",
|
||||
"notificationsErrorIcon.foreground": "#ff8d90",
|
||||
"notificationsInfoIcon.foreground": "#8bacfe",
|
||||
"notificationsWarningIcon.foreground": "#e5b700",
|
||||
"panel.background": "#0a0c10",
|
||||
"panel.border": "#303339",
|
||||
"panelInput.border": "#303339",
|
||||
"panelTitle.activeBorder": "#86a9ff",
|
||||
"panelTitle.activeForeground": "#bdc1ca",
|
||||
"panelTitle.inactiveForeground": "#84878f",
|
||||
"peekView.border": "#86a9ff",
|
||||
"peekViewEditor.background": "#24262c",
|
||||
"peekViewEditor.matchHighlightBackground": "#493900",
|
||||
"peekViewResult.background": "#17191e",
|
||||
"peekViewResult.fileForeground": "#bdc1ca",
|
||||
"peekViewResult.lineForeground": "#9b9ea7",
|
||||
"peekViewResult.matchHighlightBackground": "#493900",
|
||||
"peekViewResult.selectionBackground": "#1a3c83",
|
||||
"peekViewResult.selectionForeground": "#d4d8e2",
|
||||
"peekViewTitle.background": "#24262c",
|
||||
"peekViewTitleDescription.foreground": "#84878f",
|
||||
"peekViewTitleLabel.foreground": "#d4d8e2",
|
||||
"pickerGroup.border": "#3d3f46",
|
||||
"pickerGroup.foreground": "#84878f",
|
||||
"progressBar.background": "#86a9ff",
|
||||
"quickInput.background": "#24262c",
|
||||
"quickInput.foreground": "#bdc1ca",
|
||||
"scrollbar.shadow": "#17191e",
|
||||
"scrollbarSlider.activeBackground": "#5e6068b3",
|
||||
"scrollbarSlider.background": "#6a70784d",
|
||||
"scrollbarSlider.hoverBackground": "#63656e80",
|
||||
"selection.background": "#424f6db3",
|
||||
"settings.headerForeground": "#84878f",
|
||||
"settings.modifiedItemIndicator": "#2f4d90",
|
||||
"sideBar.background": "#111217",
|
||||
"sideBar.border": "#303339",
|
||||
"sideBar.foreground": "#bdc1ca",
|
||||
"sideBarSectionHeader.background": "#111217",
|
||||
"sideBarSectionHeader.border": "#303339",
|
||||
"sideBarSectionHeader.foreground": "#bdc1ca",
|
||||
"sideBarTitle.foreground": "#bdc1ca",
|
||||
"statusBar.background": "#111217",
|
||||
"statusBar.border": "#303339",
|
||||
"statusBar.debuggingBackground": "#513875",
|
||||
"statusBar.debuggingForeground": "#bdc1ca",
|
||||
"statusBar.focusBorder": "#5e74ab",
|
||||
"statusBar.foreground": "#84878f",
|
||||
"statusBar.noFolderBackground": "#111217",
|
||||
"statusBarItem.activeBackground": "#3d3f46",
|
||||
"statusBarItem.errorBackground": "#851a27",
|
||||
"statusBarItem.errorForeground": "#d4d8e2",
|
||||
"statusBarItem.focusBorder": "#5e74ab",
|
||||
"statusBarItem.hoverBackground": "#303339",
|
||||
"statusBarItem.prominentBackground": "#24262c",
|
||||
"statusBarItem.remoteBackground": "#111217",
|
||||
"statusBarItem.remoteForeground": "#f39244",
|
||||
"statusBarItem.warningBackground": "#665000",
|
||||
"statusBarItem.warningForeground": "#d4d8e2",
|
||||
"symbolIcon.arrayForeground": "#5dbded",
|
||||
"symbolIcon.booleanForeground": "#92b1ff",
|
||||
"symbolIcon.classForeground": "#5dbded",
|
||||
"symbolIcon.colorForeground": "#a3ce57",
|
||||
"symbolIcon.constructorForeground": "#ff9396",
|
||||
"symbolIcon.enumeratorForeground": "#5dbded",
|
||||
"symbolIcon.enumeratorMemberForeground": "#92b1ff",
|
||||
"symbolIcon.eventForeground": "#9b9ea7",
|
||||
"symbolIcon.fieldForeground": "#5dbded",
|
||||
"symbolIcon.fileForeground": "#92b1ff",
|
||||
"symbolIcon.folderForeground": "#92b1ff",
|
||||
"symbolIcon.functionForeground": "#ff9e51",
|
||||
"symbolIcon.interfaceForeground": "#5dbded",
|
||||
"symbolIcon.keyForeground": "#92b1ff",
|
||||
"symbolIcon.keywordForeground": "#e0b627",
|
||||
"symbolIcon.methodForeground": "#ff9e51",
|
||||
"symbolIcon.moduleForeground": "#92b1ff",
|
||||
"symbolIcon.namespaceForeground": "#92b1ff",
|
||||
"symbolIcon.nullForeground": "#e0b627",
|
||||
"symbolIcon.numberForeground": "#49c3c5",
|
||||
"symbolIcon.objectForeground": "#5dbded",
|
||||
"symbolIcon.operatorForeground": "#a3ce57",
|
||||
"symbolIcon.packageForeground": "#5dbded",
|
||||
"symbolIcon.propertyForeground": "#5dbded",
|
||||
"symbolIcon.referenceForeground": "#92b1ff",
|
||||
"symbolIcon.snippetForeground": "#92b1ff",
|
||||
"symbolIcon.stringForeground": "#a3ce57",
|
||||
"symbolIcon.structForeground": "#5dbded",
|
||||
"symbolIcon.textForeground": "#a3ce57",
|
||||
"symbolIcon.typeParameterForeground": "#a3ce57",
|
||||
"symbolIcon.unitForeground": "#92b1ff",
|
||||
"symbolIcon.variableForeground": "#5dbded",
|
||||
"tab.activeBackground": "#17191e",
|
||||
"tab.activeBorder": "#17191e",
|
||||
"tab.activeBorderTop": "#5e74ab",
|
||||
"tab.activeForeground": "#bdc1ca",
|
||||
"tab.border": "#303339",
|
||||
"tab.hoverBackground": "#17191e99",
|
||||
"tab.inactiveBackground": "#0a0c10",
|
||||
"tab.inactiveForeground": "#84878f",
|
||||
"tab.unfocusedActiveBorder": "#17191e",
|
||||
"tab.unfocusedActiveBorderTop": "#303339",
|
||||
"tab.unfocusedHoverBackground": "#17191e66",
|
||||
"terminal.ansiBlack": "#17191e",
|
||||
"terminal.ansiBlue": "#8bacfe",
|
||||
"terminal.ansiBrightBlack": "#55585f",
|
||||
"terminal.ansiBrightBlue": "#aec4ff",
|
||||
"terminal.ansiBrightCyan": "#7de5e7",
|
||||
"terminal.ansiBrightGreen": "#bade7f",
|
||||
"terminal.ansiBrightMagenta": "#d5b9ff",
|
||||
"terminal.ansiBrightRed": "#ffb3b4",
|
||||
"terminal.ansiBrightWhite": "#d4d8e2",
|
||||
"terminal.ansiBrightYellow": "#f5d05f",
|
||||
"terminal.ansiCyan": "#4bd1d3",
|
||||
"terminal.ansiGreen": "#a1c861",
|
||||
"terminal.ansiMagenta": "#bfa0ee",
|
||||
"terminal.ansiRed": "#ff8d90",
|
||||
"terminal.ansiWhite": "#bdc1ca",
|
||||
"terminal.ansiYellow": "#e1b834",
|
||||
"terminal.foreground": "#bdc1ca",
|
||||
"terminalCommandDecoration.defaultBackground": "#6d6f77",
|
||||
"terminalCommandDecoration.errorBackground": "#962631",
|
||||
"terminalCommandDecoration.successBackground": "#49650f",
|
||||
"testing.iconErrored": "#ff8d90",
|
||||
"testing.iconFailed": "#ff8d90",
|
||||
"testing.iconPassed": "#a1c861",
|
||||
"testing.iconQueued": "#e5b700",
|
||||
"testing.iconSkipped": "#9b9ea7",
|
||||
"testing.iconUnset": "#9b9ea7",
|
||||
"testing.message.error.decorationForeground": "#ff8d90",
|
||||
"testing.message.error.lineBackground": "#851a27",
|
||||
"testing.runAction": "#a1c861",
|
||||
"textBlockQuote.background": "#0a0c10",
|
||||
"textBlockQuote.border": "#303339",
|
||||
"textCodeBlock.background": "#303339",
|
||||
"textLink.activeForeground": "#86a9ff",
|
||||
"textLink.foreground": "#86a9ff",
|
||||
"textPreformat.foreground": "#84878f",
|
||||
"textSeparator.foreground": "#84878f",
|
||||
"titleBar.activeBackground": "#111217",
|
||||
"titleBar.activeForeground": "#9b9ea7",
|
||||
"titleBar.border": "#303339",
|
||||
"titleBar.inactiveBackground": "#111217",
|
||||
"titleBar.inactiveForeground": "#84878f",
|
||||
"toolbar.activeBackground": "#63656e80",
|
||||
"toolbar.hoverBackground": "#494d5480",
|
||||
"tree.indentGuidesStroke": "#494b52",
|
||||
"widget.shadow": "#03050a4d"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string",
|
||||
"constant.other.symbol",
|
||||
"string.quoted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a3ce57"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.character",
|
||||
"constant.other"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.character.format",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.other.caps",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.parameter.function.language.special.self",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.numeric",
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.language",
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.constant",
|
||||
"entity.name.constant"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable",
|
||||
"settings": {
|
||||
"foreground": "#bdc1ca"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.member",
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.language",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"storage",
|
||||
"storage.type.keyword"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.java meta.class.java meta.class.identifier.java storage.type.java",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.operator",
|
||||
"settings": {
|
||||
"foreground": "#ff9396",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.separator",
|
||||
"punctuation.terminator",
|
||||
"punctuation.semi"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.section",
|
||||
"settings": {
|
||||
"foreground": "#bdc1ca"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.accessor",
|
||||
"settings": {
|
||||
"foreground": "#ff9396"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.definition.template-expression",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.section.interpolation",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.java storage.type",
|
||||
"source.haskell storage.type",
|
||||
"source.c storage.type",
|
||||
"source.zig storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5dbded",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.other.inherited-class",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type.function.arrow",
|
||||
"settings": {
|
||||
"foreground": "#e0b627",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.java storage.type.primitive",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.parameter",
|
||||
"meta.parameter"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.function",
|
||||
"variable.annotation",
|
||||
"meta.function-call.generic",
|
||||
"support.function.go"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.function",
|
||||
"support.macro"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.import",
|
||||
"entity.name.package"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a3ce57"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name",
|
||||
"source.js meta.function-call.constructor variable.type",
|
||||
"support.class.component.vue"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5dbded",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"meta.tag.sgml"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.definition.tag.end",
|
||||
"punctuation.definition.tag.begin",
|
||||
"punctuation.definition.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5c9b9f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.constant",
|
||||
"settings": {
|
||||
"foreground": "#ff9396"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type",
|
||||
"support.class",
|
||||
"source.go storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.decorator variable.other",
|
||||
"meta.decorator punctuation.decorator",
|
||||
"storage.type.annotation",
|
||||
"variable.annotation",
|
||||
"punctuation.definition.annotation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "invalid",
|
||||
"settings": {
|
||||
"foreground": "#ff8d90"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a3ce57"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.ruby variable.other.readwrite",
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.css entity.name.tag",
|
||||
"source.sass entity.name.tag",
|
||||
"source.scss entity.name.tag",
|
||||
"source.less entity.name.tag",
|
||||
"source.stylus entity.name.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5dbded"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.css support.type",
|
||||
"source.sass support.type",
|
||||
"source.scss support.type",
|
||||
"source.less support.type",
|
||||
"source.stylus support.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.type.property-name",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.numeric.line-number.find-in-files - match",
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.numeric.line-number.match",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.filename.find-in-files",
|
||||
"settings": {
|
||||
"foreground": "#a3ce57"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "message.error",
|
||||
"settings": {
|
||||
"foreground": "#ff8d90"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"markup.heading entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a3ce57",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.underline.link",
|
||||
"string.other.link"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5dbded"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic",
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.italic markup.bold",
|
||||
"markup.bold markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.separator",
|
||||
"settings": {
|
||||
"foreground": "#84878f",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.list punctuation.definition.list.begin",
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"foreground": "#a1c861"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"foreground": "#8bacfe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"foreground": "#ff8d90"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.strike",
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.table",
|
||||
"settings": {
|
||||
"foreground": "#49c3c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "text.html.markdown markup.inline.raw",
|
||||
"settings": {
|
||||
"foreground": "#ff9396"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "text.html.markdown meta.dummy.line-break",
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.definition.markdown",
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#8bacfe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#e5b700"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#ff8d90"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#bfa0ee"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.other.enummember",
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.operator.key-value.rust",
|
||||
"punctuation.comma.rust"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#84878f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.attribute.rust",
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function.preprocessor",
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.label",
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.decorator.ts entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#92b1ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.json meta.structure.dictionary.json support.type.property-name.json",
|
||||
"settings": {
|
||||
"foreground": "#c5a0fb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json",
|
||||
"settings": {
|
||||
"foreground": "#ff9396"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json",
|
||||
"settings": {
|
||||
"foreground": "#ff9e51"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json",
|
||||
"settings": {
|
||||
"foreground": "#e0b627"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json",
|
||||
"settings": {
|
||||
"foreground": "#a3ce57"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticTokenColors": {
|
||||
"property.static.readonly": "#92b1ff",
|
||||
"variable.static": "#92b1ff",
|
||||
"selfKeyword": {
|
||||
"foreground": "#e0b627",
|
||||
"italic": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,267 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Notepad 2</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#BFBFBF</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#FFB85159</string>
|
||||
<key>selection</key>
|
||||
<string>#98CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF8000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#008000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF0000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language, variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#000080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#800080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#800080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>1231</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0000AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CE0000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#800080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>5DB91612-025C-4043-952B-E2B3A32FA27A</string>
|
||||
</dict>
|
||||
</plist>
|
||||
122
modules/backend/formwidgets/codeeditor/assets/winter.mix.js
Normal file
122
modules/backend/formwidgets/codeeditor/assets/winter.mix.js
Normal file
@@ -0,0 +1,122 @@
|
||||
/* eslint-disable */
|
||||
const mix = require('laravel-mix');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
|
||||
require('laravel-mix-polyfill');
|
||||
/* eslint-enable */
|
||||
|
||||
// Clean js/build directory before compiling
|
||||
const buildDir = path.join(__dirname, 'js/build');
|
||||
if (fs.existsSync(buildDir)) {
|
||||
fs.readdirSync(buildDir).forEach((file) => {
|
||||
const filePath = path.join(buildDir, file);
|
||||
if (fs.statSync(filePath).isDirectory()) {
|
||||
fs.rmSync(filePath, { recursive: true });
|
||||
} else {
|
||||
fs.unlinkSync(filePath);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mix.setPublicPath(__dirname);
|
||||
|
||||
mix
|
||||
.options({
|
||||
terser: {
|
||||
extractComments: false,
|
||||
},
|
||||
})
|
||||
|
||||
// Compile editor
|
||||
.js(
|
||||
'js/codeeditor.js',
|
||||
'js/build/codeeditor.bundle.js',
|
||||
)
|
||||
.less(
|
||||
'less/codeeditor.less',
|
||||
'css/codeeditor.css',
|
||||
)
|
||||
.webpackConfig({
|
||||
plugins: [
|
||||
new MonacoWebpackPlugin({
|
||||
filename: 'js/build/[name].worker.js',
|
||||
languages: [
|
||||
'typescript',
|
||||
'javascript',
|
||||
'css',
|
||||
'json',
|
||||
'html',
|
||||
'ini',
|
||||
'less',
|
||||
'markdown',
|
||||
'mysql',
|
||||
'php',
|
||||
'scss',
|
||||
'twig',
|
||||
'xml',
|
||||
'yaml',
|
||||
],
|
||||
features: [
|
||||
'anchorSelect',
|
||||
'bracketMatching',
|
||||
'caretOperations',
|
||||
'clipboard',
|
||||
'codelens',
|
||||
'colorPicker',
|
||||
'comment',
|
||||
'contextmenu',
|
||||
'cursorUndo',
|
||||
'find',
|
||||
'folding',
|
||||
'gotoSymbol',
|
||||
'hover',
|
||||
'inPlaceReplace',
|
||||
'indentation',
|
||||
'inlineHints',
|
||||
'links',
|
||||
'multicursor',
|
||||
'parameterHints',
|
||||
'rename',
|
||||
'smartSelect',
|
||||
'snippet',
|
||||
'suggest',
|
||||
'wordHighlighter',
|
||||
'wordOperations',
|
||||
],
|
||||
}),
|
||||
],
|
||||
})
|
||||
|
||||
// Polyfill for all targeted browsers
|
||||
.polyfill({
|
||||
enabled: mix.inProduction(),
|
||||
useBuiltIns: 'usage',
|
||||
targets: '> 0.5%, last 2 versions, not dead, Firefox ESR, not ie > 0',
|
||||
})
|
||||
|
||||
.after(() => {
|
||||
let bundle = fs.readFileSync('js/build/codeeditor.bundle.js', 'utf8');
|
||||
|
||||
// Remove inline CSS calls to the codicon font
|
||||
bundle = bundle.replace(/@font-face[^{]*\{(?:[^{}]|{[^}]*})*?codicon[^}]*?\}/g, '');
|
||||
|
||||
// Remove Monaco plugin's MonacoEnvironment assignment to prevent timing issues
|
||||
// This allows our runtime window.MonacoEnvironment from codeeditor.js to be used exclusively
|
||||
// The plugin's version uses hardcoded webpack publicPath which breaks CDN/subdirectory support
|
||||
// Pattern: ...}),self.MonacoEnvironment=(...});var
|
||||
// Replace: ,self.MonacoEnvironment=(...}); with just ;
|
||||
// Result: ...});var (valid JavaScript with proper statement terminator)
|
||||
const monacoEnvStart = bundle.indexOf(',self.MonacoEnvironment=');
|
||||
if (monacoEnvStart !== -1) {
|
||||
const afterStart = bundle.substring(monacoEnvStart);
|
||||
const monacoEnvEnd = afterStart.indexOf('});var');
|
||||
if (monacoEnvEnd !== -1) {
|
||||
// Replace the pattern with semicolon to maintain statement terminator
|
||||
// +3 to skip past '});' (3 characters)
|
||||
bundle = bundle.substring(0, monacoEnvStart) + ';' + bundle.substring(monacoEnvStart + monacoEnvEnd + 3);
|
||||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync('js/build/codeeditor.bundle.js', bundle);
|
||||
});
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php if ($this->previewMode): ?>
|
||||
<div class="form-control">
|
||||
<pre><?= e($value) ?></pre>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div
|
||||
id="<?= $this->getId() ?>"
|
||||
class="field-codeeditor size-<?= $size ?> <?= $stretch?'layout-relative':'' ?>"
|
||||
data-control="codeeditor"
|
||||
data-alias="<?= $this->alias ?? 'null' ?>"
|
||||
data-font-size="<?= $fontSize ?>"
|
||||
data-word-wrap="<?= $wordWrap ?>"
|
||||
data-code-folding="<?= $codeFolding ? 'true' : 'false' ?>"
|
||||
data-auto-close-tags="<?= $autoClosing ? 'true' : 'false' ?>"
|
||||
data-tab-size="<?= $tabSize ?>"
|
||||
data-theme="<?= $theme ?>"
|
||||
data-show-invisibles="<?= $showInvisibles ? 'true' : 'false' ?>"
|
||||
data-display-indent-guides="<?= $displayIndentGuides ? 'true' : 'false' ?>"
|
||||
data-show-print-margin="<?= $showPrintMargin ? 'true' : 'false' ?>"
|
||||
data-highlight-active-line="<?= $highlightActiveLine ? 'true' : 'false' ?>"
|
||||
data-use-soft-tabs="<?= $useSoftTabs ? 'true' : 'false' ?>"
|
||||
data-show-gutter="<?= $showGutter ? 'true' : 'false' ?>"
|
||||
data-read-only="<?= $readOnly ? 'true' : 'false' ?>"
|
||||
data-show-minimap="<?= $showMinimap ? 'true' : 'false' ?>"
|
||||
data-bracket-colors="<?= $bracketColors ? 'true': 'false' ?>"
|
||||
data-show-colors="<?= $showColors ? 'true' : 'false' ?>"
|
||||
data-language="<?= $language ?>"
|
||||
data-margin="<?= $margin ?>"
|
||||
data-scroll-past-end="<?= $scrollPastEnd ?>"
|
||||
<?= $this->formField->getAttributes() ?>
|
||||
>
|
||||
<div class="editor-container"></div>
|
||||
<div class="editor-toolbar" data-status-bar>
|
||||
<div class="language">
|
||||
<?= strtoupper($language) ?>
|
||||
</div>
|
||||
<div class="position">
|
||||
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a href="#" class="action" data-full-screen data-toggle="tooltip" title="<?= e(trans('backend::lang.editor.toggle_fullscreen')) ?>">
|
||||
<i class="icon-maximize"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<input name="<?= $name ?>" data-value-bag id="<?= $this->getId('value') ?>" type="hidden" value="<?= e($value) ?>">
|
||||
</div>
|
||||
<?php endif ?>
|
||||
1
modules/backend/formwidgets/colorpicker/assets/js/dist/colorpicker.js
vendored
Normal file
1
modules/backend/formwidgets/colorpicker/assets/js/dist/colorpicker.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,512 @@
|
||||
import Pickr from '@simonwep/pickr';
|
||||
import '@simonwep/pickr/dist/themes/nano.min.css';
|
||||
import '../../less/colorpicker.less';
|
||||
|
||||
((Snowboard, $) => {
|
||||
/**
|
||||
* Color picker widget.
|
||||
*
|
||||
* The color picker widget allows for easy colour selection from a color swatches, or a custom
|
||||
* color from a palette. The colour can be returned in various formats.
|
||||
*
|
||||
* @author Ben Thomson <git@alfreido.com>
|
||||
* @copyright 2023 Winter CMS
|
||||
*/
|
||||
class ColorPicker extends Snowboard.PluginBase {
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param {HTMLElement} element
|
||||
*/
|
||||
construct(element) {
|
||||
this.element = element;
|
||||
this.pickr = null;
|
||||
this.config = this.snowboard.dataConfig(this, element);
|
||||
|
||||
if (typeof this.config.get('formats') === 'string') {
|
||||
this.config.set('formats', [this.config.get('formats')]);
|
||||
}
|
||||
|
||||
// Child elements
|
||||
this.dataLocker = element.querySelector(this.config.get('dataLocker'));
|
||||
this.container = element.querySelector('.colorpicker-container');
|
||||
this.colorPreview = element.querySelector('[data-color-preview]');
|
||||
this.colorValue = element.querySelector('[data-color-value]');
|
||||
|
||||
// User inputs
|
||||
this.keyboardEntry = false;
|
||||
this.originalColor = null;
|
||||
this.originalFormat = null;
|
||||
this.formatSet = false;
|
||||
|
||||
// Events
|
||||
this.events = {
|
||||
focus: () => this.onFocus(),
|
||||
blur: () => this.onBlur(),
|
||||
keydown: (event) => this.onKeyDown(event),
|
||||
keyup: (event) => this.onKeyUp(event),
|
||||
colorClick: (event) => this.onColorClick(event),
|
||||
pickrInit: () => this.onPickerInit(),
|
||||
pickrChange: (hsva) => this.onPickerChange(hsva),
|
||||
pickrStopChange: () => this.onPickerStopChange(),
|
||||
pickrSwatch: (hsva) => this.onPickerSwatch(hsva),
|
||||
pickrCancel: () => this.onPickerStopChange(),
|
||||
pickrHide: () => this.onPickerHide(),
|
||||
pickrClear: () => this.onPickerClear(),
|
||||
stop: (event) => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
},
|
||||
};
|
||||
|
||||
this.createPickr();
|
||||
this.attachEvents();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default options for this widget.
|
||||
*
|
||||
* Available options:
|
||||
*
|
||||
* - `data-allow-custom`: If set, allows custom colors to be picked or entered, outside
|
||||
* of the available colors.
|
||||
* - `data-allow-empty`: If set, allows the color to be cleared.
|
||||
* - `data-available-colors=""`: An array of colors to be used as swatches.
|
||||
* - `data-data-locker=""`: A selector for the element that will be used to contain the selected color value.
|
||||
* - `data-disabled`: If set, disables the color picker.
|
||||
* - `data-formats=""`: The format to use for the color value. Can be `hex`, `rgb`, `hsl`, or `cmyk`.
|
||||
* - `data-show-alpha`: If set, shows the alpha channel.
|
||||
*
|
||||
* @returns {Object}
|
||||
*/
|
||||
defaults() {
|
||||
return {
|
||||
allowCustom: false,
|
||||
allowEmpty: false,
|
||||
availableColors: [],
|
||||
dataLocker: null,
|
||||
disabled: false,
|
||||
formats: 'hex',
|
||||
showAlpha: false,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Pickr instance.
|
||||
*/
|
||||
createPickr() {
|
||||
this.pickr = Pickr.create({
|
||||
el: this.colorPreview,
|
||||
theme: 'nano',
|
||||
disabled: this.config.get('disabled'),
|
||||
swatches: this.config.get('availableColors'),
|
||||
lockOpacity: !this.config.get('showAlpha'),
|
||||
useAsButton: true,
|
||||
container: this.element,
|
||||
comparison: true,
|
||||
showAlways: true,
|
||||
position: 'top-middle',
|
||||
components: {
|
||||
palette: this.config.get('allowCustom'),
|
||||
preview: this.config.get('allowCustom'),
|
||||
hue: this.config.get('allowCustom'),
|
||||
opacity: this.config.get('showAlpha'),
|
||||
interaction: {
|
||||
hex: (this.config.get('formats').length > 1 && this.config.get('formats').includes('hex')),
|
||||
rgba: (this.config.get('formats').length > 1 && this.config.get('formats').includes('rgb')),
|
||||
hsla: (this.config.get('formats').length > 1 && this.config.get('formats').includes('hsl')),
|
||||
cmyk: (this.config.get('formats').length > 1 && this.config.get('formats').includes('cmyk')),
|
||||
|
||||
input: false,
|
||||
cancel: false,
|
||||
clear: this.config.get('allowEmpty'),
|
||||
save: false,
|
||||
},
|
||||
},
|
||||
i18n: {
|
||||
'btn:last-color': $.wn.lang.get('colorpicker.last_color', 'Use previously selected color'),
|
||||
'aria:palette': $.wn.lang.get('colorpicker.aria_palette', 'Color selection area'),
|
||||
'aria:hue': $.wn.lang.get('colorpicker.aria_hue', 'Hue selection slider'),
|
||||
'aria:opacity': $.wn.lang.get('colorpicker.aria_opacity', 'Opacity selection slider'),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Attaches event listeners for several interactions.
|
||||
*/
|
||||
attachEvents() {
|
||||
this.colorValue.addEventListener('focus', this.events.focus);
|
||||
this.colorValue.addEventListener('blur', this.events.blur);
|
||||
this.colorValue.addEventListener('keydown', this.events.keydown);
|
||||
this.colorValue.addEventListener('keyup', this.events.keyup);
|
||||
|
||||
this.colorPreview.addEventListener('click', this.events.colorClick);
|
||||
|
||||
this.pickr.on('init', this.events.pickrInit);
|
||||
this.pickr.on('change', this.events.pickrChange);
|
||||
this.pickr.on('changestop', this.events.pickrStopChange);
|
||||
this.pickr.on('swatchselect', this.events.pickrSwatch);
|
||||
this.pickr.on('cancel', this.events.pickrCancel);
|
||||
this.pickr.on('hide', this.events.pickrHide);
|
||||
this.pickr.on('clear', this.events.pickrClear);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructor.
|
||||
*/
|
||||
destruct() {
|
||||
this.colorValue.removeEventListener('focus', this.events.focus);
|
||||
this.colorValue.removeEventListener('blur', this.events.blur);
|
||||
this.colorValue.removeEventListener('keydown', this.events.keydown);
|
||||
this.colorValue.removeEventListener('keyup', this.events.keyup);
|
||||
|
||||
this.colorPreview.removeEventListener('click', this.events.colorClick);
|
||||
|
||||
this.pickr.off('init', this.events.pickrInit);
|
||||
this.pickr.off('change', this.events.pickrChange);
|
||||
this.pickr.off('changestop', this.events.pickrStopChange);
|
||||
this.pickr.off('swatchselect', this.events.pickrSwatch);
|
||||
this.pickr.off('cancel', this.events.pickrCancel);
|
||||
this.pickr.off('hide', this.events.pickrHide);
|
||||
this.pickr.off('clear', this.events.pickrClear);
|
||||
|
||||
this.pickr.destroyAndRemove();
|
||||
|
||||
this.dataLocker = null;
|
||||
this.container = null;
|
||||
this.colorPreview = null;
|
||||
this.colorValue = null;
|
||||
this.config = null;
|
||||
|
||||
super.destruct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show picker when focusing on text field for widget.
|
||||
*/
|
||||
onFocus() {
|
||||
this.showPicker();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show picker when the color preview next to the text field is clicked.
|
||||
*
|
||||
* @param {Event} event
|
||||
*/
|
||||
onColorClick(event) {
|
||||
if (event.currentTarget !== this.colorValue) {
|
||||
this.colorValue.focus();
|
||||
}
|
||||
this.showPicker();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide picker when the text field loses focus.
|
||||
*/
|
||||
onBlur() {
|
||||
this.hidePicker();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired when a key is pressed down.
|
||||
*
|
||||
* We use this to disable the Enter key submitting the form by mistake.
|
||||
*
|
||||
* @param {Event} event
|
||||
*/
|
||||
onKeyDown(event) {
|
||||
if (event.key === 'Enter') {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired when a key is pressed while in the picker, or within the text field of the widget.
|
||||
*
|
||||
* @param {Event} event
|
||||
*/
|
||||
onKeyUp(event) {
|
||||
// Escape always acts as a cancel
|
||||
if (event.key === 'Escape') {
|
||||
this.keyboardEntry = false;
|
||||
this.setColor(this.originalColor);
|
||||
this.hidePicker();
|
||||
this.colorValue.blur();
|
||||
event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
|
||||
// Enter will select the current color and hide the picker
|
||||
if (event.key === 'Enter') {
|
||||
this.setColor(this.pickr.getColor());
|
||||
this.hidePicker();
|
||||
this.colorValue.blur();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
|
||||
this.keyboardEntry = (
|
||||
(this.colorValue.value === '' && this.config.get('allowEmpty'))
|
||||
|| this.pickr.setColor(this.colorValue.value)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the color picker.
|
||||
*
|
||||
* This also prevents mouse clicks within the picker from making the text field lose focus.
|
||||
*/
|
||||
showPicker() {
|
||||
this.keyboardEntry = false;
|
||||
this.originalColor = this.pickr.getColor().clone();
|
||||
this.originalFormat = this.getCurrentFormat();
|
||||
this.pickr.show();
|
||||
|
||||
// Prevent blur event of the text field firing if the mouse click started inside picker,
|
||||
// even if it ends up outside. This prevents the whitespace in the picker firing a blur
|
||||
// event and hiding the picker.
|
||||
this.pickr.getRoot().app.addEventListener('mousedown', this.events.stop);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the picker.
|
||||
*/
|
||||
hidePicker() {
|
||||
this.pickr.getRoot().app.removeEventListener('mousedown', this.events.stop);
|
||||
this.pickr.hide();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires when the picker is first initialized for a widget.
|
||||
*/
|
||||
onPickerInit() {
|
||||
if (this.dataLocker.value) {
|
||||
this.pickr.setColor(this.dataLocker.value);
|
||||
}
|
||||
|
||||
this.hidePicker();
|
||||
|
||||
if (this.dataLocker.value) {
|
||||
if (this.config.get('formats').length === 1) {
|
||||
this.setColorFormat(this.config.get('formats')[0]);
|
||||
}
|
||||
|
||||
this.setColor(this.pickr.getColor());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires when the user drags the selector on the color palette, or the hue/opacity sliders.
|
||||
* @param {HSVaColor} hsva
|
||||
*/
|
||||
onPickerChange(hsva) {
|
||||
this.keyboardEntry = false;
|
||||
|
||||
if (!this.formatSet && this.config.get('formats').length === 1) {
|
||||
this.setColorFormat(this.config.get('formats')[0]);
|
||||
}
|
||||
|
||||
this.pickr.getRoot().preview.currentColor.innerText = this.valueFromHSVA(hsva);
|
||||
|
||||
// If the format changes, change the value
|
||||
if (this.getCurrentFormat() !== this.originalFormat) {
|
||||
this.setColor(hsva);
|
||||
this.originalFormat = this.getCurrentFormat();
|
||||
}
|
||||
|
||||
// Set the color selection text to black or white depending on which color is picked
|
||||
if (this.isLightColor(hsva)) {
|
||||
this.pickr.getRoot().preview.currentColor.style.color = '#000';
|
||||
} else {
|
||||
this.pickr.getRoot().preview.currentColor.style.color = '#fff';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the selected color when the user stops dragging on the palette.
|
||||
*/
|
||||
onPickerStopChange() {
|
||||
this.setColor(this.pickr.getColor());
|
||||
if (this.config.get('formats').length === 1) {
|
||||
this.setColorFormat(this.config.get('formats')[0]);
|
||||
}
|
||||
this.onPickerChange(this.pickr.getColor());
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires when the user picks a swatch color.
|
||||
*
|
||||
* @param {HSVaColor} hsva
|
||||
*/
|
||||
onPickerSwatch(hsva) {
|
||||
this.keyboardEntry = false;
|
||||
this.setColor(hsva);
|
||||
|
||||
if (this.config.get('formats').length === 1) {
|
||||
this.setColorFormat(this.config.get('formats')[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires when the picker is hidden.
|
||||
*/
|
||||
onPickerHide() {
|
||||
if (this.keyboardEntry) {
|
||||
if (this.colorValue.value === '' && this.config.get('allowEmpty')) {
|
||||
this.setColor();
|
||||
} else {
|
||||
this.setColor(this.pickr.getColor());
|
||||
|
||||
if (this.config.get('formats').length === 1) {
|
||||
this.setColorFormat(this.config.get('formats')[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.dataLocker.value === '') {
|
||||
this.pickr.setColor(null);
|
||||
} else {
|
||||
this.pickr.setColor(this.dataLocker.value);
|
||||
}
|
||||
this.colorValue.value = this.dataLocker.value;
|
||||
|
||||
if (
|
||||
this.originalColor !== null
|
||||
&& this.valueFromHSVA(this.pickr.getColor()) !== this.valueFromHSVA(this.originalColor)
|
||||
) {
|
||||
const event = new Event('change');
|
||||
event.color = this.colorValue.value;
|
||||
this.element.dispatchEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires when the picker is cleared.
|
||||
*/
|
||||
onPickerClear() {
|
||||
this.setColor();
|
||||
this.hidePicker();
|
||||
this.colorValue.blur();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the necessary color value based on the selected format.
|
||||
*
|
||||
* @param {HSVaColor} hsva
|
||||
* @param {String} overrideFormat Overrides the format specified in the widget config. Can be one of "rgb", "hsl",
|
||||
* "cmyk" and "hex".
|
||||
* @returns {String}
|
||||
*/
|
||||
valueFromHSVA(hsva, overrideFormat) {
|
||||
const format = overrideFormat || this.getCurrentFormat();
|
||||
|
||||
switch (format) {
|
||||
case 'rgb':
|
||||
return hsva.toRGBA().toString(1);
|
||||
case 'hsl':
|
||||
return hsva.toHSLA().toString(1);
|
||||
case 'cmyk':
|
||||
return hsva.toCMYK().toString(1);
|
||||
case 'hex':
|
||||
default:
|
||||
return hsva.toHEXA().toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current color representation from Pickr and translates it to our lowercase color format.
|
||||
*
|
||||
* @returns {String}
|
||||
*/
|
||||
getCurrentFormat() {
|
||||
const currentFormat = this.pickr.getColorRepresentation();
|
||||
|
||||
switch (currentFormat) {
|
||||
case 'RGBA':
|
||||
return 'rgb';
|
||||
case 'HSLA':
|
||||
return 'hsl';
|
||||
case 'CMYK':
|
||||
return 'cmyk';
|
||||
case 'HEXA':
|
||||
default:
|
||||
return 'hex';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the color value for the widget and updates the color preview.
|
||||
*
|
||||
* @param {HSVaColor?} hsva
|
||||
*/
|
||||
setColor(hsva) {
|
||||
if (hsva === undefined && !this.config.get('allowEmpty') && this.originalColor) {
|
||||
this.colorPreview.style.background = this.valueFromHSVA(this.originalColor, 'hex');
|
||||
this.colorValue.value = this.valueFromHSVA(this.originalColor);
|
||||
this.dataLocker.value = this.valueFromHSVA(this.originalColor);
|
||||
} else if (hsva === undefined) {
|
||||
this.colorPreview.style.background = '#fff';
|
||||
this.colorValue.value = '';
|
||||
this.dataLocker.value = '';
|
||||
} else {
|
||||
this.colorPreview.style.background = this.valueFromHSVA(hsva, 'hex');
|
||||
this.colorValue.value = this.valueFromHSVA(hsva);
|
||||
this.dataLocker.value = this.valueFromHSVA(hsva);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the color format used for the value.
|
||||
*
|
||||
* @param {String} format One of "rgb", "hsl", "cmyk", "hex"
|
||||
*/
|
||||
setColorFormat(format) {
|
||||
switch (format) {
|
||||
case 'rgb':
|
||||
this.pickr.setColorRepresentation('RGBA');
|
||||
break;
|
||||
case 'hsl':
|
||||
this.pickr.setColorRepresentation('HSLA');
|
||||
break;
|
||||
case 'cmyk':
|
||||
this.pickr.setColorRepresentation('CMYK');
|
||||
break;
|
||||
case 'hex':
|
||||
default:
|
||||
this.pickr.setColorRepresentation('HEX');
|
||||
break;
|
||||
}
|
||||
|
||||
this.formatSet = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the given HSVAColor is a "light" color.
|
||||
*
|
||||
* @param {HSVaColor} hsva
|
||||
* @returns {Boolean}
|
||||
*/
|
||||
isLightColor(hsva) {
|
||||
const rgba = hsva.toRGBA();
|
||||
|
||||
// Borrowed from https://awik.io/determine-color-bright-dark-using-javascript/
|
||||
const ratio = Math.sqrt(
|
||||
0.299 * (rgba[0] * rgba[0])
|
||||
+ 0.587 * (rgba[1] * rgba[1])
|
||||
+ 0.114 * (rgba[2] * rgba[2]),
|
||||
);
|
||||
|
||||
// If alpha drops by 30%, then assume it is a light color
|
||||
if (rgba[3] < 0.7) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return (ratio > 127.5);
|
||||
}
|
||||
}
|
||||
|
||||
Snowboard.addPlugin('backend.formwidget.colorpicker', ColorPicker);
|
||||
Snowboard['backend.ui.widgethandler']().register('colorpicker', 'backend.formwidget.colorpicker');
|
||||
})(window.Snowboard, window.jQuery);
|
||||
@@ -0,0 +1,109 @@
|
||||
@import "../../../../assets/less/core/boot.less";
|
||||
|
||||
.field-colorpicker {
|
||||
|
||||
.colorpicker-container {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
position: relative;
|
||||
max-width: 300px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
[data-color-preview] {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
width: 40px;
|
||||
height: @input-height-base;
|
||||
background: @input-bg;
|
||||
cursor: pointer;
|
||||
border: 1px solid @input-border;
|
||||
.box-shadow(@input-box-shadow);
|
||||
border-top-left-radius: @input-border-radius;
|
||||
border-bottom-left-radius: @input-border-radius;
|
||||
}
|
||||
|
||||
[data-color-value] {
|
||||
flex: 1;
|
||||
border-left: none;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
// PICKR OVERRIDES
|
||||
.pcr-app[data-theme="nano"] {
|
||||
|
||||
width: 18em;
|
||||
|
||||
.pcr-selection {
|
||||
|
||||
// Add an additional row to the grid for color selection and preview
|
||||
grid-template-rows: 1fr 5fr auto auto;
|
||||
gap: 0;
|
||||
|
||||
.pcr-color-preview {
|
||||
grid-row-start: 1;
|
||||
grid-column-start: 1;
|
||||
grid-row-end: 1;
|
||||
grid-column-end: 3;
|
||||
margin: 0;
|
||||
flex-direction: row-reverse;
|
||||
|
||||
.pcr-current-color {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
width: 80%;
|
||||
border-radius: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.5);
|
||||
font-family: monospace;
|
||||
height: 28px;
|
||||
line-height: 29px;
|
||||
text-align: center;
|
||||
font-size: 0.85em;
|
||||
|
||||
&::before {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
.pcr-last-color {
|
||||
display: block;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
width: 20%;
|
||||
border-radius: 0;
|
||||
background: var(--pcr-color);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
.pcr-color-palette {
|
||||
grid-row-start: 2;
|
||||
grid-column-start: 1;
|
||||
grid-row-end: 2;
|
||||
grid-column-end: 3;
|
||||
}
|
||||
|
||||
.pcr-color-chooser {
|
||||
margin-top: 0.8rem;
|
||||
grid-row-start: 3;
|
||||
grid-column-start: 1;
|
||||
grid-row-end: 3;
|
||||
grid-column-end: 3;
|
||||
}
|
||||
|
||||
.pcr-color-opacity {
|
||||
margin-top: 0.8em;
|
||||
grid-row-start: 4;
|
||||
grid-column-start: 1;
|
||||
grid-row-end: 4;
|
||||
grid-column-end: 3;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
&[data-disabled="true"] [data-color-preview] {
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<div
|
||||
id="<?= $this->getId() ?>"
|
||||
class="
|
||||
field-colorpicker
|
||||
<?php if ($readOnly || $disabled || $this->previewMode): ?>
|
||||
disabled
|
||||
<?php endif; ?>
|
||||
"
|
||||
data-control="colorpicker"
|
||||
data-formats="<?= e(json_encode($formats)) ?>"
|
||||
data-available-colors="<?= e(json_encode($availableColors)) ?>"
|
||||
data-data-locker="#<?= $this->getId('input') ?>"
|
||||
<?php if ($showAlpha): ?>
|
||||
data-show-alpha="<?= $showAlpha ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($allowEmpty): ?>
|
||||
data-allow-empty="<?= $allowEmpty ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($allowCustom): ?>
|
||||
data-allow-custom="<?= $allowCustom ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($readOnly || $disabled || $this->previewMode): ?>
|
||||
data-disabled="true"
|
||||
<?php endif; ?>
|
||||
<?= $this->formField->getAttributes() ?>
|
||||
>
|
||||
|
||||
<div class="colorpicker-container">
|
||||
<?php if ($readOnly || !$allowCustom || $this->previewMode): ?>
|
||||
<span
|
||||
data-color-value
|
||||
class="form-control"
|
||||
>
|
||||
<?= e($value); ?>
|
||||
</span>
|
||||
<?php else: ?>
|
||||
<input
|
||||
data-color-value
|
||||
class="form-control"
|
||||
placeholder="No color"
|
||||
value="<?= e($value); ?>"
|
||||
<?php if ($disabled): ?>
|
||||
disabled
|
||||
<?php endif ?>
|
||||
>
|
||||
<?php endif ?>
|
||||
<div
|
||||
data-color-preview
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<input
|
||||
type="hidden"
|
||||
id="<?= $this->getId('input') ?>"
|
||||
name="<?= $name ?>"
|
||||
value="<?= e($value) ?>" />
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div
|
||||
id="<?= $this->getId() ?>"
|
||||
class="field-datatable size-<?= $size ?>">
|
||||
|
||||
<?= $table->render() ?>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php if (!empty($error)): ?>
|
||||
<p class="flash-message static error">
|
||||
<?= e($error); ?></p>
|
||||
</p>
|
||||
|
||||
<?php if ($this->previewMode): ?>
|
||||
<span class="form-control"><?= $value ? e($value) : ' ' ?></span>
|
||||
<?php else: ?>
|
||||
<input
|
||||
type="text"
|
||||
name="<?= $field->getName() ?>"
|
||||
id="<?= $field->getId() ?>"
|
||||
value="<?= e($value) ?>"
|
||||
class="form-control"
|
||||
autocomplete="off"
|
||||
/>
|
||||
<?php endif ?>
|
||||
<?php return; ?>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->previewMode): ?>
|
||||
<div class="form-control"><?= Backend::dateTime($value, [
|
||||
'format' => $format,
|
||||
'formatAlias' => $formatAlias,
|
||||
'defaultValue' => $value
|
||||
]) ?></div>
|
||||
<?php else: ?>
|
||||
<div
|
||||
id="<?= $this->getId() ?>"
|
||||
class="field-datepicker"
|
||||
data-control="datepicker"
|
||||
data-mode="<?= $mode ?>"
|
||||
data-show-week-number="<?= $showWeekNumber ?>"
|
||||
<?php if ($formatMoment): ?>
|
||||
data-format="<?= $formatMoment ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($minDate): ?>
|
||||
data-min-date="<?= $minDate ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($maxDate): ?>
|
||||
data-max-date="<?= $maxDate ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($yearRange): ?>
|
||||
data-year-range="<?= $yearRange ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($firstDay): ?>
|
||||
data-first-day="<?= $firstDay ?>"
|
||||
<?php endif ?>
|
||||
<?php if ($ignoreTimezone): ?>
|
||||
data-ignore-timezone
|
||||
<?php endif ?>
|
||||
>
|
||||
|
||||
<?php if ($mode == 'date'): ?>
|
||||
<?= $this->makePartial('picker_date') ?>
|
||||
<?php elseif ($mode == 'datetime'): ?>
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<?= $this->makePartial('picker_date') ?>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<?= $this->makePartial('picker_time') ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php elseif ($mode == 'time'): ?>
|
||||
<?= $this->makePartial('picker_time') ?>
|
||||
<?php endif ?>
|
||||
|
||||
<!-- Data locker -->
|
||||
<input
|
||||
type="hidden"
|
||||
name="<?= $field->getName() ?>"
|
||||
id="<?= $field->getId() ?>"
|
||||
value="<?= e($value) ?>"
|
||||
data-datetime-value
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,11 @@
|
||||
<!-- Date -->
|
||||
<div class="input-with-icon right-align">
|
||||
<i class="icon icon-calendar-o"></i>
|
||||
<input
|
||||
type="text"
|
||||
id="<?= $this->getId('date') ?>"
|
||||
class="form-control align-right"
|
||||
autocomplete="off"
|
||||
<?= $field->getAttributes() ?>
|
||||
data-datepicker />
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
<!-- Time -->
|
||||
<div class="input-with-icon right-align">
|
||||
<i class="icon icon-clock-o"></i>
|
||||
<input
|
||||
type="text"
|
||||
id="<?= $this->getId('time') ?>"
|
||||
class="form-control align-right"
|
||||
autocomplete="off"
|
||||
<?= $field->getAttributes() ?>
|
||||
data-timepicker />
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
.fieldset{position:relative;min-height:30px;border:1px solid #d1d6d9;border-radius:0.5rem;box-shadow:inset 0 1px 0 rgba(209,214,217,0.25),0 1px 0 rgba(255,255,255,.5);margin-top:5px;padding:1em 1.25em 0 1.25em;background:#f5f5f5}
|
||||
.fieldset>legend{border:none;margin:0;padding-inline:1rem;width:fit-content;font-size:18px;color:inherit}
|
||||
.fieldset .control-tabs.primary-tabs .nav-tabs{margin:0}
|
||||
.fieldset .control-tabs.primary-tabs .nav-tabs>li.active>a:before{background-color:#f5f5f5;border-color:#f5f5f5}
|
||||
.fieldset .control-tabs.primary-tabs .nav-tabs>li>a>span.title:before,
|
||||
.fieldset .control-tabs.primary-tabs .nav-tabs>li>a>span.title:after{background-color:#f5f5f5}
|
||||
@@ -0,0 +1,41 @@
|
||||
@import "../../../../assets/less/core/boot.less";
|
||||
|
||||
@panel-bg: #f5f5f5;
|
||||
|
||||
.fieldset {
|
||||
position: relative;
|
||||
min-height: 30px;
|
||||
|
||||
border: 1px solid @input-border;
|
||||
border-radius: 0.5rem;
|
||||
box-shadow: @input-box-shadow;
|
||||
|
||||
margin-top: 5px;
|
||||
padding: 1em 1.25em 0 1.25em;
|
||||
|
||||
background: @panel-bg;
|
||||
|
||||
& > legend {
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding-inline: 1rem;
|
||||
width: fit-content;
|
||||
font-size: 18px;
|
||||
color: inherit;
|
||||
}
|
||||
.control-tabs.primary-tabs {
|
||||
.nav-tabs {
|
||||
margin: 0;
|
||||
> li.active > a:before {
|
||||
background-color: @panel-bg;
|
||||
border-color: @panel-bg;
|
||||
}
|
||||
|
||||
> li > a > span.title {
|
||||
&:before, &:after {
|
||||
background-color: @panel-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php $label = object_get($this->config, 'label'); ?>
|
||||
|
||||
<fieldset class="fieldset">
|
||||
<?php if ($label): ?>
|
||||
<legend><?= e(trans($label)) ?></legend>
|
||||
<?php endif ?>
|
||||
|
||||
<?= $this->formWidget->render(['section' => 'outside']) ?>
|
||||
</fieldset>
|
||||
157
modules/backend/formwidgets/fileupload/assets/css/fileupload.css
Normal file
157
modules/backend/formwidgets/fileupload/assets/css/fileupload.css
Normal file
@@ -0,0 +1,157 @@
|
||||
.field-fileupload .upload-object{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;position:relative;outline:none;overflow:hidden;display:inline-block;vertical-align:top}
|
||||
.field-fileupload .upload-object img{width:100%;height:100%}
|
||||
.field-fileupload .upload-object .icon-container{display:table;opacity:0.6}
|
||||
.field-fileupload .upload-object .icon-container i{color:#95a5a6;display:inline-block}
|
||||
.field-fileupload .upload-object .icon-container div{display:table-cell;text-align:center;vertical-align:middle}
|
||||
.field-fileupload .upload-object .icon-container.image>div.icon-wrapper{display:none}
|
||||
.field-fileupload .upload-object h4{font-size:13px;color:#2A3E51;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:150%;margin:15px 0 5px 0;padding-right:0;-webkit-transition:padding 0.1s;transition:padding 0.1s;position:relative}
|
||||
.field-fileupload .upload-object h4 a{position:absolute;right:0;top:0;display:none;font-weight:400}
|
||||
.field-fileupload .upload-object p.size{font-size:12px;color:#95a5a6}
|
||||
.field-fileupload .upload-object p.size strong{font-weight:400}
|
||||
.field-fileupload .upload-object .meta .drag-handle{position:absolute;bottom:0;right:0;cursor:move;display:block}
|
||||
.field-fileupload .upload-object .info h4 a,
|
||||
.field-fileupload .upload-object .meta a.upload-remove-button,
|
||||
.field-fileupload .upload-object .meta a.drag-handle{color:#2b3e50;display:none;font-size:13px;text-decoration:none}
|
||||
.field-fileupload .upload-object .icon-container{position:relative}
|
||||
.field-fileupload .upload-object .icon-container:after{background-image:url('../../../../../system/assets/ui/images/loader-transparent.svg');position:absolute;content:' ';width:40px;height:40px;left:50%;top:50%;margin-top:-20px;margin-left:-20px;display:block;background-size:40px 40px;background-position:50% 50%;-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}
|
||||
.field-fileupload .upload-object.is-success .icon-container{opacity:1}
|
||||
.field-fileupload .upload-object.is-success .icon-container:after{opacity:0;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease}
|
||||
.field-fileupload .upload-object.is-error .icon-container:after{content:"";background:none;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f071";-webkit-animation:none;animation:none;font-size:40px;color:#e01346;margin-top:-20px;margin-left:-20px;text-shadow:2px 2px 0 #fff}
|
||||
.field-fileupload .upload-object.is-loading .icon-container{opacity:0.6}
|
||||
.field-fileupload .upload-object.is-loading .icon-container:after{opacity:1;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease}
|
||||
.field-fileupload .upload-object.is-success{cursor:pointer}
|
||||
.field-fileupload .upload-object.is-success .progress-bar{opacity:0;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease}
|
||||
.field-fileupload .upload-object.is-success:hover h4 a,
|
||||
.field-fileupload .upload-object.is-success:hover .meta .upload-remove-button,
|
||||
.field-fileupload .upload-object.is-success:hover .meta .drag-handle{display:block}
|
||||
.field-fileupload .upload-object.is-error{cursor:pointer}
|
||||
.field-fileupload .upload-object.is-error .icon-container{opacity:1}
|
||||
.field-fileupload .upload-object.is-error .icon-container>img,
|
||||
.field-fileupload .upload-object.is-error .icon-container>i{opacity:0.5}
|
||||
.field-fileupload .upload-object.is-error .info h4{color:#e01346}
|
||||
.field-fileupload .upload-object.is-error .info h4 a{display:none}
|
||||
.field-fileupload .upload-object.is-error .meta{display:none}
|
||||
.field-fileupload.is-sortable{position:relative}
|
||||
.field-fileupload.is-sortable .upload-placeholder{position:relative;border:1px dotted #e0e0e0 !important}
|
||||
.field-fileupload.is-sortable .upload-object.dragged{position:absolute;opacity:0.5;filter:alpha(opacity=50);z-index:2000}
|
||||
.field-fileupload.is-sortable .upload-object.dragged .uploader-toolbar{display:none}
|
||||
.field-fileupload.is-preview .upload-button,
|
||||
.field-fileupload.is-preview .upload-remove-button,
|
||||
.field-fileupload.is-preview .meta a.drag-handle{display:none !important}
|
||||
@media (max-width:1024px){.field-fileupload .upload-object.is-success h4 a,.field-fileupload .upload-object.is-success .meta .upload-remove-button,.field-fileupload .upload-object.is-success .meta .drag-handle{display:block !important}}
|
||||
.fileupload-config-form .fileupload-url-button{padding-left:0}
|
||||
.fileupload-config-form .fileupload-url-button>i{color:#666}
|
||||
.fileupload-config-form .file-upload-modal-image-header{background-color:#FEFEFE;background-image:-webkit-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB),-webkit-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB);background-image:-moz-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB),-moz-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB);background-image:-o-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB),-o-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB);background-image:-ms-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB),-ms-linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB);background-image:linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB),linear-gradient(45deg,#CBCBCB 25%,transparent 25%,transparent 75%,#CBCBCB 75%,#CBCBCB);-webkit-background-size:20px 20px;-moz-background-size:20px 20px;background-size:20px 20px;background-position:0 0,10px 10px}
|
||||
.fileupload-config-form .file-upload-modal-image-header,
|
||||
.fileupload-config-form .file-upload-modal-image-header img{border-top-right-radius:2px;border-top-left-radius:2px}
|
||||
.fileupload-config-form .file-upload-modal-image-header .close{position:absolute;top:20px;right:20px;background:#BDC3C7;opacity:0.7;height:24px;width:22px;z-index:1}
|
||||
.fileupload-config-form .file-upload-modal-image-header .close:hover,
|
||||
.fileupload-config-form .file-upload-modal-image-header .close:focus{opacity:0.9}
|
||||
.fileupload-config-form .file-upload-modal-image-header + .modal-body{padding-top:20px}
|
||||
.field-fileupload.style-image-multi .upload-button,
|
||||
.field-fileupload.style-image-multi .upload-object{margin:0 10px 10px 0}
|
||||
.field-fileupload.style-image-multi .upload-button{display:block;border:2px dashed #BDC3C7;background-clip:content-box;background-color:#F9F9F9;position:relative;outline:none;float:left;width:76px;height:76px}
|
||||
.field-fileupload.style-image-multi .upload-button .upload-button-icon{position:absolute;width:22px;height:22px;top:50%;left:50%;margin-top:-11px;margin-left:-11px}
|
||||
.field-fileupload.style-image-multi .upload-button .upload-button-icon:before{text-align:center;display:block;font-size:22px;height:22px;width:22px;line-height:22px;color:#BDC3C7}
|
||||
.field-fileupload.style-image-multi .upload-button .upload-button-icon.large-icon{width:34px;height:34px;top:50%;left:50%;margin-top:-17px;margin-left:-17px}
|
||||
.field-fileupload.style-image-multi .upload-button .upload-button-icon.large-icon:before{font-size:34px;height:24px;width:24px;line-height:24px}
|
||||
.field-fileupload.style-image-multi .upload-button:hover{border:2px dashed #2da7c7}
|
||||
.field-fileupload.style-image-multi .upload-button:hover .upload-button-icon:before{color:#2da7c7}
|
||||
.field-fileupload.style-image-multi .upload-button:focus{border:2px dashed #2da7c7}
|
||||
.field-fileupload.style-image-multi .upload-button:focus .upload-button-icon:before{color:#2da7c7}
|
||||
.field-fileupload.style-image-multi .upload-files-container{margin-left:90px}
|
||||
.field-fileupload.style-image-multi .upload-object{background:#fff;border:1px solid #ecf0f1;width:260px}
|
||||
.field-fileupload.style-image-multi .upload-object .progress-bar{display:block;width:100%;overflow:hidden;height:5px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);position:absolute;bottom:10px;left:0}
|
||||
.field-fileupload.style-image-multi .upload-object .progress-bar .upload-progress{float:left;width:0%;height:100%;line-height:5px;color:#fff;background-color:#5fb6f5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:width 0.6s ease;transition:width 0.6s ease}
|
||||
.field-fileupload.style-image-multi .upload-object .icon-container{border-right:1px solid #f6f8f9;float:left;overflow:hidden;width:75px;height:75px;display:flex;align-items:center;justify-content:center}
|
||||
.field-fileupload.style-image-multi .upload-object .icon-container i{font-size:35px}
|
||||
.field-fileupload.style-image-multi .upload-object .icon-container.image img{border-bottom-left-radius:3px;border-top-left-radius:3px;width:auto;height:auto;max-height:100%}
|
||||
.field-fileupload.style-image-multi .upload-object .info{margin-left:90px}
|
||||
.field-fileupload.style-image-multi .upload-object .info h4{padding-right:15px}
|
||||
.field-fileupload.style-image-multi .upload-object .info h4 a{right:15px}
|
||||
.field-fileupload.style-image-multi .upload-object .meta{position:absolute;bottom:0;left:0;right:0;margin:0 15px 0 90px}
|
||||
.field-fileupload.style-image-multi .upload-object .meta a.drag-handle{bottom:15px}
|
||||
.field-fileupload.style-image-multi .upload-object.upload-placeholder{height:75px;background-color:transparent}
|
||||
.field-fileupload.style-image-multi .upload-object.upload-placeholder:after{opacity:0}
|
||||
.field-fileupload.style-image-multi .upload-object:hover{background:#4da7e8 !important}
|
||||
.field-fileupload.style-image-multi .upload-object:hover i,
|
||||
.field-fileupload.style-image-multi .upload-object:hover p.size{color:#ecf0f1}
|
||||
.field-fileupload.style-image-multi .upload-object:hover h4{color:white}
|
||||
.field-fileupload.style-image-multi .upload-object:hover .icon-container{border-right-color:#4da7e8 !important}
|
||||
.field-fileupload.style-image-multi .upload-object:hover h4{padding-right:35px}
|
||||
.field-fileupload.style-image-multi.is-preview .upload-files-container{margin-left:0}
|
||||
.form-sidebar .field-fileupload.style-image-multi .upload-files-container{margin-left:0}
|
||||
.form-sidebar .field-fileupload.style-image-multi .upload-button{width:100%}
|
||||
@media (max-width:1280px){.field-fileupload.style-image-multi .upload-object{width:230px}}
|
||||
@media (max-width:1024px){.field-fileupload.style-image-multi .upload-button{width:100%}.field-fileupload.style-image-multi .upload-files-container{margin-left:0}.field-fileupload.style-image-multi .upload-object{margin-right:0;display:block;width:auto}}
|
||||
.field-fileupload.style-image-single.is-populated .upload-button{display:none}
|
||||
.field-fileupload.style-image-single .upload-button{display:block;border:2px dashed #BDC3C7;background-clip:content-box;background-color:#F9F9F9;position:relative;outline:none;min-height:100px;min-width:100px}
|
||||
.field-fileupload.style-image-single .upload-button .upload-button-icon{position:absolute;width:22px;height:22px;top:50%;left:50%;margin-top:-11px;margin-left:-11px}
|
||||
.field-fileupload.style-image-single .upload-button .upload-button-icon:before{text-align:center;display:block;font-size:22px;height:22px;width:22px;line-height:22px;color:#BDC3C7}
|
||||
.field-fileupload.style-image-single .upload-button .upload-button-icon.large-icon{width:34px;height:34px;top:50%;left:50%;margin-top:-17px;margin-left:-17px}
|
||||
.field-fileupload.style-image-single .upload-button .upload-button-icon.large-icon:before{font-size:34px;height:24px;width:24px;line-height:24px}
|
||||
.field-fileupload.style-image-single .upload-button:hover{border:2px dashed #2da7c7}
|
||||
.field-fileupload.style-image-single .upload-button:hover .upload-button-icon:before{color:#2da7c7}
|
||||
.field-fileupload.style-image-single .upload-button:focus{border:2px dashed #2da7c7}
|
||||
.field-fileupload.style-image-single .upload-button:focus .upload-button-icon:before{color:#2da7c7}
|
||||
.field-fileupload.style-image-single .upload-object{padding-bottom:66px}
|
||||
.field-fileupload.style-image-single .upload-object .icon-container{border:1px solid #f6f8f9;background:rgba(255,255,255,0.5)}
|
||||
.field-fileupload.style-image-single .upload-object .icon-container.image img{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:block;max-width:100%;height:auto;min-height:100px;min-width:100px}
|
||||
.field-fileupload.style-image-single .upload-object .progress-bar{display:block;width:100%;overflow:hidden;height:5px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);position:absolute;bottom:10px;left:0}
|
||||
.field-fileupload.style-image-single .upload-object .progress-bar .upload-progress{float:left;width:0%;height:100%;line-height:5px;color:#fff;background-color:#5fb6f5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:width 0.6s ease;transition:width 0.6s ease}
|
||||
.field-fileupload.style-image-single .upload-object .info{position:absolute;left:0;right:0;bottom:0;height:66px}
|
||||
.field-fileupload.style-image-single .upload-object .meta{position:absolute;bottom:65px;left:0;right:0;margin:0 15px}
|
||||
.field-fileupload.style-image-single .upload-object:hover h4{padding-right:20px}
|
||||
@media (max-width:1024px){.field-fileupload.style-image-single .upload-object h4{padding-right:20px !important}}
|
||||
.field-fileupload.style-file-multi .upload-button{margin-bottom:10px}
|
||||
.field-fileupload.style-file-multi .upload-files-container{border:1px solid #eee;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border-bottom:none;display:none}
|
||||
.field-fileupload.style-file-multi.is-populated .upload-files-container{display:block}
|
||||
.field-fileupload.style-file-multi .upload-object{display:block;width:100%;border-bottom:1px solid #eee;padding-left:10px}
|
||||
.field-fileupload.style-file-multi .upload-object:nth-child(even){background-color:#f5f5f5}
|
||||
.field-fileupload.style-file-multi .upload-object .icon-container{position:absolute;top:0;left:10px;width:15px;padding:11px 7px}
|
||||
.field-fileupload.style-file-multi .upload-object .icon-container i{line-height:150%;font-size:15px}
|
||||
.field-fileupload.style-file-multi .upload-object .icon-container img{display:none}
|
||||
.field-fileupload.style-file-multi .upload-object .info{margin-left:35px;margin-right:15%}
|
||||
.field-fileupload.style-file-multi .upload-object .info h4,
|
||||
.field-fileupload.style-file-multi .upload-object .info p{margin:0;padding:11px 0;font-size:12px;font-weight:normal;line-height:150%;color:#666}
|
||||
.field-fileupload.style-file-multi .upload-object .info h4{padding-right:15px}
|
||||
.field-fileupload.style-file-multi .upload-object .info h4 a{padding:10px 0;right:15px}
|
||||
.field-fileupload.style-file-multi .upload-object .info p.size{position:absolute;top:0;right:0;width:15%;display:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.field-fileupload.style-file-multi .upload-object .progress-bar{display:block;width:100%;overflow:hidden;height:5px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);position:absolute;top:18px;left:0}
|
||||
.field-fileupload.style-file-multi .upload-object .progress-bar .upload-progress{float:left;width:0%;height:100%;line-height:5px;color:#fff;background-color:#5fb6f5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:width 0.6s ease;transition:width 0.6s ease}
|
||||
.field-fileupload.style-file-multi .upload-object .meta{position:absolute;top:0;right:0;margin-right:15px;width:15%}
|
||||
.field-fileupload.style-file-multi .upload-object .meta a.drag-handle{top:-2px;bottom:auto;line-height:150%;padding:10px 0}
|
||||
.field-fileupload.style-file-multi .upload-object .icon-container:after{width:20px;height:20px;margin-top:-10px;margin-left:-10px;background-size:20px 20px}
|
||||
.field-fileupload.style-file-multi .upload-object.is-error .icon-container:after{font-size:20px}
|
||||
.field-fileupload.style-file-multi .upload-object.is-success .info p.size{display:block}
|
||||
.field-fileupload.style-file-multi .upload-object.upload-placeholder{height:35px;background-color:transparent}
|
||||
.field-fileupload.style-file-multi .upload-object.upload-placeholder:after{opacity:0}
|
||||
.field-fileupload.style-file-multi .upload-object:hover{background:#4da7e8 !important}
|
||||
.field-fileupload.style-file-multi .upload-object:hover i,
|
||||
.field-fileupload.style-file-multi .upload-object:hover p.size{color:#ecf0f1}
|
||||
.field-fileupload.style-file-multi .upload-object:hover h4{color:white}
|
||||
.field-fileupload.style-file-multi .upload-object:hover .icon-container{border-right-color:#4da7e8 !important}
|
||||
.field-fileupload.style-file-multi .upload-object:hover h4{padding-right:35px}
|
||||
@media (max-width:1199px){.field-fileupload.style-file-multi .info{margin-right:20% !important}.field-fileupload.style-file-multi .info p.size{width:20% !important}.field-fileupload.style-file-multi .meta{width:20% !important}}
|
||||
@media (max-width:991px){.field-fileupload.style-file-multi .upload-object h4{padding-right:35px !important}.field-fileupload.style-file-multi .info{margin-right:25% !important}.field-fileupload.style-file-multi .info p.size{width:25% !important;padding-right:35px !important}.field-fileupload.style-file-multi .meta{width:25% !important}}
|
||||
.field-fileupload.style-file-single{background-color:#fff;border:1px solid #d1d6d9;overflow:hidden;position:relative;padding-right:30px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(209,214,217,0.25),0 1px 0 rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(209,214,217,0.25),0 1px 0 rgba(255,255,255,.5)}
|
||||
.field-fileupload.style-file-single .upload-button{position:absolute;top:50%;margin-top:-44px;height:88px;background:transparent;right:-2px;color:#595959}
|
||||
.field-fileupload.style-file-single .upload-button i{font-size:14px}
|
||||
.field-fileupload.style-file-single .upload-button:hover{color:#333}
|
||||
.field-fileupload.style-file-single .upload-empty-message{padding:8px 0 8px 11px;font-size:14px;cursor:pointer}
|
||||
.field-fileupload.style-file-single.is-populated .upload-empty-message{display:none}
|
||||
.field-fileupload.style-file-single .upload-object{display:block;width:100%;padding:7px 0 9px 0}
|
||||
.field-fileupload.style-file-single .upload-object .icon-container{position:absolute;top:0;left:0;width:15px;padding:0 5px;margin:8px 0 0 7px;text-align:center}
|
||||
.field-fileupload.style-file-single .upload-object .icon-container i{line-height:150%;font-size:15px}
|
||||
.field-fileupload.style-file-single .upload-object .icon-container img{display:none}
|
||||
.field-fileupload.style-file-single .upload-object .info{margin-left:34px;margin-right:15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.field-fileupload.style-file-single .upload-object .info h4,
|
||||
.field-fileupload.style-file-single .upload-object .info p{display:inline;margin:0;padding:0;font-size:13px;line-height:150%;color:#666}
|
||||
.field-fileupload.style-file-single .upload-object .info p.size{font-weight:normal}
|
||||
.field-fileupload.style-file-single .upload-object .info p.size:before{content:" - "}
|
||||
.field-fileupload.style-file-single .upload-object .progress-bar{display:block;width:100%;overflow:hidden;height:5px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);position:absolute;top:50%;margin-top:-2px;right:5px}
|
||||
.field-fileupload.style-file-single .upload-object .progress-bar .upload-progress{float:left;width:0%;height:100%;line-height:5px;color:#fff;background-color:#5fb6f5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:width 0.6s ease;transition:width 0.6s ease}
|
||||
.field-fileupload.style-file-single .upload-object .meta{position:absolute;top:50%;margin-top:-44px;height:88px;right:0;width:15%}
|
||||
.field-fileupload.style-file-single .upload-object .meta .upload-remove-button{position:absolute;top:50%;right:0;height:20px;margin-top:-10px;margin-right:10px;z-index:100}
|
||||
.field-fileupload.style-file-single .upload-object .icon-container:after{width:20px;height:20px;margin-top:-10px;margin-left:-10px;background-size:20px 20px}
|
||||
.field-fileupload.style-file-single .upload-object.is-error .icon-container:after{font-size:20px}
|
||||
495
modules/backend/formwidgets/fileupload/assets/js/fileupload.js
Normal file
495
modules/backend/formwidgets/fileupload/assets/js/fileupload.js
Normal file
@@ -0,0 +1,495 @@
|
||||
/*
|
||||
* File upload form field control
|
||||
*
|
||||
* Data attributes:
|
||||
* - data-control="fileupload" - enables the file upload plugin
|
||||
* - data-template - a Dropzone.js template to use for each item
|
||||
* - data-error-template - a popover template used to show an error
|
||||
* - data-sort-handler - AJAX handler for sorting postbacks
|
||||
* - data-config-handler - AJAX handler for configuration popup
|
||||
*
|
||||
* JavaScript API:
|
||||
* $('div').fileUploader()
|
||||
*
|
||||
* Dependancies:
|
||||
* - Dropzone.js
|
||||
*/
|
||||
+function ($) { "use strict";
|
||||
|
||||
var Base = $.wn.foundation.base,
|
||||
BaseProto = Base.prototype
|
||||
|
||||
// FILEUPLOAD CLASS DEFINITION
|
||||
// ============================
|
||||
|
||||
var FileUpload = function (element, options) {
|
||||
this.$el = $(element)
|
||||
this.options = options || {}
|
||||
|
||||
$.wn.foundation.controlUtils.markDisposable(element)
|
||||
Base.call(this)
|
||||
this.init()
|
||||
}
|
||||
|
||||
FileUpload.prototype = Object.create(BaseProto)
|
||||
FileUpload.prototype.constructor = FileUpload
|
||||
|
||||
FileUpload.prototype.init = function() {
|
||||
if (this.options.isMulti === null) {
|
||||
this.options.isMulti = this.$el.hasClass('is-multi')
|
||||
}
|
||||
|
||||
if (this.options.isPreview === null) {
|
||||
this.options.isPreview = this.$el.hasClass('is-preview')
|
||||
}
|
||||
|
||||
if (this.options.isSortable === null) {
|
||||
this.options.isSortable = this.$el.hasClass('is-sortable')
|
||||
}
|
||||
|
||||
this.$el.one('dispose-control', this.proxy(this.dispose))
|
||||
|
||||
this.$clickableElements = []
|
||||
|
||||
const uploadButtonEl = $('.upload-button', this.$el).get(0)
|
||||
if (uploadButtonEl) {
|
||||
this.$clickableElements.push(uploadButtonEl)
|
||||
}
|
||||
|
||||
const uploadEmptyMessageEl = $('div.upload-empty-message', this.$el).get(0)
|
||||
if (uploadEmptyMessageEl) {
|
||||
this.$clickableElements.push(uploadEmptyMessageEl)
|
||||
}
|
||||
|
||||
this.$filesContainer = $('.upload-files-container', this.$el)
|
||||
this.uploaderOptions = {}
|
||||
|
||||
this.$el.on('click', '.upload-object.is-success', this.proxy(this.onClickSuccessObject))
|
||||
this.$el.on('click', '.upload-object.is-error', this.proxy(this.onClickErrorObject))
|
||||
|
||||
// Stop here for preview mode
|
||||
if (this.options.isPreview)
|
||||
return
|
||||
|
||||
this.$el.on('click', '.upload-remove-button', this.proxy(this.onRemoveObject))
|
||||
|
||||
this.bindUploader()
|
||||
|
||||
if (this.options.isSortable) {
|
||||
this.bindSortable()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
FileUpload.prototype.dispose = function() {
|
||||
|
||||
this.$el.off('click', '.upload-object.is-success', this.proxy(this.onClickSuccessObject))
|
||||
this.$el.off('click', '.upload-object.is-error', this.proxy(this.onClickErrorObject))
|
||||
this.$el.off('click', '.upload-remove-button', this.proxy(this.onRemoveObject))
|
||||
|
||||
this.$el.off('dispose-control', this.proxy(this.dispose))
|
||||
this.$el.removeData('oc.fileUpload')
|
||||
|
||||
this.$el = null
|
||||
this.$clickableElements = null
|
||||
this.$filesContainer = null
|
||||
this.uploaderOptions = null
|
||||
|
||||
// In some cases options could contain callbacks,
|
||||
// so it's better to clean them up too.
|
||||
this.options = null
|
||||
|
||||
BaseProto.dispose.call(this)
|
||||
}
|
||||
|
||||
//
|
||||
// Uploading
|
||||
//
|
||||
|
||||
FileUpload.prototype.bindUploader = function() {
|
||||
this.uploaderOptions = {
|
||||
url: this.options.url,
|
||||
paramName: this.options.paramName,
|
||||
clickable: this.$clickableElements,
|
||||
previewsContainer: this.$filesContainer.get(0),
|
||||
maxFiles: !this.options.isMulti ? 1 : null,
|
||||
maxFilesize: this.options.maxFilesize,
|
||||
timeout: 0,
|
||||
headers: {}
|
||||
}
|
||||
|
||||
if (this.options.fileTypes) {
|
||||
this.uploaderOptions.acceptedFiles = this.options.fileTypes
|
||||
}
|
||||
|
||||
if (this.options.template) {
|
||||
this.uploaderOptions.previewTemplate = $(this.options.template).html()
|
||||
}
|
||||
|
||||
this.uploaderOptions.thumbnailWidth = this.options.thumbnailWidth
|
||||
? this.options.thumbnailWidth : null
|
||||
|
||||
this.uploaderOptions.thumbnailHeight = this.options.thumbnailHeight
|
||||
? this.options.thumbnailHeight : null
|
||||
|
||||
this.uploaderOptions.resize = this.onResizeFileInfo
|
||||
|
||||
/*
|
||||
* Add CSRF token to headers
|
||||
*/
|
||||
var token = $('meta[name="csrf-token"]').attr('content')
|
||||
if (token) {
|
||||
this.uploaderOptions.headers['X-CSRF-TOKEN'] = token
|
||||
}
|
||||
|
||||
this.dropzone = new Dropzone(this.$el.get(0), this.uploaderOptions)
|
||||
this.dropzone.on('addedfile', this.proxy(this.onUploadAddedFile))
|
||||
this.dropzone.on('sending', this.proxy(this.onUploadSending))
|
||||
this.dropzone.on('success', this.proxy(this.onUploadSuccess))
|
||||
this.dropzone.on('error', this.proxy(this.onUploadError))
|
||||
|
||||
Snowboard.globalEvent("formwidgets.fileupload.initUploader", this);
|
||||
}
|
||||
|
||||
FileUpload.prototype.onResizeFileInfo = function(file) {
|
||||
var info,
|
||||
targetWidth,
|
||||
targetHeight
|
||||
|
||||
if (!this.options.thumbnailWidth && !this.options.thumbnailHeight) {
|
||||
targetWidth = targetHeight = 100
|
||||
}
|
||||
else if (this.options.thumbnailWidth) {
|
||||
targetWidth = this.options.thumbnailWidth
|
||||
targetHeight = this.options.thumbnailWidth * file.height / file.width
|
||||
}
|
||||
else if (this.options.thumbnailHeight) {
|
||||
targetWidth = this.options.thumbnailHeight * file.height / file.width
|
||||
targetHeight = this.options.thumbnailHeight
|
||||
}
|
||||
|
||||
// drawImage(image, srcX, srcY, srcWidth, srcHeight, trgX, trgY, trgWidth, trgHeight) takes an image, clips it to
|
||||
// the rectangle (srcX, srcY, srcWidth, srcHeight), scales it to dimensions (trgWidth, trgHeight), and draws it
|
||||
// on the canvas at coordinates (trgX, trgY).
|
||||
info = {
|
||||
srcX: 0,
|
||||
srcY: 0,
|
||||
srcWidth: file.width,
|
||||
srcHeight: file.height,
|
||||
trgX: 0,
|
||||
trgY: 0,
|
||||
trgWidth: targetWidth,
|
||||
trgHeight: targetHeight
|
||||
}
|
||||
|
||||
return info
|
||||
}
|
||||
|
||||
FileUpload.prototype.onUploadAddedFile = function(file) {
|
||||
var $object = $(file.previewElement).data('dzFileObject', file),
|
||||
filesize = this.getFilesize(file)
|
||||
|
||||
// Change filesize format to match Winter\Storm\Filesystem\Filesystem::sizeToString() format
|
||||
$(file.previewElement).find('[data-dz-size]').html('<strong>' + filesize.size + '</strong> ' + filesize.units)
|
||||
|
||||
// Remove any exisiting objects for single variety
|
||||
if (!this.options.isMulti) {
|
||||
this.removeFileFromElement($object.siblings())
|
||||
}
|
||||
|
||||
this.evalIsPopulated()
|
||||
}
|
||||
|
||||
FileUpload.prototype.onUploadSending = function(file, xhr, formData) {
|
||||
this.addExtraFormData(formData)
|
||||
xhr.setRequestHeader('X-WINTER-REQUEST-HANDLER', this.options.uploadHandler)
|
||||
}
|
||||
|
||||
FileUpload.prototype.onUploadSuccess = function(file, response) {
|
||||
var $preview = $(file.previewElement),
|
||||
$img = $('.image img', $preview)
|
||||
|
||||
$preview.addClass('is-success')
|
||||
|
||||
if (response.id) {
|
||||
$preview.data('id', response.id)
|
||||
$preview.data('path', response.path)
|
||||
$('.upload-remove-button', $preview).data('request-data', { file_id: response.id })
|
||||
$img.attr('src', response.thumb)
|
||||
}
|
||||
|
||||
this.triggerChange();
|
||||
}
|
||||
|
||||
FileUpload.prototype.onUploadError = function(file, error) {
|
||||
var $preview = $(file.previewElement)
|
||||
$preview.addClass('is-error')
|
||||
}
|
||||
|
||||
/*
|
||||
* Trigger change event (Compatibility with winter.form.js)
|
||||
*/
|
||||
FileUpload.prototype.triggerChange = function() {
|
||||
this.$el.closest('[data-field-name]').trigger('change.oc.formwidget')
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the required additional data to the fileupload request
|
||||
*/
|
||||
FileUpload.prototype.addExtraFormData = function(formData) {
|
||||
if (this.options.extraData) {
|
||||
$.each(this.options.extraData, function (name, value) {
|
||||
formData.append(name, value)
|
||||
})
|
||||
}
|
||||
|
||||
// Add the data from the containing form element to the upload request to
|
||||
// ensure that the widget is properly initialized to handle the upload
|
||||
var $form = this.$el.closest('form')
|
||||
if ($form.length > 0) {
|
||||
var requestParentData = $form.getRequestParentData()
|
||||
$.each(requestParentData, function (key) {
|
||||
formData.append(key, this)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
FileUpload.prototype.removeFileFromElement = function($element) {
|
||||
var self = this
|
||||
|
||||
$element.each(function() {
|
||||
var $el = $(this),
|
||||
obj = $el.data('dzFileObject')
|
||||
|
||||
if (obj) {
|
||||
self.dropzone.removeFile(obj)
|
||||
}
|
||||
else {
|
||||
$el.remove()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//
|
||||
// Sorting
|
||||
//
|
||||
|
||||
FileUpload.prototype.bindSortable = function() {
|
||||
var
|
||||
self = this,
|
||||
placeholderEl = $('<div class="upload-object upload-placeholder"/>').css({
|
||||
width: this.options.imageWidth,
|
||||
height: this.options.imageHeight
|
||||
})
|
||||
|
||||
this.$filesContainer.sortable({
|
||||
itemSelector: 'div.upload-object.is-success',
|
||||
nested: false,
|
||||
tolerance: -100,
|
||||
placeholder: placeholderEl,
|
||||
handle: '.drag-handle',
|
||||
onDrop: function ($item, container, _super) {
|
||||
_super($item, container)
|
||||
self.onSortAttachments()
|
||||
},
|
||||
distance: 10
|
||||
})
|
||||
}
|
||||
|
||||
FileUpload.prototype.onSortAttachments = function() {
|
||||
if (this.options.sortHandler) {
|
||||
|
||||
/*
|
||||
* Build an object of ID:ORDER
|
||||
*/
|
||||
var orderData = {}
|
||||
|
||||
this.$el.find('.upload-object.is-success')
|
||||
.each(function(index){
|
||||
var id = $(this).data('id')
|
||||
orderData[id] = index + 1
|
||||
})
|
||||
|
||||
this.$el.request(this.options.sortHandler, {
|
||||
data: { sortOrder: orderData }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// User interaction
|
||||
//
|
||||
|
||||
FileUpload.prototype.onRemoveObject = function(ev) {
|
||||
var self = this,
|
||||
$object = $(ev.target).closest('.upload-object')
|
||||
|
||||
$(ev.target)
|
||||
.closest('.upload-remove-button')
|
||||
.one('ajaxPromise', function(){
|
||||
$object.addClass('is-loading')
|
||||
})
|
||||
.one('ajaxDone', function(){
|
||||
self.removeFileFromElement($object)
|
||||
self.evalIsPopulated()
|
||||
self.triggerChange()
|
||||
})
|
||||
.request()
|
||||
|
||||
ev.stopPropagation()
|
||||
}
|
||||
|
||||
FileUpload.prototype.onClickSuccessObject = function(ev) {
|
||||
if ($(ev.target).closest('.meta').length) return
|
||||
|
||||
var $target = $(ev.target).closest('.upload-object')
|
||||
|
||||
if (!this.options.configHandler) {
|
||||
window.open($target.data('path'))
|
||||
return
|
||||
}
|
||||
|
||||
$target.popup({
|
||||
handler: this.options.configHandler,
|
||||
extraData: { file_id: $target.data('id') }
|
||||
})
|
||||
|
||||
$target.one('popupComplete', function(event, element, modal){
|
||||
|
||||
modal.one('ajaxDone', 'button[type=submit]', function(e, context, data) {
|
||||
if (data.displayName) {
|
||||
$('[data-dz-name]', $target).text(data.displayName)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
FileUpload.prototype.onClickErrorObject = function(ev) {
|
||||
var
|
||||
self = this,
|
||||
$target = $(ev.target).closest('.upload-object'),
|
||||
errorMsg = $('[data-dz-errormessage]', $target).text(),
|
||||
$template = $(this.options.errorTemplate)
|
||||
|
||||
// Remove any exisiting objects for single variety
|
||||
if (!this.options.isMulti) {
|
||||
this.removeFileFromElement($target.siblings())
|
||||
}
|
||||
|
||||
$target.ocPopover({
|
||||
content: Mustache.render($template.html(), { errorMsg: errorMsg }),
|
||||
modal: true,
|
||||
highlightModalTarget: true,
|
||||
placement: 'top',
|
||||
fallbackPlacement: 'left',
|
||||
containerClass: 'popover-danger'
|
||||
})
|
||||
|
||||
var $container = $target.data('oc.popover').$container
|
||||
$container.one('click', '[data-remove-file]', function() {
|
||||
$target.data('oc.popover').hide()
|
||||
self.removeFileFromElement($target)
|
||||
self.evalIsPopulated()
|
||||
})
|
||||
}
|
||||
|
||||
//
|
||||
// Helpers
|
||||
//
|
||||
|
||||
FileUpload.prototype.evalIsPopulated = function() {
|
||||
var isPopulated = !!$('.upload-object', this.$filesContainer).length
|
||||
this.$el.toggleClass('is-populated', isPopulated)
|
||||
|
||||
// Reset maxFiles counter
|
||||
if (!isPopulated) {
|
||||
this.dropzone.removeAllFiles()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Replicates the formatting of Winter\Storm\Filesystem\Filesystem::sizeToString(). This method will return
|
||||
* an object with the file size amount and the unit used as `size` and `units` respectively.
|
||||
*/
|
||||
FileUpload.prototype.getFilesize = function (file) {
|
||||
var formatter = new Intl.NumberFormat('en', {
|
||||
style: 'decimal',
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2
|
||||
}),
|
||||
size = 0,
|
||||
units = 'bytes'
|
||||
|
||||
if (file.size >= 1073741824) {
|
||||
size = formatter.format(file.size / 1073741824)
|
||||
units = 'GB'
|
||||
} else if (file.size >= 1048576) {
|
||||
size = formatter.format(file.size / 1048576)
|
||||
units = 'MB'
|
||||
} else if (file.size >= 1024) {
|
||||
size = formatter.format(file.size / 1024)
|
||||
units = 'KB'
|
||||
} else if (file.size > 1) {
|
||||
size = file.size
|
||||
units = 'bytes'
|
||||
} else if (file.size == 1) {
|
||||
size = 1
|
||||
units = 'byte'
|
||||
}
|
||||
|
||||
return {
|
||||
size: size,
|
||||
units: units
|
||||
}
|
||||
}
|
||||
|
||||
FileUpload.DEFAULTS = {
|
||||
url: window.location,
|
||||
uploadHandler: null,
|
||||
configHandler: null,
|
||||
sortHandler: null,
|
||||
extraData: {},
|
||||
paramName: 'file_data',
|
||||
fileTypes: null,
|
||||
maxFilesize: 256,
|
||||
template: null,
|
||||
errorTemplate: null,
|
||||
isMulti: null,
|
||||
isPreview: null,
|
||||
isSortable: null,
|
||||
thumbnailWidth: 120,
|
||||
thumbnailHeight: 120
|
||||
}
|
||||
|
||||
// FILEUPLOAD PLUGIN DEFINITION
|
||||
// ============================
|
||||
|
||||
var old = $.fn.fileUploader
|
||||
|
||||
$.fn.fileUploader = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('oc.fileUpload')
|
||||
var options = $.extend({}, FileUpload.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
||||
if (!data) $this.data('oc.fileUpload', (data = new FileUpload(this, options)))
|
||||
if (typeof option == 'string') data[option].call($this)
|
||||
})
|
||||
}
|
||||
|
||||
$.fn.fileUploader.Constructor = FileUpload
|
||||
|
||||
// FILEUPLOAD NO CONFLICT
|
||||
// =================
|
||||
|
||||
$.fn.fileUploader.noConflict = function () {
|
||||
$.fn.fileUpload = old
|
||||
return this
|
||||
}
|
||||
|
||||
// FILEUPLOAD DATA-API
|
||||
// ===============
|
||||
$(document).render(function () {
|
||||
$('[data-control="fileupload"]').fileUploader()
|
||||
})
|
||||
|
||||
}(window.jQuery);
|
||||
@@ -0,0 +1,414 @@
|
||||
.uploader-object-active() {
|
||||
background: @fileupload-object-active-bg !important;
|
||||
|
||||
i, p.size {
|
||||
color: #ecf0f1;
|
||||
}
|
||||
|
||||
h4 {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.icon-container {
|
||||
border-right-color: @fileupload-object-active-bg !important;
|
||||
}
|
||||
}
|
||||
|
||||
.uploader-progress-bar() {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
height: @fileupload-progress-bar-height;
|
||||
background-color: @fileupload-progress-bar-bg;
|
||||
border-radius: @border-radius-base;
|
||||
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
|
||||
|
||||
.upload-progress {
|
||||
float: left;
|
||||
width: 0%;
|
||||
height: 100%;
|
||||
line-height: @fileupload-progress-bar-height;
|
||||
color: @fileupload-progress-bar-color;
|
||||
background-color: #5fb6f5;
|
||||
.box-shadow(none);
|
||||
.transition(width .6s ease);
|
||||
}
|
||||
}
|
||||
|
||||
.uploader-block-button() {
|
||||
display: block;
|
||||
border: 2px dashed #BDC3C7;
|
||||
background-clip: content-box;
|
||||
background-color: #F9F9F9;
|
||||
position: relative;
|
||||
outline: none;
|
||||
|
||||
.upload-button-icon {
|
||||
position: absolute;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-top: -11px;
|
||||
margin-left: -11px;
|
||||
|
||||
&:before {
|
||||
text-align: center;
|
||||
display: block;
|
||||
font-size: 22px;
|
||||
height: 22px;
|
||||
width: 22px;
|
||||
line-height: 22px;
|
||||
color: #BDC3C7;
|
||||
}
|
||||
|
||||
&.large-icon {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-top: -17px;
|
||||
margin-left: -17px;
|
||||
|
||||
&:before {
|
||||
font-size: 34px;
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border: 2px dashed @brand-secondary;
|
||||
|
||||
.upload-button-icon:before {
|
||||
color: @brand-secondary;
|
||||
}
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border: 2px dashed @brand-secondary;
|
||||
|
||||
.upload-button-icon:before {
|
||||
color: @brand-secondary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.uploader-small-loader() {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-top: -10px;
|
||||
margin-left: -10px;
|
||||
background-size: 20px 20px;
|
||||
}
|
||||
|
||||
.uploader-vertical-align() {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -44px;
|
||||
height: 88px;
|
||||
}
|
||||
|
||||
//
|
||||
// Shared
|
||||
//
|
||||
|
||||
.field-fileupload {
|
||||
|
||||
//
|
||||
// Uploaded item
|
||||
//
|
||||
|
||||
.upload-object {
|
||||
|
||||
.border-radius(3px);
|
||||
position: relative;
|
||||
outline: none;
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.icon-container {
|
||||
display: table;
|
||||
opacity: .6;
|
||||
|
||||
i {
|
||||
color: #95a5a6;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
div {
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-container.image {
|
||||
> div.icon-wrapper {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 13px;
|
||||
color: #2A3E51;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
line-height: 150%;
|
||||
margin: 15px 0 5px 0;
|
||||
padding-right: 0;
|
||||
.transition(padding 0.1s);
|
||||
|
||||
position: relative;
|
||||
|
||||
a {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
display: none;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
p.size {
|
||||
font-size: 12px;
|
||||
color: #95a5a6;
|
||||
strong { font-weight: 400; }
|
||||
}
|
||||
|
||||
.meta {
|
||||
.drag-handle {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
cursor: move;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.info h4 a,
|
||||
.meta a.upload-remove-button,
|
||||
.meta a.drag-handle {
|
||||
color: #2b3e50;
|
||||
display: none;
|
||||
font-size: 13px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
// Loading State
|
||||
//
|
||||
|
||||
.upload-object {
|
||||
.icon-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.icon-container:after {
|
||||
background-image: url('../../../../../system/assets/ui/images/loader-transparent.svg');
|
||||
position: absolute;
|
||||
content: ' ';
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-top: -20px;
|
||||
margin-left: -20px;
|
||||
display: block;
|
||||
background-size: 40px 40px;
|
||||
background-position: 50% 50%;
|
||||
.animation(spin 1s linear infinite);
|
||||
}
|
||||
|
||||
&.is-success {
|
||||
.icon-container {
|
||||
opacity: 1;
|
||||
}
|
||||
.icon-container:after {
|
||||
opacity: 0;
|
||||
.transition(opacity .3s ease);
|
||||
}
|
||||
}
|
||||
|
||||
// Replaces the loader with an error symbol
|
||||
&.is-error {
|
||||
.icon-container:after {
|
||||
content: "";
|
||||
background: none;
|
||||
.icon(@exclamation-triangle);
|
||||
.animation(none);
|
||||
font-size: 40px;
|
||||
color: @brand-danger;
|
||||
margin-top: -20px;
|
||||
margin-left: -20px;
|
||||
text-shadow: 2px 2px 0 #fff;
|
||||
}
|
||||
}
|
||||
|
||||
&.is-loading {
|
||||
.icon-container {
|
||||
opacity: .6;
|
||||
}
|
||||
.icon-container:after {
|
||||
opacity: 1;
|
||||
.transition(opacity .3s ease);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Success state
|
||||
//
|
||||
|
||||
.upload-object.is-success {
|
||||
cursor: pointer;
|
||||
|
||||
.progress-bar {
|
||||
opacity: 0;
|
||||
.transition(opacity .3s ease);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
h4 a,
|
||||
.meta .upload-remove-button,
|
||||
.meta .drag-handle { display: block; }
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Error State
|
||||
//
|
||||
|
||||
.upload-object.is-error {
|
||||
cursor: pointer;
|
||||
|
||||
.icon-container {
|
||||
opacity: 1;
|
||||
> img, > i {
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
||||
.info h4 {
|
||||
color: @brand-danger;
|
||||
a {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.meta {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Sortable
|
||||
//
|
||||
|
||||
&.is-sortable {
|
||||
position: relative;
|
||||
|
||||
.upload-placeholder {
|
||||
position: relative;
|
||||
border: 1px dotted #e0e0e0 !important;
|
||||
}
|
||||
|
||||
.upload-object.dragged {
|
||||
position: absolute;
|
||||
.opacity(.5);
|
||||
z-index: 2000;
|
||||
.uploader-toolbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Preview mode
|
||||
//
|
||||
|
||||
&.is-preview {
|
||||
.upload-button,
|
||||
.upload-remove-button,
|
||||
.meta a.drag-handle {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Media
|
||||
//
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.field-fileupload {
|
||||
.upload-object.is-success {
|
||||
h4 a,
|
||||
.meta .upload-remove-button,
|
||||
.meta .drag-handle { display: block !important; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Config form
|
||||
//
|
||||
|
||||
.fileupload-config-form {
|
||||
.fileupload-url-button{
|
||||
padding-left: 0;
|
||||
> i {
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
|
||||
.file-upload-modal-image-header {
|
||||
// Photoshop transparent background
|
||||
// Based on: http://lea.verou.me/css3patterns/#checkerboard
|
||||
background-color: #FEFEFE;
|
||||
background-image: -webkit-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB), -webkit-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB);
|
||||
background-image: -moz-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB), -moz-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB);
|
||||
background-image: -o-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB), -o-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB);
|
||||
background-image: -ms-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB), -ms-linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB);
|
||||
background-image: linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB), linear-gradient(45deg, #CBCBCB 25%, transparent 25%, transparent 75%, #CBCBCB 75%, #CBCBCB);
|
||||
-webkit-background-size: 20px 20px;
|
||||
-moz-background-size: 20px 20px;
|
||||
background-size: 20px 20px;
|
||||
background-position: 0 0, 10px 10px;
|
||||
|
||||
|
||||
&, img {
|
||||
.border-top-radius(2px);
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
background: #BDC3C7;
|
||||
opacity: .7;
|
||||
height: 24px;
|
||||
width: 22px;
|
||||
z-index: 1;
|
||||
|
||||
&:hover, &:focus {
|
||||
opacity: .9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.file-upload-modal-image-header + .modal-body {
|
||||
padding-top: @padding-standard;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
//
|
||||
// Multi File
|
||||
//
|
||||
|
||||
.field-fileupload.style-file-multi {
|
||||
.upload-button {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.upload-files-container {
|
||||
border: 1px solid @fileupload-list-border-color;
|
||||
.border-radius(3px);
|
||||
border-bottom: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.is-populated .upload-files-container {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.upload-object {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid @fileupload-list-border-color;
|
||||
padding-left: 10px;
|
||||
|
||||
&:nth-child(even) {
|
||||
background-color: @fileupload-list-accent-bg;
|
||||
}
|
||||
|
||||
.icon-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 10px;
|
||||
width: 15px;
|
||||
padding: 11px 7px;
|
||||
|
||||
i {
|
||||
line-height: 150%;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
img { display: none; }
|
||||
}
|
||||
|
||||
.info {
|
||||
margin-left: 35px;
|
||||
margin-right: 15%;
|
||||
|
||||
h4, p {
|
||||
margin: 0;
|
||||
padding: 11px 0;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
line-height: 150%;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
h4 {
|
||||
padding-right: 15px;
|
||||
|
||||
a {
|
||||
padding: 10px 0;
|
||||
right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
p.size {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 15%;
|
||||
display: none;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
.uploader-progress-bar();
|
||||
position: absolute;
|
||||
top: 18px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.meta {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
margin-right: 15px;
|
||||
width: 15%;
|
||||
|
||||
a.drag-handle {
|
||||
top: -2px;
|
||||
bottom: auto;
|
||||
line-height: 150%;
|
||||
padding: 10px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-container:after {
|
||||
.uploader-small-loader();
|
||||
}
|
||||
|
||||
&.is-error .icon-container:after {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
//
|
||||
// Success
|
||||
//
|
||||
|
||||
&.is-success {
|
||||
.info p.size { display: block; }
|
||||
}
|
||||
|
||||
//
|
||||
// Sorting
|
||||
//
|
||||
|
||||
&.upload-placeholder {
|
||||
height: 35px;
|
||||
background-color: transparent;
|
||||
&:after { opacity: 0; }
|
||||
}
|
||||
|
||||
//
|
||||
// Hover
|
||||
//
|
||||
|
||||
&:hover {
|
||||
.uploader-object-active();
|
||||
h4 { padding-right: 35px; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Media
|
||||
//
|
||||
|
||||
@media (max-width: @screen-md-max) {
|
||||
.field-fileupload.style-file-multi {
|
||||
.info {
|
||||
margin-right: 20% !important;
|
||||
p.size {
|
||||
width: 20% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.meta {
|
||||
width: 20% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: @screen-sm-max) {
|
||||
.field-fileupload.style-file-multi {
|
||||
.upload-object {
|
||||
h4 { padding-right: 35px !important; }
|
||||
}
|
||||
|
||||
.info {
|
||||
margin-right: 25% !important;
|
||||
p.size {
|
||||
width: 25% !important;
|
||||
padding-right: 35px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.meta {
|
||||
width: 25% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
//
|
||||
// Single File
|
||||
//
|
||||
|
||||
.field-fileupload.style-file-single {
|
||||
background-color: @color-form-field-bg;
|
||||
border: 1px solid @color-form-field-border;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
padding-right: 30px;
|
||||
border-radius: 3px;
|
||||
.box-shadow(@input-box-shadow);
|
||||
|
||||
.upload-button {
|
||||
.uploader-vertical-align();
|
||||
background: transparent;
|
||||
right: -2px;
|
||||
|
||||
color: lighten(@color-form-field-recordfinder-btn, 15%);
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: @color-form-field-recordfinder-btn;
|
||||
}
|
||||
}
|
||||
|
||||
.upload-empty-message {
|
||||
padding: 8px 0 8px 11px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&.is-populated {
|
||||
.upload-empty-message {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.upload-object {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 7px 0 9px 0;
|
||||
|
||||
.icon-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 15px;
|
||||
padding: 0 5px;
|
||||
margin: 8px 0 0 7px;
|
||||
text-align: center;
|
||||
|
||||
i {
|
||||
line-height: 150%;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
img { display: none; }
|
||||
}
|
||||
|
||||
.info {
|
||||
margin-left: 34px;
|
||||
margin-right: 15%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
h4, p {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
line-height: 150%;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
p.size {
|
||||
font-weight: normal;
|
||||
&:before {
|
||||
content: " - ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
.uploader-progress-bar();
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -2px;
|
||||
right: 5px;
|
||||
}
|
||||
|
||||
.meta {
|
||||
.uploader-vertical-align();
|
||||
right: 0;
|
||||
width: 15%;
|
||||
.upload-remove-button {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
height: 20px;
|
||||
margin-top: -10px;
|
||||
margin-right: 10px;
|
||||
z-index: 100;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-container:after {
|
||||
.uploader-small-loader();
|
||||
}
|
||||
|
||||
&.is-error .icon-container:after {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
//
|
||||
// Multi Image
|
||||
//
|
||||
|
||||
.field-fileupload.style-image-multi {
|
||||
.upload-button,
|
||||
.upload-object {
|
||||
margin: 0 10px 10px 0;
|
||||
}
|
||||
|
||||
.upload-button {
|
||||
.uploader-block-button();
|
||||
float: left;
|
||||
width: 76px;
|
||||
height: 76px;
|
||||
}
|
||||
|
||||
.upload-files-container {
|
||||
margin-left: 90px;
|
||||
}
|
||||
|
||||
.upload-object {
|
||||
background: #fff;
|
||||
border: 1px solid #ecf0f1;
|
||||
width: 260px;
|
||||
|
||||
.progress-bar {
|
||||
.uploader-progress-bar();
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.icon-container {
|
||||
border-right: 1px solid #f6f8f9;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
width: 75px;
|
||||
height: 75px;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
i {
|
||||
font-size: 35px;
|
||||
}
|
||||
|
||||
&.image img {
|
||||
.border-left-radius(3px);
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
margin-left: 90px;
|
||||
|
||||
h4 {
|
||||
padding-right: 15px;
|
||||
a {
|
||||
right: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.meta {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 15px 0 90px;
|
||||
|
||||
a.drag-handle {
|
||||
bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
&.upload-placeholder {
|
||||
height: 75px;
|
||||
background-color: transparent;
|
||||
&:after { opacity: 0; }
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.uploader-object-active();
|
||||
h4 { padding-right: 35px; }
|
||||
}
|
||||
}
|
||||
|
||||
&.is-preview {
|
||||
.upload-files-container {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// On Sidebar
|
||||
//
|
||||
|
||||
.form-sidebar .field-fileupload.style-image-multi .upload-files-container {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.form-sidebar .field-fileupload.style-image-multi .upload-button {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
//
|
||||
// Media
|
||||
//
|
||||
|
||||
@media (max-width: 1280px) {
|
||||
.field-fileupload.style-image-multi {
|
||||
.upload-object {
|
||||
width: 230px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.field-fileupload.style-image-multi {
|
||||
.upload-button {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.upload-files-container {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.upload-object {
|
||||
margin-right: 0;
|
||||
display: block;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user