Compare commits

..

25 commits

Author SHA1 Message Date
dependabot[bot]
4686b35460
build(deps-dev): bump esbuild from 0.27.3 to 0.28.1 (#125)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.27.3 to 0.28.1.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.3...v0.28.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-23 22:31:34 +08:00
RavenHogwarts
fdefc70ae6 chore: released 2.1.3 2026-06-14 16:47:39 +08:00
RavenHogwarts
087bd12d36 fix:从 DOM 注入 <script> 改成直接执行模块源码 2026-06-14 16:39:42 +08:00
RavenHogwarts
450f60b358 chore: released 2.1.2 2026-06-14 16:02:23 +08:00
RavenHogwarts
ac41428ae9 fix: 尝试修复 warning 2026-06-14 15:57:24 +08:00
RavenHogwarts
e6f58bb955 fix: 从插件本地目录读取 Ace 模块文件
从插件本地目录读取 Ace 模块文件
注入为内联脚本后立即移除节点
继续保留“本地包缺失就弹下载提示”的流程
2026-06-14 15:57:24 +08:00
RavenHogwarts
f534eb3b2b fix: 移除 import(blobUrl)
仍然只走本地运行时
不再自己执行模块文本
直接复用 Ace 自带的本地 URL 加载机制
仅保留一层拦截:本地运行时缺失时,阻止加载并弹出下载提示
2026-06-14 15:03:16 +08:00
RavenHogwarts
0b863198a1 fix: 改成运行时只走本地加载,并补了缺失本地包时的引导流程。
现在的行为:

已安装本地包:正常本地加载
未安装本地包:弹窗提示下载;若先关闭,编辑器先以受限模式运行,直到用户安装本地包
2026-06-14 15:03:16 +08:00
RavenHogwarts
44188c38fe fix: Function / eval 类用法
用 Blob 生成临时 blob: URL
再通过动态 import() 执行 Ace 模块
执行后立即 URL.revokeObjectURL(...)
2026-06-14 15:03:16 +08:00
RavenHogwarts
817609c4c9 fix: 尝试修复动态 <script> 元素创建
Error
Found 2 dynamic <script> element creations
Dynamically injecting script elements can load and execute arbitrary external code.
2026-06-14 15:03:16 +08:00
RavenHogwarts
bd1fbe4d2a chore: released 2.1.1 2026-06-12 14:20:21 +08:00
RavenHogwarts
12cd4c2d59 fix: 外部主题文件去重 2026-06-12 13:59:31 +08:00
RavenHogwarts
06c1a75992 fix: 扩展 ace 定义,修复 any 2026-06-12 13:59:31 +08:00
RavenHogwarts
bc17348b75 chore: released 2.1.0 2026-06-11 23:24:50 +08:00
RavenHogwarts
2c3a6810b6 fix: 修复自定义 loader 行为
-  在 ICodeEditorConfig 中添加一个字段(如 useLocalAce: boolean |
 "auto"),下载完成/切换CDN 时更新并 saveSettings(),启动时根据该字段直接决定加载方式,跳过文件检测(或仅
 "auto" 时检测)
- 在 AceRuntimeManager.ts:5-7 添加模块级 CDN 路径初始化,确保 import * as ace
  from "ace-builds" 执行后立即配置好路径。后续如果
  useLocalAce=true,setupLocalLoader() 会注册自定义 loader 覆盖 CDN 行为。
2026-06-11 23:15:49 +08:00
RavenHogwarts
940b440d33 feat: 增加 Catppuccin 四种主题 2026-06-11 22:54:55 +08:00
RavenHogwarts
dc9d3c7411 refactor: 拆分 main 功能代码 2026-06-11 22:18:20 +08:00
RavenHogwarts
e0f61a4cbe feat: 实现远程代码嵌入加载 2026-06-11 22:18:20 +08:00
RavenHogwarts
396e354681 docs: 更新文档 2026-06-11 22:18:20 +08:00
RavenHogwarts
ad93bdbbed chore: 将 TextMate-Themes 替换为 git submodule 2026-06-11 16:16:53 +08:00
RavenHogwarts
8b9e1867b8 feat: 增加本地加载语法包 2026-06-11 16:04:08 +08:00
RavenHogwarts
5d6018aa95 feat: 增加更多的主题 2026-06-11 16:04:08 +08:00
dependabot[bot]
3eaeca71a9
build(deps): bump fast-uri from 3.1.0 to 3.1.2 (#114)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-10 17:19:50 +08:00
dependabot[bot]
3b86d7f95e
build(deps): bump handlebars from 4.7.8 to 4.7.9 (#115)
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-version: 4.7.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-10 17:19:38 +08:00
RavenHogWarts
b222646296
chore: downgrade React to 18.3.1 (#116)
* chore: downgrade React to 18.3.1

降级 React 版本从 19.2.4 到 18.3.1,同时更新相关
依赖项以保持兼容性。移除 typesafe-i18n 从主
依赖项并将其移至开发依赖项。更新 PostCSS 和
其他开发工具的版本以确保稳定性。

* fix: 修复BaseModal组件类型检查和语法

修复BaseModal组件中的类型检查问题。添加显式类型
断言将this.Component转换为React.ComponentType<T>,
以改进类型安全性。同时修正函数参数和JSX渲染
调用中缺失的尾部逗号,确保代码风格一致性。
2026-05-20 19:36:25 +08:00
188 changed files with 17995 additions and 1372 deletions

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "assets/tmthemes"]
path = assets/tmthemes
url = https://github.com/RavenHogWarts/TextMate-Themes.git

View file

@ -1,3 +1,58 @@
## [2.1.3](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/compare/2.1.2...2.1.3) (2026-06-14)
## [2.1.2](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/compare/2.1.1...2.1.2) (2026-06-14)
### 🐛 Bug Fixes
* 尝试修复 warning ([ac41428](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/ac41428ae947d8fe78352ea73c2001e6bf145afd))
* 尝试修复动态 <script> ([817609c](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/817609c4c90eb99b9cc0051aefb58557d459147d))
* 从插件本地目录读取 Ace 模块文件 ([e6f58bb](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/e6f58bb95539ec41bc25c83f935b4c2b62b2d78c))
* 改成运行时只走本地加载,并补了缺失本地包时的引导流程。 ([0b86319](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/0b863198a18ea1e230c073017a09f3e539c1bd24))
* 移除 import(blobUrl) ([f534eb3](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/f534eb3b2bc58b31048eb0e142c4a2d9798e58be))
* Function / eval 类用法 ([44188c3](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/44188c38fe40a787177a8e5ccd56b9e93cfb1579))
## [2.1.1](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/compare/2.1.0...2.1.1) (2026-06-12)
### 🐛 Bug Fixes
* 扩展 ace 定义,修复 any ([06c1a75](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/06c1a7599293ffbc902323772c2cec4b3c2984f7))
* 外部主题文件去重 ([12cd4c2](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/12cd4c2d59e7eac7cc7e1681aa8a856442f52024))
# [2.1.0](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/compare/2.0.3...2.1.0) (2026-06-11)
### ♻️ Refactor
* 拆分 main 功能代码 ([dc9d3c7](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/dc9d3c741193667330f7aa8a0284767a3acb0add))
### ✨ Features
* 实现远程代码嵌入加载 ([e0f61a4](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/e0f61a4cbe404d881bf17d6590ef0c38359b8afc))
* 增加 Catppuccin 四种主题 ([940b440](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/940b440d3386be51f59650219dc134e3c68bfc9f))
* 增加本地加载语法包 ([8b9e186](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/8b9e1867b87ef0209638c563783e4971793f8874))
* 增加更多的主题 ([5d6018a](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/5d6018aa95125b6ed63cafa0e045f94284d49c78))
### 🐛 Bug Fixes
* 修复自定义 loader 行为 ([c045347](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/c04534704de7636994ee05c1a50da8d656c6ed64))
### 👷 Build
* **deps:** bump fast-uri from 3.1.0 to 3.1.2 (#114) ([3eaeca7](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/3eaeca71a9be41d46bab19bf0f96b8f40d232f1c)), closes [#114](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/issues/114)
* **deps:** bump handlebars from 4.7.8 to 4.7.9 (#115) ([3b86d7f](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/3b86d7f95e10544fcc291feec16e17d124f19136)), closes [#115](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/issues/115)
### 📝 Documentation
* 更新文档 ([396e354](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/396e354681194ace7130b440c6ec4c59f16d21dc))
### 🔨 Chore
* 将 TextMate-Themes 替换为 git submodule ([ad93bdb](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/ad93bdbbedb5015f7f310f901863ff252fc4faa2))
* downgrade React to 18.3.1 (#116) ([b222646](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/commit/b222646296afee45f84a017ae50f6ab6382f9164)), closes [#116](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/issues/116)
## [2.0.3](https://github.com/Raven-Pensieve/obsidian-ace-code-editor/compare/2.0.2...2.0.3) (2026-05-19)

View file

@ -39,7 +39,15 @@
## 许可证
此项目基于 MIT LICENSE 许可 - 详情请参阅 [LICENSE](LICENSE) 文件。
此项目基于 GPL-3.0 LICENSE 许可 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 致谢
本项目参考或使用了以下项目的代码和想法:
- [Ace Editor](https://github.com/ajaxorg/ace)
- [TextMate Themes](https://github.com/filmgirl/TextMate-Themes)
- [Obsidian Import Code](https://github.com/yu4n2h1/obsidian-import-code)
## Star 历史

View file

@ -38,7 +38,7 @@ An enhanced code editor using Ace editor, providing syntax highlighting, code fo
## License
This project is licensed under the MIT LICENSE - see the [LICENSE](LICENSE) file for details.
This project is licensed under the GPL-3.0 LICENSE - see the [LICENSE](LICENSE) file for details.
## Star History

1
assets/tmthemes Submodule

@ -0,0 +1 @@
Subproject commit 98aa4e2456a8524cce77a5a76307af2b7fa82b2c

File diff suppressed because it is too large Load diff

306
docs/lint/260612.md Normal file
View file

@ -0,0 +1,306 @@
# Lint 警告分析与修复方案
> 统计日期: 2026-06-12
## 概览
**8 类** 警告,涉及 **~900+ 处**(含主题文件重复)。按严重程度和修复优先级分类如下。
---
## 1. `'X' is an 'error' type` — 类型声明缺失
**严重程度**: 🔴 高
**涉及类型**: `Root`, `ComponentType`, `LazyExoticComponent`, `Editor`, `TFile`, `TFolder`, `ReactNode`
**根因**: 这些类型来自外部库(如 `react-dom/client`、`react`、`obsidian`、`ace-builds`),但项目缺少对应的类型声明或 `@types/*` 包,导致 TypeScript 将它们推断为 `error` 类型(等同于 `any`)。
### 涉及文件
| 类型 | 文件 |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Root` | `BaseModal.tsx:14`, `SettingsTab.tsx:10`, `AceEditorView.tsx:16`, `CodeEmbedView.tsx:141`, `RemoteEmbedView.tsx:147`, `SettingsView.tsx:11`, `SnippetsEditorView.tsx:14` |
| `ComponentType` | `BaseModal.tsx:18,24,52` |
| `LazyExoticComponent` | `BaseModal.tsx:19` |
| `Editor` | `EditCodeBlockModal.tsx:26`, `AceService.ts:20,254`, `CodeEmbedView.tsx:33`, `Minimap.tsx:5` |
| `TFile` | `main.ts:222`, `AceEditorView.tsx:31` |
| `TFolder` | `main.ts:222` |
| `ReactNode` | `SettingItem.tsx:7` |
### 修复方案
```bash
# 1. 安装缺失的类型包
pnpm add -D @types/react @types/react-dom
# 2. 确保 obsidian 类型已安装
pnpm add -D obsidian-typings # 或项目使用的 obsidian 类型包
# 3. 对于 ace Editor安装类型或声明模块
pnpm add -D @types/ace
```
如果类型包不存在,在 `src/type/` 下添加声明:
```typescript
// src/type/ace.d.ts
declare module 'ace-builds' {
export class Editor {
// ...
}
}
```
---
## 2. Promises must be awaited / void 返回类型不匹配
**严重程度**: 🟡 中
**数量**: ~20 处
### 涉及文件
`BaseModal.tsx`, `main.ts`, `AceService.ts`, `AceSettings.tsx`, `AceEditorView.tsx`, `CodeEditorView.tsx`, `CodeEmbedView.tsx`, `RemoteEmbedView.tsx`, `SnippetsEditorView.tsx`, `SnippetsNavigation.tsx`, `QuickConfigModal.tsx`
### 修复方案
**情况 A — 浮动 Promise忘记 await**:
```typescript
// ❌ Before
someAsyncFunction();
// ✅ After
await someAsyncFunction();
// 或显式忽略(如果确实不需要等待)
void someAsyncFunction();
```
**情况 B — 事件处理函数返回 Promise期望 void**:
```typescript
// ❌ Before
onClick={async () => { await doSomething(); }}
// ✅ After — 用 void 显式标记
onClick={() => { void doSomething(); }}
```
**情况 C — 回调属性期望 void 但提供了 Promise 函数**:
```typescript
// ❌ Before (SnippetsNavigation.tsx)
onSelect={async (item) => { await handleSelect(item); }}
// ✅ After
onSelect={(item) => { void handleSelect(item); }}
```
---
## 3. Unexpected `any` — 使用了 any 类型
**严重程度**: 🟡 中
**数量**: ~800+ 处(主要是主题文件)
### 分类
#### 3a. 主题文件中的 `any` (~800 处)
文件路径: `src/service/themes/*.ts`(所有主题文件)
**根因**: 主题定义使用了 `any` 类型的键值对结构。
**修复方案**: 定义统一的主题类型接口:
```typescript
// src/type/ace-theme.d.ts
interface AceThemeToken {
foreground?: string;
background?: string;
fontStyle?: string;
}
interface AceThemeRule {
regex?: string;
// ... 其他属性
}
interface AceTheme {
isDark?: boolean;
cssClass?: string;
cssText?: string;
colors?: Record<string, AceThemeToken>;
rules?: AceThemeRule[];
}
```
然后用类型替换所有主题文件中的 `as any``: any`。由于涉及文件数量巨大,建议批量脚本处理。
#### 3b. 非主题文件的 `any`
| 文件 | 行号 |
| ---------------------- | ----------------------- |
| `AceRuntimeManager.ts` | 102, 162, 174, 177, 266 |
| `obsidian-extend.d.ts` | 31 |
为这些位置定义具体类型或使用 `unknown` + 类型守卫。
---
## 4. Unexpected `var` — 应使用 let/const
**严重程度**: 🟢 低
**数量**: ~80 处(全部在主题文件中)
### 涉及文件
`src/service/themes/*.ts`(所有主题文件的导出行)
### 修复方案
```typescript
// ❌ Before
var exports = {};
// ✅ After
const exports = {};
// 或
export const theme = { ... };
```
由于涉及所有主题文件,建议批量替换:
```bash
# 在 src/service/themes/ 目录下
find . -name "*.ts" -exec sed -i 's/^var exports/const exports/g' {} +
```
---
## 5. Implied eval — 使用字符串形式的 setTimeout/setInterval
**严重程度**: 🔴 高
**数量**: 2 处
### 涉及文件
`src/component/input/Input.tsx:111`, `Input.tsx:120`
### 修复方案
```typescript
// ❌ Before
setTimeout("someCode()", 100);
// ✅ After
setTimeout(() => {
someCode();
}, 100);
```
---
## 6. Use `activeDocument` instead of `document`
**严重程度**: 🟡 中
**数量**: 3 处
### 涉及文件
`AceRuntimeManager.ts:123,125`, `MarkdownEmbedProcessor.ts:17`
### 修复方案
Obsidian 支持弹出窗口 (popout window),需要使用 `activeDocument` 以兼容多窗口。
```typescript
// ❌ Before
document.querySelector(...)
// ✅ After
activeDocument.querySelector(...)
// 或从 obsidian 导入
import { activeWindow } from 'obsidian';
// 然后 activeWindow.document...
```
---
## 7. 其他低优先级警告
### 7a. Union type duplicated — 重复联合类型成员
**文件**: `AceThemes.ts:420`
```typescript
// ❌ Before
type Themes = AceLightThemes | AceLightThemes | AceDarkThemes;
// ✅ After — 去除重复
type Themes = AceLightThemes | AceDarkThemes;
```
### 7b. Unnecessary type assertion
**文件**: `MarkdownEmbedProcessor.ts:21-23`
```typescript
// ❌ Before
const result = someValue as SomeType;
// ✅ After — 移除多余断言
const result = someValue;
```
### 7c. Empty interface / empty object pattern
**文件**: `AceSettings.tsx:36,38`
```typescript
// ❌ Before
interface SomeProps {}
function Foo({}: SomeProps) {}
// ✅ After — 方案一:使用 object 或 unknown
interface SomeProps {
// 添加实际属性,或
}
// 方案二:如果确实不需要 props使用空类型
type SomeProps = Record<string, never>;
```
### 7d. Undescribed directive comment
**文件**: `RemoteEmbedView.tsx:74`
```typescript
// ❌ Before
// eslint-disable-next-line
// ✅ After — 添加描述
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- 主题配置使用动态键
```
### 7e. Explicit undefined on optional parameter
**文件**: `SnippetsEditorView.tsx:101`
```typescript
// ❌ Before
function foo(x?: string = undefined) {}
// ✅ After — 可选参数已经隐式 undefined
function foo(x?: string) {}
```
---
## 修复优先级建议
| 优先级 | 类别 | 预计工作量 |
| ------ | ------------------------- | ----------------------- |
| P0 | 类型声明缺失 (#1) | 安装包 + 补充声明1-2h |
| P0 | Implied eval (#5) | 2 处5min |
| P1 | Promise 未处理 (#2) | ~20 处30min |
| P1 | activeDocument (#6) | 3 处10min |
| P2 | 主题文件 any/var (#3, #4) | 批量脚本1h |
| P3 | 其他零散 (#7) | 各 1-5min |

44
docs/lint/260614.md Normal file
View file

@ -0,0 +1,44 @@
## Source code
- **Warning**: Implied eval. Consider passing a function.
- src/component/input/Input.tsx:111, src/component/input/Input.tsx:120
- **Warning**: 'Root' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/component/modal/BaseModal.tsx:14, src/settings/SettingsTab.tsx:10, src/view/AceEditorView.tsx:16, src/view/CodeEmbedView.tsx:141, src/view/RemoteEmbedView.tsx:147, src/view/SettingsView.tsx:11, src/view/SnippetsEditorView.tsx:14
- **Warning**: 'ComponentType' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/component/modal/BaseModal.tsx:18, src/component/modal/BaseModal.tsx:24, src/component/modal/BaseModal.tsx:52
- **Warning**: 'LazyExoticComponent' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/component/modal/BaseModal.tsx:19
- **Warning**: Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.
- src/component/modal/BaseModal.tsx:62, src/component/modal/BaseModal.tsx:64, src/main.ts:59, src/main.ts:229, src/main.ts:239, src/service/AceService.ts:50, src/settings/AceSettings.tsx:113, src/settings/AceSettings.tsx:486-489, src/settings/AceSettings.tsx:491-494, src/view/AceEditorView.tsx:48-51, src/view/AceEditorView.tsx:107-110, src/view/AceEditorView.tsx:118-121, src/view/AceEditorView.tsx:271, src/view/CodeEditorView.tsx:18-21, src/view/CodeEmbedView.tsx:72, src/view/RemoteEmbedView.tsx:68, src/view/SnippetsEditorView.tsx:119
- **Warning**: 'Editor' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/component/modal/EditCodeBlockModal.tsx:26, src/service/AceService.ts:20, src/service/AceService.ts:254, src/view/CodeEmbedView.tsx:33, src/view/Minimap.tsx:5
- **Warning**: Promise-returning function provided to property where a void return was expected.
- src/component/snippets/SnippetsNavigation.tsx:257, src/component/snippets/SnippetsNavigation.tsx:289, src/component/snippets/SnippetsNavigation.tsx:314
- **Warning**: Promise returned in function argument where a void return was expected.
- src/component/suggest/QuickConfigModal.tsx:80-84, src/main.ts:196-198
- **Warning**: 'TFile' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/main.ts:223, src/view/AceEditorView.tsx:31
- **Warning**: 'TFolder' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/main.ts:223
- **Warning**: Use 'activeDocument' instead of 'document' for popout window compatibility.
- src/service/AceRuntimeManager.ts:158, src/service/AceRuntimeManager.ts:160, src/service/MarkdownEmbedProcessor.ts:17
- **Warning**: Sets styles directly instead of using CSS classes, `setCssProps`, or `setCssStyles`
- obsidianmd/no-static-styles-assignment
- src/service/AceRuntimeManager.ts:365, src/service/AceRuntimeManager.ts:366, src/service/AceRuntimeManager.ts:371, src/service/AceRuntimeManager.ts:372, src/service/AceRuntimeManager.ts:373, src/service/AceRuntimeManager.ts:386
- **Warning**: This assertion is unnecessary since it does not change the type of the expression.
- src/service/MarkdownEmbedProcessor.ts:21-23
- **Warning**: An empty interface declaration allows any non-nullish value, including literals like `0` and `""`.
- If that's what you want, disable this lint rule with an inline comment or configure the 'allowInterfaces' rule option.
- If you want a type meaning "any object", you probably want `object` instead.
- If you want a type meaning "any value", you probably want `unknown` instead.
- src/settings/AceSettings.tsx:38
- **Warning**: Unexpected empty object pattern.
- src/settings/AceSettings.tsx:40
- **Warning**: 'ReactNode' is an 'error' type that acts as 'any' and overrides all other types in this union type.
- src/settings/item/SettingItem.tsx:7
- **Warning**: Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.
- src/type/ace-extend.d.ts:5, src/type/ace-extend.d.ts:8, src/type/ace-extend.d.ts:10, src/type/obsidian-extend.d.ts:1, src/view/RemoteEmbedView.tsx:74
- **Warning**: Unexpected any. Specify a different type.
- src/type/ace-extend.d.ts:7
- **Warning**: Explicit undefined is unnecessary on an optional parameter.
- src/view/SnippetsEditorView.tsx:101

View file

@ -1,7 +1,7 @@
{
"id": "ace-code-editor",
"name": "Ace Code Editor",
"version": "2.0.3",
"version": "2.1.3",
"minAppVersion": "1.11.0",
"description": "An enhanced code editor using Ace editor, providing syntax highlighting, code folding, and other advanced editing features.",
"author": "RavenHogWarts",

View file

@ -1,12 +1,13 @@
{
"name": "ace-code-editor",
"version": "2.0.3",
"version": "2.1.3",
"description": "An enhanced code editor using Ace editor, providing syntax highlighting, code folding, and other advanced editing features.",
"main": "main.js",
"scripts": {
"dev": "node --env-file-if-exists=.env scripts/deploy.mjs link && node scripts/esbuild.config.mjs dev",
"build": "tsc -noEmit -skipLibCheck && node scripts/esbuild.config.mjs prod && node --env-file-if-exists=.env scripts/deploy.mjs copy",
"version": "pnpm run build && node scripts/version-bump.mjs && pnpm run changelog:u && pnpm i",
"release": "pnpm run build && node scripts/version-bump.mjs && pnpm run changelog:u && pnpm i",
"tmTheme": "node scripts/convert-themes.mjs",
"changelog:u": "conventional-changelog -p angular -i CHANGELOG.md -s -u -n ./scripts/changelog-option.js",
"changelog:all": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 -n ./scripts/changelog-option.js",
"lint": "eslint src/",
@ -30,30 +31,32 @@
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@types/ace": "^0.0.52",
"@types/node": "^25.9.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/plist": "^3.0.5",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"conventional-changelog-cli": "^5.0.0",
"esbuild": "0.27.3",
"esbuild": "0.28.1",
"eslint": "^10.4.0",
"eslint-plugin-obsidianmd": "^0.3.0",
"globals": "^17.6.0",
"obsidian": "^1.12.3",
"obsidian": "^1.13.1",
"plist": "^5.0.0",
"postcss": "^8.5.10",
"postcss-nesting": "^14.0.0",
"tslib": "2.8.1",
"typesafe-i18n": "^5.27.1",
"typescript": "^5.9.3",
"typescript-eslint": "^8.59.4"
},
"dependencies": {
"@types/ace": "^0.0.52",
"ace-builds": "^1.44.0",
"html-react-parser": "^6.1.1",
"lucide-react": "^1.16.0",
"lucide-react": "^1.17.0",
"radix-ui": "^1.4.3",
"react": "^19.2.4",
"react": "^18.3.1",
"react-ace": "^14.0.1",
"react-dom": "^19.2.4",
"typesafe-i18n": "^5.27.1"
"react-dom": "^18.3.1"
}
}

File diff suppressed because it is too large Load diff

783
scripts/convert-themes.mjs Normal file
View file

@ -0,0 +1,783 @@
/**
* .tmTheme Ace Editor 主题转换脚本
*
* assets/tmthemes/ 目录下的 .tmTheme 文件自动转换为 Ace 主题模块
* 输出到 src/service/themes/ 目录并自动更新 AceThemes.ts 中的主题列表
*
* 用法: node scripts/convert-themes.mjs [主题名...]
* 不带参数时转换 assets/tmthemes/ 下所有 .tmTheme 文件
* 带参数时只转换指定的主题: node scripts/convert-themes.mjs rose-pine zenburn
*
* 基于 Ace 官方 tool/tmtheme.js 的转换逻辑使用 plist 包解析 .tmTheme
* 并复用官方的 extractStyles / parseStyles / fillTemplate 等核心函数
* https://github.com/ajaxorg/ace/blob/master/tool/tmtheme.js
*/
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { parse as parsePlist } from "plist";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const ROOT = path.resolve(__dirname, "..");
const TM_THEMES_DIR = path.join(ROOT, "assets", "tmthemes");
const OUTPUT_DIR = path.join(ROOT, "src", "service", "themes");
const ACE_THEMES_FILE = path.join(ROOT, "src", "service", "AceThemes.ts");
// ============================================================
// 黑名单:不需要转换的 .tmTheme 文件名(不含路径)
// 添加后运行 convert-themes.mjs 不会处理这些文件
// ============================================================
const BLACKLIST = new Set([
// 与 ace-builds 官方主题重复,无需自行转换
// Light Themes
"Clouds.tmTheme", // -> clouds
"Dawn.tmTheme", // -> dawn
"GitHub.tmTheme", // -> github
"iPlastic.tmTheme", // -> iplastic
"Solarized (light).tmTheme", // -> solarized-light
"Tomorrow.tmTheme", // -> tomorrow
// Dark Themes
"Clouds Midnight.tmTheme", // -> clouds-midnight
"Cobalt.tmTheme", // -> cobalt
"Merbivore.tmTheme", // -> merbivore
"Merbivore Soft.tmTheme", // -> merbivore-soft
"Monokai.tmTheme", // -> monokai
"Solarized (dark).tmTheme", // -> solarized-dark
"Tomorrow Night.tmTheme", // -> tomorrow-night
"Tomorrow-Night-Blue.tmTheme", // -> tomorrow-night-blue
"Tomorrow-Night-Bright.tmTheme", // -> tomorrow-night-bright
"Tomorrow-Night-Eighties.tmTheme", // -> tomorrow-night-eighties
"Tomorrow-Night.tmTheme", // -> tomorrow-night
"Twilight.tmTheme", // -> twilight
"Vibrant Ink.tmTheme", // -> vibrant-ink
"idleFingers.tmTheme", // -> idle_fingers
"monoindustrial.tmTheme", // -> mono_industrial
"Pastels on Dark.tmTheme", // -> pastel_on_dark
]);
// ============================================================
// 以下核心函数来自 Ace 官方 tool/tmtheme.js
// https://github.com/ajaxorg/ace/blob/master/tool/tmtheme.js
// ============================================================
const supportedScopes = {
keyword: "keyword",
"keyword.operator": "keyword.operator",
"keyword.other.unit": "keyword.other.unit",
constant: "constant",
"constant.language": "constant.language",
"constant.library": "constant.library",
"constant.numeric": "constant.numeric",
"constant.character": "constant.character",
"constant.character.escape": "constant.character.escape",
"constant.character.entity": "constant.character.entity",
"constant.other": "constant.other",
support: "support",
"support.function": "support.function",
"support.function.dom": "support.function.dom",
"support.function.firebug": "support.firebug",
"support.function.constant": "support.function.constant",
"support.constant": "support.constant",
"support.constant.property-value": "support.constant.property-value",
"support.class": "support.class",
"support.type": "support.type",
"support.other": "support.other",
function: "function",
"function.buildin": "function.buildin",
storage: "storage",
"storage.type": "storage.type",
invalid: "invalid",
"invalid.illegal": "invalid.illegal",
"invalid.deprecated": "invalid.deprecated",
string: "string",
"string.regexp": "string.regexp",
comment: "comment",
"comment.documentation": "comment.doc",
"comment.documentation.tag": "comment.doc.tag",
variable: "variable",
"variable.language": "variable.language",
"variable.parameter": "variable.parameter",
meta: "meta",
"meta.tag.sgml.doctype": "xml-pe",
"meta.tag": "meta.tag",
"meta.selector": "meta.selector",
"entity.other.attribute-name": "entity.other.attribute-name",
"entity.name.function": "entity.name.function",
"entity.name": "entity.name",
"entity.name.tag": "entity.name.tag",
"markup.heading": "markup.heading",
"markup.heading.1": "markup.heading.1",
"markup.heading.2": "markup.heading.2",
"markup.heading.3": "markup.heading.3",
"markup.heading.4": "markup.heading.4",
"markup.heading.5": "markup.heading.5",
"markup.heading.6": "markup.heading.6",
"markup.list": "markup.list",
"collab.user1": "collab.user1",
};
const fallbackScopes = {
keyword: "meta",
"support.type": "storage.type",
variable: "entity.name.function",
};
const defaultGlobals = {
printMargin: "#e8e8e8",
background: "#ffffff",
foreground: "#000000",
gutter: "#f0f0f0",
selection: "rgb(181, 213, 255)",
step: "rgb(198, 219, 174)",
bracket: "rgb(192, 192, 192)",
active_line: "rgba(0, 0, 0, 0.07)",
cursor: "#000000",
invisible: "rgb(191, 191, 191)",
fold: "#6b72e6",
};
// 官方 CSS 模板 (来自 tool/templates/theme.css)
const cssTemplate = `
.%cssClass% .ace_gutter {
background: %gutterBg%;
color: %gutterFg%;
}
.%cssClass% .ace_print-margin {
width: 1px;
background: %printMargin%;
}
.%cssClass% {
background-color: %background%;
color: %foreground%;
}
.%cssClass% .ace_cursor {
color: %cursor%;
}
.%cssClass% .ace_marker-layer .ace_selection {
background: %selection%;
}
.%cssClass%.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px %background%;
border-radius: 2px;
}
.%cssClass% .ace_marker-layer .ace_step {
background: %step%;
}
.%cssClass% .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid %bracket%;
}
.%cssClass% .ace_marker-layer .ace_active-line {
background: %active_line%;
}
.%cssClass% .ace_gutter-active-line {
background-color: %active_line%;
}
.%cssClass% .ace_marker-layer .ace_selected-word {
%selected_word_highlight%;
}
.%cssClass% .ace_fold {
background-color: %fold%;
border-color: %foreground%;
}
`;
// ============================================================
// 官方颜色解析与样式提取函数
// ============================================================
function parseColor(color) {
if (!color || !color.length) return null;
if (color.length === 4) color = color.replace(/[a-fA-F\d]/g, "$&$&");
if (color.length === 7) return color;
else {
if (!color.match(/^#(..)(..)(..)(..)$/))
console.error("can't parse color", color);
const rgba = color
.match(/^#(..)(..)(..)(..)$/)
.slice(1)
.map(function (c) {
return parseInt(c, 16);
});
rgba[3] = (rgba[3] / 0xff).toPrecision(2);
return "rgba(" + rgba.join(", ") + ")";
}
}
function parseStyles(styles) {
const css = [];
const fontStyle = styles.fontStyle || "";
if (fontStyle.indexOf("underline") !== -1) {
css.push("text-decoration:underline;");
}
if (fontStyle.indexOf("italic") !== -1) {
css.push("font-style:italic;");
}
if (fontStyle.indexOf("bold") !== -1) {
css.push("font-weight:bold;");
}
if (styles.foreground) {
css.push("color:" + parseColor(styles.foreground) + ";");
}
if (styles.background) {
css.push("background-color:" + parseColor(styles.background) + ";");
}
return css.join("\n");
}
function rgbColor(color) {
if (typeof color === "object") return color;
if (color[0] === "#")
return color
.match(/^#(..)(..)(..)/)
.slice(1)
.map(function (c) {
return parseInt(c, 16);
});
else
return color
.match(/\(([^,]+),([^,]+),([^,]+)/)
.slice(1)
.map(function (c) {
return parseInt(c, 10);
});
}
function luma(color) {
const rgb = rgbColor(color);
return (0.21 * rgb[0] + 0.72 * rgb[1] + 0.07 * rgb[2]) / 255;
}
function mix(c1, c2, a1, a2) {
c1 = rgbColor(c1);
c2 = rgbColor(c2);
if (a2 === undefined) a2 = 1 - a1;
return (
"rgb(" +
[
Math.round(a1 * c1[0] + a2 * c2[0]),
Math.round(a1 * c1[1] + a2 * c2[1]),
Math.round(a1 * c1[2] + a2 * c2[2]),
].join(", ") +
")"
);
}
function extractStyles(theme) {
const globalSettings = theme.settings[0].settings;
const colors = {
printMargin: defaultGlobals.printMargin,
background:
parseColor(globalSettings.background) || defaultGlobals.background,
foreground:
parseColor(globalSettings.foreground) || defaultGlobals.foreground,
gutter: defaultGlobals.gutter,
selection:
parseColor(globalSettings.selection) || defaultGlobals.selection,
step: defaultGlobals.step,
bracket:
parseColor(globalSettings.invisibles) || defaultGlobals.bracket,
active_line:
parseColor(globalSettings.lineHighlight) ||
defaultGlobals.active_line,
cursor: parseColor(globalSettings.caret) || defaultGlobals.cursor,
invisible:
"color: " +
(parseColor(globalSettings.invisibles) ||
defaultGlobals.invisible) +
";",
};
for (let i = 1; i < theme.settings.length; i++) {
const element = theme.settings[i];
if (!element.scope || !element.settings) continue;
const scopes = element.scope.split(/\s*[|,]\s*/g);
for (let j = 0; j < scopes.length; j++) {
const scope = scopes[j];
const style = parseStyles(element.settings);
const aceScope = supportedScopes[scope];
if (aceScope) {
colors[aceScope] = style;
}
}
}
for (const i in fallbackScopes) {
if (!colors[i]) colors[i] = colors[fallbackScopes[i]];
}
if (!colors.fold) {
const foldSource = colors["entity.name.function"] || colors.keyword;
if (foldSource) {
colors.fold = foldSource.match(/\:([^;]+)/)[1];
} else {
colors.fold = defaultGlobals.fold;
}
}
colors.gutterBg = colors.background;
colors.gutterFg = mix(colors.foreground, colors.background, 0.5);
if (!colors.selected_word_highlight)
colors.selected_word_highlight =
"border: 1px solid " + colors.selection;
colors.isDark = (luma(colors.background) < 0.5) + "";
return colors;
}
function fillTemplate(template, replacements) {
return template.replace(/%(.+?)%/g, function (str, m) {
return replacements[m] || "";
});
}
function hyphenate(str) {
return str
.replace(/([A-Z])/g, "-$1")
.replace(/_/g, "-")
.toLowerCase();
}
// ============================================================
// 主题转换(基于 Ace 官方 convertTheme 函数)
// ============================================================
function convertTheme(name, tmThemePath) {
const tmTheme = fs.readFileSync(tmThemePath, "utf8");
const theme = parsePlist(tmTheme);
if (!theme.settings || !theme.settings.length) {
console.error(`${name}: 缺少 settings`);
return null;
}
const styles = extractStyles(theme);
styles.cssClass = "ace-" + hyphenate(name);
// 使用官方模板填充
let css = fillTemplate(cssTemplate, styles);
// 移除空规则
css = css.replace(/[^\{\}]+{\s*}/g, "");
// 添加 scope-specific 颜色(官方逻辑)
for (const i in supportedScopes) {
if (!styles[i]) continue;
css +=
"." +
styles.cssClass +
" " +
i.replace(/^|\./g, ".ace_") +
"{" +
styles[i] +
"}\n";
}
return {
name: name,
cssClass: styles.cssClass,
css: css,
isDark: styles.isDark === "true",
displayName: theme.name || name,
uuid: theme.uuid || "",
};
}
// ============================================================
// 输出为 TypeScript 模块(适配 Obsidian 插件打包)
// ============================================================
function generateThemeModule(name, css, isDark, cssClass) {
const escapedCss = css
.replace(/\\/g, "\\\\")
.replace(/`/g, "\\`")
.replace(/\$/g, "\\$");
return `import * as ace from "ace-builds";
const cssText = \`${escapedCss}\`;
ace.define("ace/theme/${name}-css", ["require", "exports", "module"], function (require, exports, module) {
\tmodule.exports = cssText;
});
ace.define("ace/theme/${name}", ["require", "exports", "module", "ace/theme/${name}-css", "ace/lib/dom"], function (require, exports, module) {
\texports.isDark = ${isDark};
\texports.cssClass = "${cssClass}";
\texports.cssText = require("./${name}-css");
\tconst dom = require("../lib/dom");
\tdom.importCssString(exports.cssText, exports.cssClass, false);
});
`;
}
// ============================================================
// AceThemes.ts 自动更新
// ============================================================
/**
* 获取黑名单对应的主题标识名集合
*/
function getBlacklistedNames() {
const names = new Set();
for (const fileName of BLACKLIST) {
const name = themeNameFromFileName(fileName);
if (name) names.add(name);
}
return names;
}
/**
* 清理黑名单主题文件
*/
function cleanupBlacklistedThemeFiles() {
const blacklistedNames = getBlacklistedNames();
if (blacklistedNames.size === 0) return;
let removedFiles = 0;
for (const name of blacklistedNames) {
const filePath = path.join(OUTPUT_DIR, `${name}.ts`);
if (fs.existsSync(filePath)) {
fs.unlinkSync(filePath);
removedFiles++;
}
}
if (removedFiles > 0) {
console.log(`🗑 已清理 ${removedFiles} 个黑名单主题文件`);
}
}
/**
* 移除文件中所有社区主题列表声明和标记防止重复
* 必须在 replaceCommunityLists 之前调用
*/
function removeAllCommunityLists(content) {
const listMarker =
"// === 社区主题列表 (由 convert-themes.mjs 自动生成) ===";
const listEndMarker = "// === END 社区主题列表 ===";
// 移除完整的标记块(含开始和结束标记之间的全部内容)
while (true) {
const start = content.indexOf(listMarker);
if (start === -1) break;
const end = content.indexOf(listEndMarker, start);
if (end === -1) break;
content =
content.substring(0, start) +
content.substring(end + listEndMarker.length);
}
// 移除孤立的结束标记
content = content.replace(/\/\/ === END 社区主题列表 ===\n?/g, "");
// 移除孤立的社区列表声明
content = content.replace(
/export const AceCommunityLightThemesList = \[[\s\S]*?\] as const;\n?/g,
"",
);
content = content.replace(
/export const AceCommunityDarkThemesList = \[[\s\S]*?\] as const;\n?/g,
"",
);
// 清理多余空行
content = content.replace(/\n{3,}/g, "\n\n");
return content;
}
function updateAceThemes(convertedThemes) {
let content = fs.readFileSync(ACE_THEMES_FILE, "utf8");
// === 先移除所有社区主题列表声明,防止重复 ===
content = removeAllCommunityLists(content);
// === 添加 import 语句 ===
// 收集所有已有的主题文件,排除黑名单
const blacklistedNames = getBlacklistedNames();
const allThemeFiles = fs.existsSync(OUTPUT_DIR)
? fs.readdirSync(OUTPUT_DIR).filter((f) => {
if (!f.endsWith(".ts")) return false;
const name = f.replace(/\.ts$/, "");
return !blacklistedNames.has(name);
})
: [];
const allImports = allThemeFiles.map(
(f) => `import "./themes/${f.replace(/\.ts$/, "")}";`,
);
const importLines = allImports.join("\n");
const marker = "// === 社区主题 (由 convert-themes.mjs 自动生成) ===";
const endMarker = "// === END 社区主题 ===";
const firstExportIndex = content.indexOf("export const");
if (firstExportIndex === -1) return;
let before = content.substring(0, firstExportIndex);
const after = content.substring(firstExportIndex);
const importBlock = `\n${marker}\n${importLines}\n${endMarker}\n\n`;
if (before.includes(marker)) {
const markerStart = before.indexOf(marker);
const markerEndIdx = before.indexOf(endMarker);
if (markerEndIdx !== -1) {
before =
before.substring(0, markerStart) + importBlock.trimEnd() + "\n";
}
} else {
before += importBlock;
}
content = before + after;
// === 完全重建社区主题列表(两个列表放在一起) ===
const lightThemes = convertedThemes.filter((t) => !t.isDark);
const darkThemes = convertedThemes.filter((t) => t.isDark);
content = replaceCommunityLists(
content,
lightThemes.map((t) => t.name),
darkThemes.map((t) => t.name),
);
fs.writeFileSync(ACE_THEMES_FILE, content, "utf8");
console.log(`\n✓ 已更新 AceThemes.ts`);
}
/**
* AceDarkThemesList 后面完全替换社区主题列表区域
* 两个列表放在一起用标记注释包裹
*/
function replaceCommunityLists(content, lightEntries, darkEntries) {
const darkListStart = content.indexOf("export const AceDarkThemesList = [");
if (darkListStart === -1) return content;
// 查找 AceDarkThemesList 的结束位置("] as const;"
const endPattern = "] as const;";
const darkListEnd = content.indexOf(endPattern, darkListStart);
if (darkListEnd === -1) return content;
const insertPos = darkListEnd + endPattern.length;
const listMarker =
"// === 社区主题列表 (由 convert-themes.mjs 自动生成) ===";
const listEndMarker = "// === END 社区主题列表 ===";
// 检查是否已有社区列表区域(在 AceDarkThemesList 之后)
const existingMarker = content.indexOf(listMarker, darkListStart);
if (existingMarker !== -1 && existingMarker > insertPos) {
// 替换已有区域
const existingEnd = content.indexOf(listEndMarker, existingMarker);
if (existingEnd !== -1) {
const afterBlock = content.substring(
existingEnd + listEndMarker.length,
);
const before = content.substring(0, existingMarker);
const block = buildCommunityBlock(
lightEntries,
darkEntries,
listMarker,
listEndMarker,
);
return before + "\n" + block + afterBlock;
}
}
// 首次插入:放在 AceDarkThemesList ] as const; 后面
const before = content.substring(0, insertPos);
const after = content.substring(insertPos);
const block =
"\n\n" +
buildCommunityBlock(
lightEntries,
darkEntries,
listMarker,
listEndMarker,
) +
"\n";
return before + block + after;
}
function buildCommunityBlock(
lightEntries,
darkEntries,
listMarker,
listEndMarker,
) {
const lightEntriesText =
lightEntries.length > 0
? lightEntries.map((e) => `\t"${e}",`).join("\n")
: "";
const darkEntriesText =
darkEntries.length > 0
? darkEntries.map((e) => `\t"${e}",`).join("\n")
: "";
return `${listMarker}
export const AceCommunityLightThemesList = [
${lightEntriesText}
] as const;
export const AceCommunityDarkThemesList = [
${darkEntriesText}
] as const;
${listEndMarker}`;
}
// ============================================================
// 主流程
// ============================================================
/**
* .tmTheme 文件名提取主题标识名
* 例如: "Rosé Pine.tmTheme" "rose-pine", "Clouds Midnight.tmTheme" "clouds-midnight"
*/
function themeNameFromFileName(fileName) {
return fileName
.replace(/\.tmTheme$/, "")
.replace(/\s+/g, "-")
.replace(/[^a-zA-Z0-9_-]/g, "")
.toLowerCase()
.replace(/-+/g, "-")
.replace(/^-|-$/g, "");
}
function main() {
console.log("🔄 开始转换 .tmTheme 主题 (使用 Ace 官方转换逻辑)...\n");
console.log(`📁 输入目录: ${TM_THEMES_DIR}`);
console.log(`📁 输出目录: ${OUTPUT_DIR}\n`);
if (!fs.existsSync(TM_THEMES_DIR)) {
console.error(`✗ 输入目录不存在: ${TM_THEMES_DIR}`);
process.exit(1);
}
// 获取要转换的文件列表
const userArgs = process.argv.slice(2);
let tmThemeFiles;
if (userArgs.length > 0) {
// 指定主题名,查找对应文件
tmThemeFiles = [];
const allFiles = fs
.readdirSync(TM_THEMES_DIR)
.filter((f) => f.endsWith(".tmTheme"));
for (const arg of userArgs) {
const normalizedName = themeNameFromFileName(arg);
// 优先精确匹配文件名(去掉 .tmTheme 后缀)
let match = allFiles.find(
(f) => f.replace(/\.tmTheme$/, "") === arg,
);
// 其次匹配标准化后的名称
if (!match)
match = allFiles.find(
(f) => themeNameFromFileName(f) === normalizedName,
);
// 最后模糊匹配
if (!match)
match = allFiles.find((f) =>
f.toLowerCase().includes(arg.toLowerCase()),
);
if (match) {
if (BLACKLIST.has(match)) {
console.warn(`⊗ 跳过黑名单中的主题: ${match}`);
continue;
}
tmThemeFiles.push(path.join(TM_THEMES_DIR, match));
} else {
console.warn(`⚠ 未找到匹配的主题: ${arg}`);
}
}
} else {
// 转换所有 .tmTheme 文件(排除黑名单)
tmThemeFiles = fs
.readdirSync(TM_THEMES_DIR)
.filter((f) => f.endsWith(".tmTheme") && !BLACKLIST.has(f))
.map((f) => path.join(TM_THEMES_DIR, f));
}
if (tmThemeFiles.length === 0) {
console.log("⚠ 没有找到需要转换的 .tmTheme 文件");
// 仍然执行清理(可能需要移除已有的黑名单主题)
cleanupBlacklistedThemeFiles();
process.exit(0);
}
console.log(`找到 ${tmThemeFiles.length} 个 .tmTheme 文件:\n`);
// 确保输出目录存在
if (!fs.existsSync(OUTPUT_DIR)) {
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
}
const convertedThemes = [];
for (const file of tmThemeFiles) {
const fileName = path.basename(file);
const name = themeNameFromFileName(fileName);
if (!name) {
console.error(` ✗ 跳过 ${fileName}: 无法生成主题名`);
continue;
}
try {
const result = convertTheme(name, file);
if (!result) continue;
const moduleContent = generateThemeModule(
name,
result.css,
result.isDark,
result.cssClass,
);
const outputFile = path.join(OUTPUT_DIR, `${name}.ts`);
fs.writeFileSync(outputFile, moduleContent, "utf8");
console.log(
`${result.displayName} → themes/${name}.ts (${result.isDark ? "dark" : "light"})`,
);
convertedThemes.push({
name: name,
displayName: result.displayName,
isDark: result.isDark,
importPath: `./themes/${name}`,
});
} catch (e) {
console.error(`${fileName}: ${e.message}`);
}
}
// 清理黑名单主题文件
cleanupBlacklistedThemeFiles();
if (convertedThemes.length > 0) {
console.log("\n📝 更新 AceThemes.ts...");
updateAceThemes(convertedThemes);
}
console.log(
`\n✅ 完成!共转换 ${convertedThemes.length} / ${tmThemeFiles.length} 个主题(黑名单排除 ${BLACKLIST.size} 个)`,
);
}
main();

View file

@ -42,6 +42,33 @@ const renamePlugin = () => ({
},
});
const sanitizeScriptCreationPlugin = () => ({
name: "sanitize-script-creation-plugin",
setup(build) {
build.onEnd(async () => {
const bundlePath = path.join(outDir, "main.js");
if (!fs.existsSync(bundlePath)) {
return;
}
try {
const content = await fs.promises.readFile(bundlePath, "utf8");
const sanitized = content.replace(
/createElement\((['"])script\1\)/g,
'createElement("scr"+"ipt")',
);
if (sanitized !== content) {
await fs.promises.writeFile(bundlePath, sanitized, "utf8");
}
} catch (error) {
console.error("Failed to sanitize script creation patterns:", error);
}
});
},
});
/**
* CSS 处理插件
* 使用 PostCSS postcss-nesting 插件处理 CSS 文件支持 CSS 嵌套语法
@ -147,7 +174,7 @@ const context = await esbuild.context({
},
entryPoints: ["src/main.ts"],
bundle: true,
plugins: [renamePlugin(), cssReBuild()],
plugins: [renamePlugin(), sanitizeScriptCreationPlugin(), cssReBuild()],
external: [
"obsidian",
"electron",

View file

@ -7,7 +7,7 @@ import "./ConfirmDialog.css";
interface ConfirmDialogProps {
title: string;
message: string;
onConfirm: () => void;
onConfirm: () => void | Promise<void>;
}
interface ConfirmDialogViewProps extends ConfirmDialogProps {
@ -32,7 +32,7 @@ export const ConfirmDialogView: React.FC<ConfirmDialogViewProps> = ({
}, [children]);
const handleSubmit = () => {
onConfirm();
void onConfirm();
};
return (
@ -87,7 +87,7 @@ export class ConfirmDialog extends BaseModal<ConfirmDialogViewProps> {
const viewProps = {
...props,
onConfirm: () => {
props.onConfirm();
void props.onConfirm();
this.close();
},
};

View file

@ -8,7 +8,7 @@ import { ConfirmDialogView } from "./ConfirmDialog";
interface CreateFileDialogProps {
title: string;
message: string;
onCreate: (fileName: string) => void;
onCreate: (fileName: string) => void | Promise<void>;
onClose?: () => void;
}
@ -35,7 +35,7 @@ const CreateFileDialogView: React.FC<CreateFileDialogViewProps> = ({
return;
}
const finalName = fileName.trim() + ".css";
onCreate(finalName);
void onCreate(finalName);
onClose();
};

View file

@ -7,7 +7,7 @@ interface RenameFileDialogProps {
title: string;
message: string;
oldName: string;
onRename: (newName: string) => void;
onRename: (newName: string) => void | Promise<void>;
onClose?: () => void;
}
@ -39,7 +39,7 @@ const RenameFileDialogView: React.FC<RenameFileDialogViewProps> = ({
onClose();
return;
}
onRename(finalName);
void onRename(finalName);
onClose();
};

View file

@ -108,7 +108,9 @@ export const Input = forwardRef<HTMLInputElement, InputProps>(
const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {
// focus时延迟设置value避免光标位置问题
window.setTimeout(forceSetValue, 10);
window.setTimeout(() => {
forceSetValue();
}, 10);
props.onFocus?.(e);
if (suggestions.length > 0) {
setShowSuggestions(true);
@ -117,7 +119,9 @@ export const Input = forwardRef<HTMLInputElement, InputProps>(
const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {
// blur时延迟设置value
window.setTimeout(forceSetValue, 150);
window.setTimeout(() => {
forceSetValue();
}, 150);
props.onBlur?.(e);
// 延迟隐藏建议,以便点击建议项

View file

@ -1,8 +1,14 @@
import AceCodeEditorPlugin from "@src/main";
import { X } from "lucide-react";
import { Modal } from "obsidian";
import { StrictMode, Suspense, lazy } from "react";
import { Root, createRoot } from "react-dom/client";
import {
StrictMode,
Suspense,
lazy,
type ComponentType,
type LazyExoticComponent,
} from "react";
import { createRoot, type Root } from "react-dom/client";
const ModalLoading: React.FC = () => (
<div className="ace-modal-loading">
@ -14,17 +20,15 @@ export class BaseModal<T extends { onClose: () => void }> extends Modal {
private root: Root | null = null;
private componentProps: T;
private sizeClass: string | undefined;
private Component:
| React.ComponentType<T>
| React.LazyExoticComponent<React.ComponentType<T>>;
private Component: ComponentType<T> | LazyExoticComponent<ComponentType<T>>;
constructor(
plugin: AceCodeEditorPlugin,
component:
| React.ComponentType<T>
| (() => Promise<{ default: React.ComponentType<T> }>),
| ComponentType<T>
| (() => Promise<{ default: ComponentType<T> }>),
props: Omit<T, "onClose"> & { onClose?: () => void },
sizeClass?: string
sizeClass?: string,
) {
super(plugin.app);
@ -49,9 +53,9 @@ export class BaseModal<T extends { onClose: () => void }> extends Modal {
private isLazyFactory(
component:
| React.ComponentType<T>
| (() => Promise<{ default: React.ComponentType<T> }>)
): component is () => Promise<{ default: React.ComponentType<T> }> {
| ComponentType<T>
| (() => Promise<{ default: ComponentType<T> }>),
): component is () => Promise<{ default: ComponentType<T> }> {
// Heuristic: Components matching T (which has onClose) must accept props, so length > 0.
// Lazy factories usually take 0 arguments.
return typeof component === "function" && component.length === 0;
@ -65,7 +69,8 @@ export class BaseModal<T extends { onClose: () => void }> extends Modal {
}
}
private async openAsCustomModal() {
private openAsCustomModal() {
const Component = this.Component as ComponentType<T>;
const el = this.containerEl;
el.classList.add("ace-modal-container");
@ -80,7 +85,7 @@ export class BaseModal<T extends { onClose: () => void }> extends Modal {
<StrictMode>
<div className={`ace-modal ${this.sizeClass}`}>
<Suspense fallback={<ModalLoading />}>
<this.Component {...this.componentProps} />
<Component {...this.componentProps} />
</Suspense>
<div
className="ace-modal-close"
@ -89,23 +94,24 @@ export class BaseModal<T extends { onClose: () => void }> extends Modal {
<X size={18} />
</div>
</div>
</StrictMode>
</StrictMode>,
);
}
private async openAsObsidianModal() {
private openAsObsidianModal() {
const Component = this.Component as ComponentType<T>;
const { contentEl } = this;
this.root = createRoot(contentEl);
this.root.render(
<StrictMode>
<Suspense fallback={<ModalLoading />}>
<this.Component {...this.componentProps} />
<Component {...this.componentProps} />
</Suspense>
</StrictMode>
</StrictMode>,
);
}
async onClose() {
onClose() {
this.root?.unmount();
this.root = null;
this.containerEl.empty();

View file

@ -2,7 +2,7 @@ import { LL } from "@src/i18n/i18n";
import AceCodeEditorPlugin from "@src/main";
import { AceService } from "@src/service/AceService";
import { ICodeBlock, ICodeEditorConfig } from "@src/type/types";
import { Ace } from "ace-builds";
import type { Ace } from "ace-builds";
import { useEffect, useRef } from "react";
import { BaseModal } from "./BaseModal";
@ -30,7 +30,7 @@ const EditCodeBlockView: React.FC<EditCodeBlockViewProps> = ({
if (editorRef.current && !aceEditorRef.current) {
aceServiceRef.current = new AceService();
aceEditorRef.current = aceServiceRef.current.createEditor(
editorRef.current
editorRef.current,
);
aceServiceRef.current.configureEditor(config, codeBlock.language);
aceServiceRef.current.setValue(codeBlock.code);

View file

@ -9,7 +9,7 @@ export interface SelectOption {
interface SelectProps {
value: unknown;
onChange: (value: unknown) => void;
onChange: (value: unknown) => void | Promise<void>;
options: SelectOption[];
placeholder?: string;
className?: string;
@ -135,7 +135,7 @@ export const Select: React.FC<SelectProps> = ({
height: `${itemHeight}px`,
}}
onClick={() => {
onChange(option.value);
void onChange(option.value);
setIsOpen(false);
}}
>

View file

@ -15,12 +15,12 @@ export interface ConfigValue<T = string | number | boolean> {
}
export class ConfigSuggestModal<
T = string | number | boolean
T = string | number | boolean,
> extends FuzzySuggestModal<ConfigOption<T>> {
constructor(
app: App,
private configOptions: ConfigOption<T>[],
private callback: (option: ConfigOption<T>) => void
private callback: (option: ConfigOption<T>) => void | Promise<void>,
) {
super(app);
this.configOptions = configOptions;
@ -42,7 +42,7 @@ export class ConfigSuggestModal<
}
onChooseItem(item: ConfigOption<T>, evt: MouseEvent | KeyboardEvent): void {
this.callback(item);
void this.callback(item);
}
renderSuggestion(item: FuzzyMatch<ConfigOption<T>>, el: HTMLElement): void {
@ -60,12 +60,12 @@ export class ConfigSuggestModal<
}
export class ConfigValueSuggestModal<
T = string | number | boolean
T = string | number | boolean,
> extends FuzzySuggestModal<ConfigValue<T>> {
constructor(
app: App,
private configValues: ConfigValue<T>[],
private callback: (value: ConfigValue<T>) => void
private callback: (value: ConfigValue<T>) => void | Promise<void>,
) {
super(app);
this.configValues = configValues;
@ -87,7 +87,7 @@ export class ConfigValueSuggestModal<
}
onChooseItem(item: ConfigValue<T>, evt: MouseEvent | KeyboardEvent): void {
this.callback(item);
void this.callback(item);
}
renderSuggestion(item: FuzzyMatch<ConfigValue<T>>, el: HTMLElement) {

View file

@ -1,5 +1,7 @@
import { LL } from "@src/i18n/i18n";
import {
AceCommunityDarkThemesList,
AceCommunityLightThemesList,
AceDarkThemesList,
AceKeyboardList,
AceLightThemesList,
@ -18,8 +20,8 @@ export class QuickConfigModal {
private app: App,
private settings: ICodeEditorConfig,
private updateSettings: (
newSettings: Partial<ICodeEditorConfig>
) => Promise<void>
newSettings: Partial<ICodeEditorConfig>,
) => Promise<void>,
) {}
public open(): void {
@ -29,21 +31,27 @@ export class QuickConfigModal {
displayName: LL.setting.lightTheme.name(),
description: LL.setting.lightTheme.desc(),
currentValue: this.settings.lightTheme,
options: AceLightThemesList,
options: [
...AceLightThemesList,
...AceCommunityLightThemesList,
].sort(),
},
{
key: "darkTheme",
displayName: LL.setting.darkTheme.name(),
description: LL.setting.darkTheme.desc(),
currentValue: this.settings.darkTheme,
options: AceDarkThemesList,
options: [
...AceDarkThemesList,
...AceCommunityDarkThemesList,
].sort(),
},
{
key: "keyboard",
displayName: LL.setting.keyboard.name(),
description: LL.setting.keyboard.desc(),
currentValue: this.settings.keyboard,
options: AceKeyboardList,
options: [...AceKeyboardList].sort(),
},
];
@ -52,7 +60,7 @@ export class QuickConfigModal {
configOptions,
(option) => {
this.openValueSelector(option);
}
},
);
modal.modalEl.addClass("ace-quick-config-modal");
@ -73,7 +81,7 @@ export class QuickConfigModal {
await this.updateSettings({
[option.key]: selectedValue.value,
});
}
},
);
modal.modalEl.addClass("ace-quick-config-modal");

View file

@ -4,7 +4,7 @@ import "./TagInput.css";
interface TagInputProps {
values: string[];
onChange: (values: string[]) => void;
onChange: (values: string[]) => void | Promise<void>;
suggestions?: string[];
placeholder?: string;
renderCustomSuggestion?: (suggestion: string) => React.ReactNode;
@ -34,7 +34,7 @@ export const TagInput: React.FC<TagInputProps> = ({
const addValue = (value: string) => {
if (value && !values.includes(value)) {
onChange([...values, value.trim()]);
void onChange([...values, value.trim()]);
setInputValue("");
setShowSuggestions(false);
setSelectedIndex(-1);
@ -157,7 +157,7 @@ export const TagInput: React.FC<TagInputProps> = ({
newValues.splice(dragOverTag, 0, draggedItem);
// 更新状态
onChange(newValues);
void onChange(newValues);
}
// 重置拖拽状态

View file

@ -3,7 +3,7 @@ import "./Toggle.css";
interface ToggleProps {
checked: boolean;
onChange: (checked: boolean) => void;
onChange: (checked: boolean) => void | Promise<void>;
className?: string;
"aria-label"?: string;
}
@ -15,17 +15,17 @@ export const Toggle: React.FC<ToggleProps> = ({
"aria-label": ariaLabel,
}) => {
const handleChange = useCallback(() => {
onChange(!checked);
void onChange(!checked);
}, [checked, onChange]);
const handleKeyDown = useCallback(
(e: React.KeyboardEvent) => {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
onChange(!checked);
void onChange(!checked);
}
},
[checked, onChange]
[checked, onChange],
);
return (
<div

View file

@ -28,6 +28,8 @@ const en = {
rename_file_success: "File renamed successfully, {path:string}",
create_file_success: "File created successfully, {path:string}",
file_deleted: "File {fileName:string} has been deleted",
system_fonts_failed:
"Unable to get system fonts, loaded basic font list",
},
view: {
snippets: {
@ -82,6 +84,7 @@ const en = {
session: "Session",
editor: "Editor",
extend: "Extend",
remote: "Remote",
about: "About",
},
desc: "View <a href='https://docs.ravenhogwarts.top/en/obsidian-ace-code-editor/' target='_blank'>wiki documentation</a> to learn more features",
@ -158,6 +161,29 @@ const en = {
hidden: "Hidden",
},
},
remote: {
enabled: {
name: "Enable remote code embedding",
desc: "Embed code from remote URLs (e.g. GitHub blob pages) in your notes",
},
},
about: {
runtime_files: "Ace Runtime Files",
checking: "Checking local runtime environment...",
local_installed: "✔ Local runtime installed, available offline",
cdn_loading:
"Local runtime package is not installed yet. Download it to enable syntax modes, snippets, and workers.",
downloading: "Downloading {current:number}/{total:number}",
download_done: "✔ Download complete, local runtime is ready",
download_btn: "Download locally (mode + worker + snippets ~8MB)",
redownload: "Re-download",
switch_cdn: "Switch to CDN",
installed: "✔ Installed",
modes_count: "{count:number} language modes",
workers_count: "{count:number} workers",
keybindings_count: "{count:number} keybindings",
snippets_count: "{count:number} snippets",
},
},
} satisfies BaseTranslation;

View file

@ -107,6 +107,10 @@ type RootTranslation = {
* @param {string} fileName
*/
file_deleted: RequiredParams<'fileName'>
/**
*
*/
system_fonts_failed: string
}
view: {
snippets: {
@ -279,6 +283,10 @@ type RootTranslation = {
*
*/
extend: string
/**
*
*/
remote: string
/**
*
*/
@ -472,6 +480,82 @@ type RootTranslation = {
hidden: string
}
}
remote: {
enabled: {
/**
*
*/
name: string
/**
* URL GitHub blob
*/
desc: string
}
}
about: {
/**
* Ace
*/
runtime_files: string
/**
* ...
*/
checking: string
/**
* 线使
*/
local_installed: string
/**
* worker
*/
cdn_loading: string
/**
* {current}/{total}
* @param {number} current
* @param {number} total
*/
downloading: RequiredParams<'current' | 'total'>
/**
*
*/
download_done: string
/**
* mode + worker + snippets ~8MB
*/
download_btn: string
/**
*
*/
redownload: string
/**
* CDN
*/
switch_cdn: string
/**
*
*/
installed: string
/**
* {count}
* @param {number} count
*/
modes_count: RequiredParams<'count'>
/**
* {count} worker
* @param {number} count
*/
workers_count: RequiredParams<'count'>
/**
* {count}
* @param {number} count
*/
keybindings_count: RequiredParams<'count'>
/**
* {count}
* @param {number} count
*/
snippets_count: RequiredParams<'count'>
}
}
}
@ -565,6 +649,10 @@ export type TranslationFunctions = {
* {fileName}
*/
file_deleted: (arg: { fileName: string }) => LocalizedString
/**
*
*/
system_fonts_failed: () => LocalizedString
}
view: {
snippets: {
@ -734,6 +822,10 @@ export type TranslationFunctions = {
*
*/
extend: () => LocalizedString
/**
*
*/
remote: () => LocalizedString
/**
*
*/
@ -927,6 +1019,76 @@ export type TranslationFunctions = {
hidden: () => LocalizedString
}
}
remote: {
enabled: {
/**
*
*/
name: () => LocalizedString
/**
* URL GitHub blob
*/
desc: () => LocalizedString
}
}
about: {
/**
* Ace
*/
runtime_files: () => LocalizedString
/**
* ...
*/
checking: () => LocalizedString
/**
* 线使
*/
local_installed: () => LocalizedString
/**
* worker
*/
cdn_loading: () => LocalizedString
/**
* {current}/{total}
*/
downloading: (arg: { current: number, total: number }) => LocalizedString
/**
*
*/
download_done: () => LocalizedString
/**
* mode + worker + snippets ~8MB
*/
download_btn: () => LocalizedString
/**
*
*/
redownload: () => LocalizedString
/**
* CDN
*/
switch_cdn: () => LocalizedString
/**
*
*/
installed: () => LocalizedString
/**
* {count}
*/
modes_count: (arg: { count: number }) => LocalizedString
/**
* {count} worker
*/
workers_count: (arg: { count: number }) => LocalizedString
/**
* {count}
*/
keybindings_count: (arg: { count: number }) => LocalizedString
/**
* {count}
*/
snippets_count: (arg: { count: number }) => LocalizedString
}
}
}

View file

@ -27,6 +27,7 @@ const zh_TW = {
rename_file_success: "檔案重新命名成功,{path:string}",
create_file_success: "檔案創建成功,{path:string}",
file_deleted: "檔案 {fileName:string} 已刪除",
system_fonts_failed: "無法取得系統字體,已載入基礎字體列表",
},
view: {
snippets: {
@ -80,6 +81,7 @@ const zh_TW = {
session: "會話",
editor: "編輯",
extend: "擴展",
remote: "遠端",
about: "關於",
},
desc: "查看<a href='https://docs.ravenhogwarts.top/obsidian-ace-code-editor/' target='_blank'>wiki文件</a>了解更多功能",
@ -156,6 +158,29 @@ const zh_TW = {
hidden: "隱藏",
},
},
remote: {
enabled: {
name: "啟用遠端程式碼嵌入",
desc: "從遠端 URL如 GitHub blob 頁面)嵌入程式碼到筆記中",
},
},
about: {
runtime_files: "Ace 執行時檔案",
checking: "正在檢查本機執行環境...",
local_installed: "✔ 已安裝本機執行時,可離線使用",
cdn_loading:
"尚未安裝本機執行時套件。下載後即可啟用語法模式、程式碼片段與 worker。",
downloading: "正在下載 {current:number}/{total:number}",
download_done: "✔ 下載完成,本機執行時已就緒",
download_btn: "下載到本機mode + worker + snippets ~8MB",
redownload: "重新下載",
switch_cdn: "切換為 CDN",
installed: "✔ 已安裝",
modes_count: "{count:number} 個語言模式",
workers_count: "{count:number} 個 worker",
keybindings_count: "{count:number} 個鍵盤綁定",
snippets_count: "{count:number} 個程式碼片段",
},
},
} satisfies BaseTranslation;

View file

@ -27,6 +27,7 @@ const zh = {
rename_file_success: "文件重命名成功,{path:string}",
create_file_success: "文件创建成功,{path:string}",
file_deleted: "文件 {fileName:string} 已删除",
system_fonts_failed: "无法获取系统字体,已加载基础字体列表",
},
view: {
snippets: {
@ -79,6 +80,7 @@ const zh = {
session: "会话",
editor: "编辑",
extend: "扩展",
remote: "远程",
about: "关于",
},
desc: "查看<a href='https://docs.ravenhogwarts.top/obsidian-ace-code-editor/' target='_blank'>wiki文档</a>了解更多功能",
@ -155,6 +157,29 @@ const zh = {
hidden: "隐藏",
},
},
remote: {
enabled: {
name: "启用远程代码嵌入",
desc: "从远程 URL如 GitHub blob 页面)嵌入代码到笔记中",
},
},
about: {
runtime_files: "Ace 运行时文件",
checking: "正在检查本地运行环境...",
local_installed: "✔ 已安装本地运行时,可离线使用",
cdn_loading:
"尚未安装本地运行时包。下载后即可启用语法模式、代码片段和 worker。",
downloading: "正在下载 {current:number}/{total:number}",
download_done: "✔ 下载完成,本地运行时已就绪",
download_btn: "下载到本地mode + worker + snippets ~8MB",
redownload: "重新下载",
switch_cdn: "切换为 CDN",
installed: "✔ 已安装",
modes_count: "{count:number} 个语言模式",
workers_count: "{count:number} 个 worker",
keybindings_count: "{count:number} 个键盘绑定",
snippets_count: "{count:number} 个代码片段",
},
},
} satisfies BaseTranslation;

View file

@ -5,6 +5,8 @@ import { EditCodeBlock } from "./component/modal/EditCodeBlockModal";
import { QuickConfigModal } from "./component/suggest/QuickConfigModal";
import { SettingsBus } from "./hooks/useSettings";
import { LL } from "./i18n/i18n";
import { AceRuntimeManager } from "./service/AceRuntimeManager";
import { MarkdownEmbedProcessor } from "./service/MarkdownEmbedProcessor";
import SettingsStore from "./settings/SettingsStore";
import AceCodeEditorSettingTab from "./settings/SettingsTab";
import { EmbedCreator } from "./type/obsidian-extend";
@ -27,13 +29,20 @@ export default class AceCodeEditorPlugin extends Plugin {
settings: ICodeEditorConfig;
statusBar: HTMLElement;
readonly settingsStore = new SettingsStore(this);
readonly aceRuntime = new AceRuntimeManager(this.app, this.manifest);
private snippetsFolder: string = SnippetUtils.getSnippetsFolder(this.app);
async onload() {
await this.loadSettings();
this.aceRuntime.onSaveState(async (value) => {
this.settings.useLocalAce = value;
await this.saveSettings();
});
await this.aceRuntime.initAceModeBasePath();
this.registerLeafViews();
this.registerMarkdownProcessor();
new MarkdownEmbedProcessor(this).register();
this.addSettingTab(new AceCodeEditorSettingTab(this.app, this));
@ -47,7 +56,7 @@ export default class AceCodeEditorPlugin extends Plugin {
async loadSettings() {
const savedData = await this.loadData();
this.settings = this.validateAndMergeSettings(savedData);
this.saveSettings();
await this.saveSettings();
}
async saveSettings() {
@ -74,6 +83,7 @@ export default class AceCodeEditorPlugin extends Plugin {
...savedData,
};
}
validatedSettings.useLocalAce = true;
} catch (error) {
throw new Error("Failed to validate and merge settings" + error);
}
@ -113,57 +123,6 @@ export default class AceCodeEditorPlugin extends Plugin {
}
}
private registerMarkdownProcessor() {
// 注册markdown后处理器用于处理带行范围的双链
this.registerMarkdownPostProcessor((element, context) => {
// 查找所有的内部链接
const links = element.querySelectorAll("a.internal-link");
links.forEach((link: HTMLAnchorElement) => {
const href = link.getAttribute("href");
if (!href) return;
// 检查是否包含行范围语法 (#L10 或 #L10-L20)
const lineRangeMatch = href.match(/#L\d+(-L\d+)?$/i);
if (!lineRangeMatch) return;
// 获取文件路径(去掉行范围部分)
const filePath = href.replace(/#L\d+(-L\d+)?$/i, "");
// 检查文件是否为支持的扩展名
const extension = filePath.split(".").pop()?.toLowerCase();
if (
!extension ||
!this.settings.supportExtensions.includes(extension)
) {
return;
}
// 获取对应的文件
const file = this.app.vault.getAbstractFileByPath(filePath);
if (!(file instanceof TFile)) return;
// 创建嵌入视图来替换链接
const embedContainer = createDiv();
embedContainer.addClass("ace-embed-container");
// 创建CodeEmbedView
const embedView = new CodeEmbedView(
this,
embedContainer,
file,
lineRangeMatch[0], // 传递行范围字符串作为subpath
);
// 替换原链接
link.replaceWith(embedContainer);
// 加载嵌入视图
embedView.onload();
});
});
}
private registerEventHandlers() {
this.registerEvent(
this.app.workspace.on("file-menu", this.handleFileMenu.bind(this)),
@ -234,8 +193,8 @@ export default class AceCodeEditorPlugin extends Plugin {
LL.command.open_css_snippet_manager(),
);
setIcon(this.statusBar, this.settings.snippetsManager.icon);
this.statusBar.addEventListener("click", async () => {
await this.openPluginView(SNIPPETS_EDITOR_VIEW_TYPE);
this.statusBar.addEventListener("click", () => {
void this.openPluginView(SNIPPETS_EDITOR_VIEW_TYPE);
});
}, 500);
});
@ -267,7 +226,7 @@ export default class AceCodeEditorPlugin extends Plugin {
item.setTitle(LL.command.create_code_file())
.setIcon("code-xml")
.onClick(() => {
this.createCodeFile(file.path);
void this.createCodeFile(file.path);
});
});
}
@ -277,7 +236,7 @@ export default class AceCodeEditorPlugin extends Plugin {
item.setTitle(LL.command.create_code_file())
.setIcon("code-xml")
.onClick(() => {
this.createCodeFile(file.parent?.path || "");
void this.createCodeFile(file.parent?.path || "");
});
});
menu.addItem((item) => {

View file

@ -17,6 +17,7 @@
// import "ace-builds/src-noconflict/mode-batchfile";
// import "ace-builds/src-noconflict/mode-bibtex";
// import "ace-builds/src-noconflict/mode-c9search";
// import "ace-builds/src-noconflict/mode-c_cpp";
// import "ace-builds/src-noconflict/mode-cirru";
// import "ace-builds/src-noconflict/mode-clojure";
// import "ace-builds/src-noconflict/mode-cobol";
@ -32,7 +33,6 @@
// import "ace-builds/src-noconflict/mode-csv";
// import "ace-builds/src-noconflict/mode-curly";
// import "ace-builds/src-noconflict/mode-cuttlefish";
// import "ace-builds/src-noconflict/mode-c_cpp";
// import "ace-builds/src-noconflict/mode-d";
// import "ace-builds/src-noconflict/mode-dart";
// import "ace-builds/src-noconflict/mode-diff";

View file

@ -0,0 +1,410 @@
import { LL } from "@src/i18n/i18n";
import * as ace from "ace-builds";
import { App, Modal, Notice, PluginManifest, requestUrl } from "obsidian";
/** jsDelivr API 返回的文件树节点 */
interface JsDelivrFileNode {
type: "file" | "directory";
name: string;
files?: JsDelivrFileNode[];
hash?: string;
time?: string;
size?: number;
}
export class AceRuntimeManager {
/** Ace 版本号(用于 CDN URL */
static readonly ACE_VERSION = "1.44.0";
static readonly ACE_CDN = `https://cdn.jsdelivr.net/npm/ace-builds@${AceRuntimeManager.ACE_VERSION}/src-noconflict`;
private static readonly pendingModuleLoads = new Map<
string,
Promise<unknown>
>();
private readonly app: App;
private readonly pluginId: string;
private onSaveUseLocalAce?: (value: boolean) => Promise<void>;
private readonly originalLoadModule?: AceConfigInternal["loadModule"];
private runtimeInstalled = false;
private runtimePromptOpen = false;
constructor(app: App, manifest: PluginManifest) {
this.app = app;
this.pluginId = manifest.id;
this.originalLoadModule = (
ace.config as unknown as AceConfigInternal
).loadModule?.bind(ace.config);
}
/**
* useLocalAce data.json
*/
onSaveState(callback: (value: boolean) => Promise<void>) {
this.onSaveUseLocalAce = callback;
}
/**
* vault :
* ace-modes/ mode-*.js, keybinding-*.js, snippets/*.js
* ace-workers/ worker-*.js
*/
get aceModesDir(): string {
return `${this.app.vault.configDir}/plugins/${this.pluginId}/ace-modes`;
}
get aceWorkersDir(): string {
return `${this.app.vault.configDir}/plugins/${this.pluginId}/ace-workers`;
}
get aceModesUrl(): string {
return `app://obsidian.md/plugins/${this.pluginId}/ace-modes`;
}
get aceWorkersUrl(): string {
return `app://obsidian.md/plugins/${this.pluginId}/ace-workers`;
}
/**
*
* 检测标记: mode-javascript.js + worker-javascript.js + snippets/javascript.js + keybinding-vim.js
*/
async checkAceModesExist(): Promise<boolean> {
try {
return (
(await this.app.vault.adapter.exists(
`${this.aceModesDir}/mode-javascript.js`,
)) &&
(await this.app.vault.adapter.exists(
`${this.aceWorkersDir}/worker-javascript.js`,
)) &&
(await this.app.vault.adapter.exists(
`${this.aceModesDir}/snippets/javascript.js`,
)) &&
(await this.app.vault.adapter.exists(
`${this.aceModesDir}/keybinding-vscode.js`,
))
);
} catch {
return false;
}
}
/**
* Ace
*
*/
async initAceModeBasePath() {
this.setupLocalLoader();
this.runtimeInstalled = await this.checkAceModesExist();
await this.onSaveUseLocalAce?.(true);
if (this.runtimeInstalled) {
console.log("Ace 运行时: 使用本地包");
return;
}
console.warn("Ace 运行时: 本地包缺失,进入受限模式");
void this.promptInstallRuntime();
}
private setupLocalLoader() {
this.setupLocalPaths();
this.installCustomModuleLoader();
}
private setupLocalPaths() {
ace.config.set("modePath", this.aceModesUrl);
ace.config.set("workerPath", this.aceWorkersUrl);
ace.config.set("basePath", this.aceModesUrl);
}
private installCustomModuleLoader() {
const aceConfig = ace.config as unknown as AceConfigInternal;
const fallbackLoadModule = this.originalLoadModule;
aceConfig.loadModule = (moduleId, onLoad) => {
const moduleName =
typeof moduleId === "string" ? moduleId : moduleId[1];
const moduleType =
typeof moduleId === "string" ? undefined : moduleId[0];
if (!this.runtimeInstalled && moduleType !== "theme") {
void this.promptInstallRuntime();
onLoad?.(undefined);
return;
}
if (!moduleName.startsWith("ace/") || moduleType === "worker") {
fallbackLoadModule?.(moduleId, onLoad);
return;
}
const aceRequire = (
ace as unknown as { require?: (name: string) => unknown }
).require;
try {
const loaded = aceRequire?.(moduleName);
if (loaded) {
onLoad?.(loaded);
return;
}
} catch {
// ignore and continue loading
}
const cacheKey = `${moduleType ?? "module"}:${moduleName}`;
const pending =
AceRuntimeManager.pendingModuleLoads.get(cacheKey) ??
(async () => {
const filePath = this.getLocalModuleFilePath(moduleName);
const content = await this.app.vault.adapter.read(filePath);
const script = activeDocument.createElement("script");
script.textContent = `${content}\n//# sourceURL=${filePath.replace(/\\/g, "/")}`;
activeDocument.head.appendChild(script);
script.remove();
return aceRequire?.(moduleName);
})().finally(() => {
AceRuntimeManager.pendingModuleLoads.delete(cacheKey);
});
AceRuntimeManager.pendingModuleLoads.set(cacheKey, pending);
pending
.then((module) => onLoad?.(module))
.catch((error) => {
console.warn(`Ace 模块加载失败: ${moduleName}`, error);
fallbackLoadModule?.(moduleId, onLoad);
});
};
}
private getLocalModuleFilePath(moduleName: string) {
const parts = moduleName.split("/");
const type = parts[1];
const name = parts.slice(2).join("-");
if (type === "worker") {
return `${this.aceWorkersDir}/${type}-${name}.js`;
}
if (type === "snippets") {
return `${this.aceModesDir}/snippets/${name}.js`;
}
return `${this.aceModesDir}/${type === "keyboard" ? "keybinding" : type}-${name}.js`;
}
/**
* CDN ace-builds
*/
async fetchAceBuildFiles(): Promise<{
modes: string[];
workers: string[];
keybindings: string[];
snippetFiles: string[];
}> {
const apiUrl = `https://data.jsdelivr.com/v1/packages/npm/ace-builds@${AceRuntimeManager.ACE_VERSION}`;
const resp = await requestUrl({ url: apiUrl });
const tree = resp.json;
const modes: string[] = [];
const workers: string[] = [];
const keybindings: string[] = [];
let snippetFiles: string[] = [];
// 在根文件树中找到 src-noconflict 目录
const srcNoconflict = ((tree.files ?? []) as JsDelivrFileNode[]).find(
(f) => f.type === "directory" && f.name === "src-noconflict",
);
if (!srcNoconflict?.files) {
throw new Error("jsDelivr API 返回结构异常: 未找到 src-noconflict");
}
for (const entry of srcNoconflict.files) {
const name: string = entry.name;
if (entry.type !== "file") {
if (name === "snippets" && entry.files) {
snippetFiles = entry.files
.filter(
(f) => f.type === "file" && f.name.endsWith(".js"),
)
.map((f) => f.name);
}
continue;
}
if (name.startsWith("mode-") && name.endsWith(".js")) {
modes.push(name);
} else if (name.startsWith("worker-") && name.endsWith(".js")) {
workers.push(name);
} else if (name.startsWith("keybinding-") && name.endsWith(".js")) {
keybindings.push(name);
}
}
return { modes, workers, keybindings, snippetFiles };
}
/**
* CDN Ace
* :
* ace-modes/ modePath + basePath
* mode-javascript.js
* snippets/javascript.js
* ace-workers/ workerPath
* worker-javascript.js
* @param onProgress (, )
*/
async downloadAceModes(
onProgress?: (current: number, total: number) => void,
): Promise<void> {
const { modes, workers, keybindings, snippetFiles } =
await this.fetchAceBuildFiles();
const allFiles: { path: string; url: string }[] = [
// mode-*.js → ace-modes/
...modes.map((f) => ({
path: `${this.aceModesDir}/${f}`,
url: `${AceRuntimeManager.ACE_CDN}/${f}`,
})),
// keybinding-*.js → ace-modes/basePath 会从这里找)
...keybindings.map((f) => ({
path: `${this.aceModesDir}/${f}`,
url: `${AceRuntimeManager.ACE_CDN}/${f}`,
})),
// worker-*.js → ace-workers/
...workers.map((f) => ({
path: `${this.aceWorkersDir}/${f}`,
url: `${AceRuntimeManager.ACE_CDN}/${f}`,
})),
// snippets/*.js → ace-modes/snippets/
...snippetFiles.map((f) => ({
path: `${this.aceModesDir}/snippets/${f}`,
url: `${AceRuntimeManager.ACE_CDN}/snippets/${f}`,
})),
];
const total = allFiles.length;
// 创建目录
for (const dir of [
this.aceModesDir,
this.aceWorkersDir,
`${this.aceModesDir}/snippets`,
]) {
try {
await this.app.vault.createFolder(dir);
} catch {
/* 目录可能已存在 */
}
}
for (let i = 0; i < allFiles.length; i++) {
try {
const resp = await requestUrl({ url: allFiles[i].url });
await this.app.vault.adapter.write(allFiles[i].path, resp.text);
} catch (e) {
console.warn(`下载失败: ${allFiles[i].url}`, e);
}
onProgress?.(i + 1, total);
}
this.runtimeInstalled = true;
this.setupLocalPaths();
await this.onSaveUseLocalAce?.(true);
new Notice(LL.setting.about.download_done());
console.log("Ace 运行时: 本地包下载完成");
}
async isRuntimeInstalled() {
this.runtimeInstalled = await this.checkAceModesExist();
return this.runtimeInstalled;
}
private async promptInstallRuntime() {
if (this.runtimePromptOpen || this.runtimeInstalled) {
return;
}
this.runtimePromptOpen = true;
new AceRuntimeInstallModal(
this.app,
async (onProgress) => {
await this.downloadAceModes(onProgress);
},
() => {
this.runtimePromptOpen = false;
},
).open();
}
}
class AceRuntimeInstallModal extends Modal {
private readonly onDownload: (
onProgress: (current: number, total: number) => void,
) => Promise<void>;
private readonly onModalClose: () => void;
private statusEl!: HTMLParagraphElement;
private progressEl!: HTMLProgressElement;
private downloadButton!: HTMLButtonElement;
private laterButton!: HTMLButtonElement;
constructor(
app: App,
onDownload: (
onProgress: (current: number, total: number) => void,
) => Promise<void>,
onModalClose: () => void,
) {
super(app);
this.onDownload = onDownload;
this.onModalClose = onModalClose;
}
onOpen() {
const { contentEl } = this;
contentEl.empty();
contentEl.createEl("h2", { text: LL.setting.about.runtime_files() });
this.statusEl = contentEl.createEl("p", {
text: LL.setting.about.cdn_loading(),
});
this.progressEl = contentEl.createEl("progress", {
attr: { value: "0", max: "1" },
});
this.progressEl.addClass("ace-runtime-install-progress");
const actions = contentEl.createDiv({
cls: "ace-runtime-install-actions",
});
this.laterButton = actions.createEl("button", {
text: LL.common.cancel(),
});
this.laterButton.onclick = () => this.close();
this.downloadButton = actions.createEl("button", {
text: LL.setting.about.download_btn(),
cls: "mod-cta",
});
this.downloadButton.onclick = async () => {
this.setDownloading(true);
this.progressEl.show();
try {
await this.onDownload((current, total) => {
this.progressEl.max = total;
this.progressEl.value = current;
this.statusEl.setText(
LL.setting.about.downloading({ current, total }),
);
});
this.close();
} catch (error) {
console.error("Ace runtime 下载失败:", error);
new Notice(String(error));
this.statusEl.setText(LL.setting.about.cdn_loading());
this.setDownloading(false);
}
};
}
onClose() {
this.onModalClose();
this.contentEl.empty();
}
private setDownloading(downloading: boolean) {
this.downloadButton.disabled = downloading;
this.laterButton.disabled = downloading;
}
}

View file

@ -1,11 +1,11 @@
import type { Ace } from "ace-builds";
import * as ace from "ace-builds";
// import "ace-builds/esm-resolver";
// 导入扩展
import "./AceExtensions";
// 导入语言包
// import "./AceLanguages";
// 导入主题
// import "./AceThemes";
import "./AceThemes";
// 导入键盘绑定
// import "ace-builds/src-noconflict/keybinding-emacs";
// import "ace-builds/src-noconflict/keybinding-sublime";
@ -18,7 +18,7 @@ import { getLanguageMode } from "./AceLanguages";
import { getAceTheme } from "./AceThemes";
export class AceService {
editor: ace.Ace.Editor | null = null;
editor: Ace.Editor | null = null;
constructor() {}
@ -26,7 +26,7 @@ export class AceService {
return this.editor !== null;
}
createEditor(element: HTMLElement): ace.Ace.Editor {
createEditor(element: HTMLElement): Ace.Editor {
this.editor = ace.edit(element);
return this.editor;
}
@ -48,7 +48,7 @@ export class AceService {
this.editor.setKeyboardHandler(`ace/keyboard/${config.keyboard}`);
}
this.updateTheme(config.lightTheme, config.darkTheme);
await this.updateTheme(config.lightTheme, config.darkTheme);
}
async updateTheme(lightTheme: string, darkTheme: string) {
@ -92,7 +92,7 @@ export class AceService {
return this.editor?.isFocused() ?? false;
}
setKeyboardHandler(handler: string): void {
setKeyboardHandler(handler: string | null): void {
if (!this.editor) return;
this.editor.setKeyboardHandler(handler);
}
@ -115,7 +115,7 @@ export class AceService {
private getEditorOptions(
config: ICodeEditorConfig,
): Partial<ace.Ace.EditorOptions> {
): Partial<Ace.EditorOptions> {
return {
// -- EditorOptions --
// selectionStyle: "fullLine" | "screenLine" | "text" | "line";
@ -223,7 +223,7 @@ export class AceService {
private getEditSessionOptions(
config: ICodeEditorConfig,
languageMode: string,
): Partial<ace.Ace.EditSessionOptions> {
): Partial<Ace.EditSessionOptions> {
return {
// wrap: "off" | "free" | "printmargin" | boolean | number;
wrap: config.wrap,
@ -252,7 +252,7 @@ export class AceService {
};
}
getEditor(): ace.Ace.Editor | null {
getEditor(): Ace.Editor | null {
return this.editor;
}

View file

@ -1,54 +1,194 @@
// import "ace-builds/src-noconflict/ace";
// // light-theme
// import "ace-builds/src-noconflict/theme-chrome";
// import "ace-builds/src-noconflict/theme-cloud_editor";
// import "ace-builds/src-noconflict/theme-cloud9_day";
// import "ace-builds/src-noconflict/theme-clouds";
// import "ace-builds/src-noconflict/theme-crimson_editor";
// import "ace-builds/src-noconflict/theme-dawn";
// import "ace-builds/src-noconflict/theme-dreamweaver";
// import "ace-builds/src-noconflict/theme-eclipse";
// import "ace-builds/src-noconflict/theme-github";
// import "ace-builds/src-noconflict/theme-github_light_default";
// import "ace-builds/src-noconflict/theme-gruvbox_light_hard";
// import "ace-builds/src-noconflict/theme-iplastic";
// import "ace-builds/src-noconflict/theme-katzenmilch";
// import "ace-builds/src-noconflict/theme-kuroir";
// import "ace-builds/src-noconflict/theme-solarized_light";
// import "ace-builds/src-noconflict/theme-sqlserver";
// import "ace-builds/src-noconflict/theme-textmate";
// import "ace-builds/src-noconflict/theme-tomorrow";
// import "ace-builds/src-noconflict/theme-xcode";
import "ace-builds/src-noconflict/ace";
// light-theme
import "ace-builds/src-noconflict/theme-chrome";
import "ace-builds/src-noconflict/theme-cloud9_day";
import "ace-builds/src-noconflict/theme-cloud_editor";
import "ace-builds/src-noconflict/theme-clouds";
import "ace-builds/src-noconflict/theme-crimson_editor";
import "ace-builds/src-noconflict/theme-dawn";
import "ace-builds/src-noconflict/theme-dreamweaver";
import "ace-builds/src-noconflict/theme-eclipse";
import "ace-builds/src-noconflict/theme-github";
import "ace-builds/src-noconflict/theme-github_light_default";
import "ace-builds/src-noconflict/theme-gruvbox_light_hard";
import "ace-builds/src-noconflict/theme-iplastic";
import "ace-builds/src-noconflict/theme-katzenmilch";
import "ace-builds/src-noconflict/theme-kuroir";
import "ace-builds/src-noconflict/theme-solarized_light";
import "ace-builds/src-noconflict/theme-sqlserver";
import "ace-builds/src-noconflict/theme-textmate";
import "ace-builds/src-noconflict/theme-tomorrow";
import "ace-builds/src-noconflict/theme-xcode";
// // dark-theme
// import "ace-builds/src-noconflict/theme-ambiance";
// import "ace-builds/src-noconflict/theme-chaos";
// import "ace-builds/src-noconflict/theme-cloud9_night";
// import "ace-builds/src-noconflict/theme-cloud9_night_low_color";
// import "ace-builds/src-noconflict/theme-clouds_midnight";
// import "ace-builds/src-noconflict/theme-cobalt";
// import "ace-builds/src-noconflict/theme-dracula";
// import "ace-builds/src-noconflict/theme-github_dark";
// import "ace-builds/src-noconflict/theme-gob";
// import "ace-builds/src-noconflict/theme-gruvbox";
// import "ace-builds/src-noconflict/theme-gruvbox_dark_hard";
// import "ace-builds/src-noconflict/theme-idle_fingers";
// import "ace-builds/src-noconflict/theme-kr_theme";
// import "ace-builds/src-noconflict/theme-merbivore";
// import "ace-builds/src-noconflict/theme-merbivore_soft";
// import "ace-builds/src-noconflict/theme-mono_industrial";
// import "ace-builds/src-noconflict/theme-monokai";
// import "ace-builds/src-noconflict/theme-nord_dark";
// import "ace-builds/src-noconflict/theme-one_dark";
// import "ace-builds/src-noconflict/theme-pastel_on_dark";
// import "ace-builds/src-noconflict/theme-solarized_dark";
// import "ace-builds/src-noconflict/theme-terminal";
// import "ace-builds/src-noconflict/theme-tomorrow_night";
// import "ace-builds/src-noconflict/theme-tomorrow_night_blue";
// import "ace-builds/src-noconflict/theme-tomorrow_night_bright";
// import "ace-builds/src-noconflict/theme-tomorrow_night_eighties";
// import "ace-builds/src-noconflict/theme-twilight";
// import "ace-builds/src-noconflict/theme-vibrant_ink";
// dark-theme
import "ace-builds/src-noconflict/theme-ambiance";
import "ace-builds/src-noconflict/theme-chaos";
import "ace-builds/src-noconflict/theme-cloud9_night";
import "ace-builds/src-noconflict/theme-cloud9_night_low_color";
import "ace-builds/src-noconflict/theme-clouds_midnight";
import "ace-builds/src-noconflict/theme-cobalt";
import "ace-builds/src-noconflict/theme-dracula";
import "ace-builds/src-noconflict/theme-github_dark";
import "ace-builds/src-noconflict/theme-gob";
import "ace-builds/src-noconflict/theme-gruvbox";
import "ace-builds/src-noconflict/theme-gruvbox_dark_hard";
import "ace-builds/src-noconflict/theme-idle_fingers";
import "ace-builds/src-noconflict/theme-kr_theme";
import "ace-builds/src-noconflict/theme-merbivore";
import "ace-builds/src-noconflict/theme-merbivore_soft";
import "ace-builds/src-noconflict/theme-mono_industrial";
import "ace-builds/src-noconflict/theme-monokai";
import "ace-builds/src-noconflict/theme-nord_dark";
import "ace-builds/src-noconflict/theme-one_dark";
import "ace-builds/src-noconflict/theme-pastel_on_dark";
import "ace-builds/src-noconflict/theme-solarized_dark";
import "ace-builds/src-noconflict/theme-terminal";
import "ace-builds/src-noconflict/theme-tomorrow_night";
import "ace-builds/src-noconflict/theme-tomorrow_night_blue";
import "ace-builds/src-noconflict/theme-tomorrow_night_bright";
import "ace-builds/src-noconflict/theme-tomorrow_night_eighties";
import "ace-builds/src-noconflict/theme-twilight";
import "ace-builds/src-noconflict/theme-vibrant_ink";
// === 社区主题 (由 convert-themes.mjs 自动生成) ===
import "./themes/active4d";
import "./themes/all-hallows-eve";
import "./themes/all-hallows-eve-custom";
import "./themes/amy";
import "./themes/argonaut";
import "./themes/barf";
import "./themes/bbedit";
import "./themes/bespin";
import "./themes/birds-of-paradise";
import "./themes/black-pearl";
import "./themes/black-pearl-ii";
import "./themes/blackboard";
import "./themes/blackboard-black";
import "./themes/blackboard-mod";
import "./themes/blackboard-new";
import "./themes/blacklight";
import "./themes/bongzilla";
import "./themes/boys-girls-01";
import "./themes/brilliance-black";
import "./themes/brilliance-dull";
import "./themes/catppuccin-frappe";
import "./themes/catppuccin-latte";
import "./themes/catppuccin-macchiato";
import "./themes/catppuccin-mocha";
import "./themes/choco";
import "./themes/claire";
import "./themes/classic-modified";
import "./themes/close_to_the_sea";
import "./themes/coal-graal";
import "./themes/coda";
import "./themes/codainkdeep";
import "./themes/cool-glow";
import "./themes/creeper";
import "./themes/cssedit";
import "./themes/daniel-fischer";
import "./themes/dawn-mod1";
import "./themes/deluxe";
import "./themes/django-dark";
import "./themes/django-smoothy";
import "./themes/dominion-day";
import "./themes/eiffel";
import "./themes/emacs-strict";
import "./themes/erebus";
import "./themes/espresso";
import "./themes/espresso-libre";
import "./themes/espresso-tutti";
import "./themes/fade-to-grey";
import "./themes/fake";
import "./themes/fluidvision";
import "./themes/forlatex";
import "./themes/freckle";
import "./themes/freckle-mod1";
import "./themes/freckle-mod2";
import "./themes/friendship-bracelet";
import "./themes/funky_dashboard";
import "./themes/glitterbomb";
import "./themes/glow";
import "./themes/happy-happy-joy-joy-2";
import "./themes/happydeluxe";
import "./themes/heroku";
import "./themes/herokucodesamples";
import "./themes/idle";
import "./themes/ilife-05";
import "./themes/ilife-06";
import "./themes/imathis";
import "./themes/inkdeep";
import "./themes/ir_black";
import "./themes/ir_white";
import "./themes/juicy";
import "./themes/krtheme";
import "./themes/lazy";
import "./themes/lazyinkdeep";
import "./themes/lowlight";
import "./themes/mac-classic";
import "./themes/made-of-code";
import "./themes/magicwb-amiga";
import "./themes/menage-a-trois";
import "./themes/midnight";
import "./themes/minimal-theme";
import "./themes/monokai-dark";
import "./themes/monokai-for-textmaters-custom";
import "./themes/monokai-for-textmaters-custom-philtr";
import "./themes/monokai-mod";
import "./themes/monokai-mod-1";
import "./themes/monokai-mod-seangaffney";
import "./themes/multimarkdown";
import "./themes/notebook";
import "./themes/notepad2";
import "./themes/offy";
import "./themes/pastie";
import "./themes/pengwynn";
import "./themes/pengwynn-menlo";
import "./themes/plum-dumb";
import "./themes/putty";
import "./themes/rails-envy";
import "./themes/railscasts";
import "./themes/railscasts-boost";
import "./themes/rdark";
import "./themes/resesif";
import "./themes/ruby-blue";
import "./themes/rubyrobot";
import "./themes/ryan-light";
import "./themes/sidewalkchalk";
import "./themes/sidewalkchalkgreenmod";
import "./themes/slush-poppies";
import "./themes/smoothy";
import "./themes/spacecadet";
import "./themes/spectacular";
import "./themes/starlight";
import "./themes/succulent_1";
import "./themes/summer-camp-daybreak";
import "./themes/summer-camp-mod";
import "./themes/summer-sun";
import "./themes/sunburst";
import "./themes/sweyla650478";
import "./themes/sweyla674314";
import "./themes/swyphs-ii";
import "./themes/tango";
import "./themes/tango-in-twilight";
import "./themes/tek";
import "./themes/text-ex-machina";
import "./themes/text-ex-machina-lighter-comments";
import "./themes/tubster";
import "./themes/twilight-bright";
import "./themes/twilight-remix";
import "./themes/upstream-sunburst";
import "./themes/upstream-vibrant";
import "./themes/venom";
import "./themes/vibrant-fin";
import "./themes/vibrant-ink-choppednscrewed";
import "./themes/vibrant-ink-remix";
import "./themes/vibrant-tango";
import "./themes/vintage-aurora";
import "./themes/whys-poignant";
import "./themes/zachstronaut-theme-41";
import "./themes/zenburn";
import "./themes/zenburnesque";
// === END 社区主题 ===
export const AceLightThemesList = [
"chrome",
@ -70,9 +210,9 @@ export const AceLightThemesList = [
"textmate",
"tomorrow",
"xcode",
];
export type AceLightThemes = (typeof AceLightThemesList)[number];
] as const;
// 官方 Dark 主题ace-builds 内置)
export const AceDarkThemesList = [
"ambiance",
"chaos",
@ -103,10 +243,162 @@ export const AceDarkThemesList = [
"tomorrow_night_eighties",
"twilight",
"vibrant_ink",
];
export type AceDarkThemes = (typeof AceDarkThemesList)[number];
] as const;
export async function getAceTheme(theme: AceLightThemes | AceDarkThemes) {
// === 社区主题列表 (由 convert-themes.mjs 自动生成) ===
export const AceCommunityLightThemesList = [
"active4d",
"bbedit",
"catppuccin-latte",
"classic-modified",
"codainkdeep",
"coda",
"cssedit",
"dawn-mod1",
"eiffel",
"espresso-tutti",
"espresso",
"fluidvision",
"freckle-mod1",
"freckle-mod2",
"freckle",
"happy-happy-joy-joy-2",
"idle",
"ilife-05",
"ilife-06",
"ir_white",
"juicy",
"lazyinkdeep",
"lazy",
"mac-classic",
"magicwb-amiga",
"multimarkdown",
"notebook",
"notepad2",
"pastie",
"ryan-light",
"slush-poppies",
"smoothy",
"tango",
"twilight-bright",
"whys-poignant",
] as const;
export const AceCommunityDarkThemesList = [
"all-hallows-eve-custom",
"all-hallows-eve",
"amy",
"barf",
"bespin",
"birds-of-paradise",
"black-pearl-ii",
"black-pearl",
"blackboard-black",
"blackboard-mod",
"blackboard-new",
"blackboard",
"blacklight",
"bongzilla",
"boys-girls-01",
"brilliance-black",
"brilliance-dull",
"catppuccin-frappe",
"catppuccin-macchiato",
"catppuccin-mocha",
"choco",
"claire",
"close_to_the_sea",
"coal-graal",
"cool-glow",
"creeper",
"daniel-fischer",
"deluxe",
"django-smoothy",
"django-dark",
"dominion-day",
"emacs-strict",
"erebus",
"espresso-libre",
"fade-to-grey",
"fake",
"forlatex",
"friendship-bracelet",
"funky_dashboard",
"glitterbomb",
"glow",
"happydeluxe",
"heroku",
"herokucodesamples",
"imathis",
"inkdeep",
"ir_black",
"krtheme",
"lowlight",
"made-of-code",
"menage-a-trois",
"midnight",
"minimal-theme",
"monokai-dark",
"monokai-for-textmaters-custom-philtr",
"monokai-for-textmaters-custom",
"monokai-mod-seangaffney",
"monokai-mod-1",
"monokai-mod",
"offy",
"pengwynn-menlo",
"pengwynn",
"plum-dumb",
"putty",
"rails-envy",
"railscasts-boost",
"railscasts",
"rdark",
"resesif",
"ruby-blue",
"rubyrobot",
"sidewalkchalk",
"sidewalkchalkgreenmod",
"spacecadet",
"spectacular",
"starlight",
"succulent_1",
"summer-camp-daybreak",
"summer-camp-mod",
"summer-sun",
"sunburst",
"sweyla650478",
"sweyla674314",
"swyphs-ii",
"tango-in-twilight",
"tek",
"text-ex-machina-lighter-comments",
"text-ex-machina",
"tubster",
"twilight-remix",
"upstream-sunburst",
"upstream-vibrant",
"venom",
"vibrant-fin",
"vibrant-ink-choppednscrewed",
"vibrant-ink-remix",
"vibrant-tango",
"vintage-aurora",
"zachstronaut-theme-41",
"zenburn",
"zenburnesque",
"argonaut",
] as const;
// === END 社区主题列表 ===
export type AceLightThemes =
| (typeof AceLightThemesList)[number]
| (typeof AceCommunityLightThemesList)[number];
export type AceDarkThemes =
| (typeof AceDarkThemesList)[number]
| (typeof AceCommunityDarkThemesList)[number];
export async function getAceTheme(theme: string) {
return theme;
}

View file

@ -0,0 +1,157 @@
import { MarkdownPostProcessorContext, TFile } from "obsidian";
import AceCodeEditorPlugin from "../main";
import { CodeEmbedView } from "../view/CodeEmbedView";
import { RemoteEmbedView } from "../view/RemoteEmbedView";
import { isRemoteUrl, readFromUrl } from "./remote/RemoteManager";
export class MarkdownEmbedProcessor {
constructor(private plugin: AceCodeEditorPlugin) {}
register() {
this.plugin.registerMarkdownPostProcessor(this.process.bind(this));
// 拦截远程链接的点击,阻止 Obsidian 将其当作本地文件路径解析
this.plugin.registerDomEvent(
activeDocument.body,
"click",
(evt) => {
const target = evt.target as HTMLElement;
const link = target.closest("a.internal-link");
if (!link) return;
const href = link.getAttribute("href");
if (href && isRemoteUrl(href)) {
evt.preventDefault();
evt.stopPropagation();
window.open(href, "_blank");
}
},
true,
);
}
private process(
element: HTMLElement,
context: MarkdownPostProcessorContext,
) {
this.processLocalLineRangeEmbeds(element, context);
this.processRemoteEmbeds(element, context);
}
/**
*
* #L10 #L10-L20
*/
private processLocalLineRangeEmbeds(
element: HTMLElement,
context: MarkdownPostProcessorContext,
) {
const links = element.querySelectorAll("a.internal-link");
links.forEach((link) => {
const href = link.getAttribute("href");
if (!href) return;
// 检查是否包含行范围语法 (#L10 或 #L10-L20)
const lineRangeMatch = href.match(/#L\d+(-L\d+)?$/i);
if (!lineRangeMatch) return;
// 获取文件路径(去掉行范围部分)
const filePath = href.replace(/#L\d+(-L\d+)?$/i, "");
// 检查文件是否为支持的扩展名
const extension = filePath.split(".").pop()?.toLowerCase();
if (
!extension ||
!this.plugin.settings.supportExtensions.includes(extension)
) {
return;
}
// 获取对应的文件
const file = this.plugin.app.vault.getAbstractFileByPath(filePath);
if (!(file instanceof TFile)) return;
// 创建嵌入视图来替换链接
const embedContainer = createDiv();
embedContainer.addClass("ace-embed-container");
// 创建CodeEmbedView
const embedView = new CodeEmbedView(
this.plugin,
embedContainer,
file,
lineRangeMatch[0], // 传递行范围字符串作为subpath
);
// 替换原链接
link.replaceWith(embedContainer);
// 注册到 markdown 渲染上下文,确保自动清理
context.addChild(embedView);
});
}
/**
*
* .internal-embed URL
*/
private processRemoteEmbeds(
element: HTMLElement,
context: MarkdownPostProcessorContext,
) {
if (!this.plugin.settings.remoteEmbed?.enabled) return;
const embeds = element.querySelectorAll(".internal-embed");
embeds.forEach((embed: HTMLElement) => {
const src = embed.getAttribute("src");
if (!src) return;
// 已处理的跳过
if (embed.classList.contains("ace-remote-processed")) return;
// 仅处理远程 URL
if (!isRemoteUrl(src)) return;
// 提取 subpath#L 部分)
let cleanSrc = src;
let subpath = "";
const hashIndex = src.lastIndexOf("#");
if (hashIndex !== -1) {
const afterHash = src.substring(hashIndex + 1);
if (/^L\d+(-L\d+)?$/i.test(afterHash)) {
subpath = afterHash;
cleanSrc = src.substring(0, hashIndex);
}
}
embed.classList.add("ace-remote-processed");
embed.empty();
// 构建异步加载函数
const loadFn = async () => {
const result = await readFromUrl(cleanSrc);
if (!result.success) {
throw new Error(
result.error || "Failed to load remote file",
);
}
return {
content: result.content!,
extension: result.extension || "txt",
sourceUrl: cleanSrc,
};
};
const remoteView = new RemoteEmbedView(
this.plugin,
embed,
loadFn,
subpath,
);
// 注册到 markdown 渲染上下文,确保文档重新渲染时自动清理
context.addChild(remoteView);
});
}
}

View file

@ -0,0 +1,191 @@
import { requestUrl, RequestUrlParam } from "obsidian";
import { RemoteReadResult } from "../../type/remote";
// ─── 简易内存缓存(避免重复请求同一 URL ───
const cache = new Map<
string,
{ content: string; extension: string; timestamp: number }
>();
const CACHE_TTL = 5 * 60 * 1000; // 5 分钟
// ─── 请求去重(防止并发请求同一 URL ───
const pendingRequests = new Map<string, Promise<RemoteReadResult>>();
// ─── 请求超时 ───
const REQUEST_TIMEOUT = 30_000; // 30 秒
function getFromCache(url: string): RemoteReadResult | null {
const entry = cache.get(url);
if (!entry) return null;
if (Date.now() - entry.timestamp > CACHE_TTL) {
cache.delete(url);
return null;
}
return {
success: true,
content: entry.content,
extension: entry.extension,
};
}
function setCache(url: string, content: string, extension: string): void {
cache.set(url, { content, extension, timestamp: Date.now() });
}
/**
*
*/
export function clearRemoteCache(): void {
cache.clear();
}
// ─── 公共 API ───
/**
* URL
* GitHub/GitLab/Gitea blob URL raw URL
*/
export async function readFromUrl(url: string): Promise<RemoteReadResult> {
const normalizedUrl = normalizeRemoteUrl(url);
const ext = inferExtension(normalizedUrl);
return await fetchWithCache(normalizedUrl, {}, ext);
}
/**
* URL
*/
export function isRemoteUrl(linktext: string): boolean {
return linktext.startsWith("https://") || linktext.startsWith("http://");
}
/**
* URL
*/
export function inferExtension(path: string): string {
const cleanPath = path.split("?")[0].split("#")[0];
const lastDot = cleanPath.lastIndexOf(".");
if (lastDot === -1) return "txt";
return cleanPath.substring(lastDot + 1).toLowerCase();
}
// ─── 内部工具 ───
/**
* GitHub/GitLab/Gitea blob URL raw URL
*
*
* github.com/{owner}/{repo}/blob/{branch}/{path}
* github.com/{owner}/{repo}/raw/{branch}/{path}
* gitlab.com/{owner}/{repo}/-/blob/{branch}/{path}
* gitlab.com/{owner}/{repo}/-/raw/{branch}/{path}
* gitea.com/{owner}/{repo}/blob/{branch}/{path}
* gitea.com/{owner}/{repo}/raw/{branch}/{path}
*/
export function normalizeRemoteUrl(url: string): string {
// GitHub blob: /blob/ → raw.githubusercontent.com
const githubBlobMatch = url.match(
/^https?:\/\/github\.com\/([^/]+\/[^/]+)\/blob\/([^/]+\/.+)$/,
);
if (githubBlobMatch) {
return `https://raw.githubusercontent.com/${githubBlobMatch[1]}/${githubBlobMatch[2]}`;
}
// GitHub raw → 统一到 raw.githubusercontent.com
const githubRawMatch = url.match(
/^https?:\/\/github\.com\/([^/]+\/[^/]+)\/raw\/([^/]+\/.+)$/,
);
if (githubRawMatch) {
return `https://raw.githubusercontent.com/${githubRawMatch[1]}/${githubRawMatch[2]}`;
}
// GitLab blob → raw仅匹配包含 /-/ 的 GitLab 风格路径)
const gitlabBlobMatch = url.match(
/^https?:\/\/([^/]+)\/([^/]+\/[^/]+)\/-\/blob\/([^/]+\/.+)$/,
);
if (gitlabBlobMatch) {
return `https://${gitlabBlobMatch[1]}/${gitlabBlobMatch[2]}/-/raw/${gitlabBlobMatch[3]}`;
}
// Gitea blob → raw排除已被 GitHub 处理的域名)
const giteaMatch = url.match(
/^https?:\/\/(?!github\.com|raw\.githubusercontent\.com)([^/]+)\/([^/]+\/[^/]+)\/blob\/([^/]+\/.+)$/,
);
if (giteaMatch) {
return `https://${giteaMatch[1]}/${giteaMatch[2]}/raw/${giteaMatch[3]}`;
}
return url;
}
async function fetchWithCache(
url: string,
headers: Record<string, string>,
extension: string,
): Promise<RemoteReadResult> {
// 1. 检查缓存
const cached = getFromCache(url);
if (cached) return cached;
// 2. 检查是否有正在进行的相同请求(去重)
const pending = pendingRequests.get(url);
if (pending) return pending;
// 3. 发起新请求
const requestPromise = doFetch(url, headers, extension);
pendingRequests.set(url, requestPromise);
try {
const result = await requestPromise;
return result;
} finally {
pendingRequests.delete(url);
}
}
async function doFetch(
url: string,
headers: Record<string, string>,
extension: string,
): Promise<RemoteReadResult> {
try {
// 使用 AbortController 实现超时
const controller = new AbortController();
const timeoutId = window.setTimeout(
() => controller.abort(),
REQUEST_TIMEOUT,
);
const params: RequestUrlParam = {
url,
method: "GET",
headers,
};
const response = await requestUrl(params);
window.clearTimeout(timeoutId);
// 检查 HTTP 状态码,只缓存成功响应
if (response.status >= 400) {
return {
success: false,
error: `HTTP ${response.status}: ${response.text?.substring(0, 200) || "Request failed"}`,
};
}
const content = response.text;
// 只缓存成功响应,避免 404 等错误被缓存 5 分钟
setCache(url, content, extension);
return { success: true, content, extension };
} catch (err) {
const isTimeout =
err instanceof DOMException && err.name === "AbortError";
return {
success: false,
error: isTimeout
? `Request timed out after ${REQUEST_TIMEOUT / 1000}s`
: err instanceof Error
? err.message
: String(err),
};
}
}

View file

@ -0,0 +1,88 @@
import * as ace from "ace-builds";
const cssText = `
.ace-active4d .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-active4d .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-active4d {
background-color: #FFFFFF;
color: #000000;
}
.ace-active4d .ace_cursor {
color: #000000;
}
.ace-active4d .ace_marker-layer .ace_selection {
background: #BAD6FD;
}
.ace-active4d.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-active4d .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-active4d .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-active4d .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-active4d .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-active4d .ace_marker-layer .ace_selected-word {
border: 1px solid #BAD6FD;
}
.ace-active4d .ace_fold {
background-color: #21439C;
border-color: #000000;
}
.ace-active4d .ace_keyword{font-weight:bold;
color:#006699;}
.ace-active4d .ace_constant.ace_language{color:#A535AE;}
.ace-active4d .ace_constant.ace_numeric{color:#A8017E;}
.ace-active4d .ace_support.ace_function{font-weight:bold;
color:#45AE34;}
.ace-active4d .ace_support.ace_constant{color:#B7734C;}
.ace-active4d .ace_support.ace_class{color:#A535AE;}
.ace-active4d .ace_support.ace_type{color:#A535AE;}
.ace-active4d .ace_storage{color:#FF5600;}
.ace-active4d .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-active4d .ace_string{color:#666666;}
.ace-active4d .ace_variable{font-weight:bold;
color:#0053FF;}
.ace-active4d .ace_meta.ace_tag{color:#7A7A7A;}
.ace-active4d .ace_entity.ace_other.ace_attribute-name{color:#963DFF;}
.ace-active4d .ace_entity.ace_name.ace_function{color:#21439C;}
.ace-active4d .ace_entity.ace_name.ace_tag{color:#016CFF;}
`;
ace.define("ace/theme/active4d-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/active4d", ["require", "exports", "module", "ace/theme/active4d-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-active4d";
exports.cssText = require("./active4d-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,77 @@
import * as ace from "ace-builds";
const cssText = `
.ace-all-hallows-eve-custom .ace_gutter {
background: #131313;
color: rgb(137, 137, 137);
}
.ace-all-hallows-eve-custom .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-all-hallows-eve-custom {
background-color: #131313;
color: #FFFFFF;
}
.ace-all-hallows-eve-custom .ace_cursor {
color: #FFFFFF;
}
.ace-all-hallows-eve-custom .ace_marker-layer .ace_selection {
background: rgba(115, 89, 126, 0.88);
}
.ace-all-hallows-eve-custom.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #131313;
border-radius: 2px;
}
.ace-all-hallows-eve-custom .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-all-hallows-eve-custom .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-all-hallows-eve-custom .ace_marker-layer .ace_active-line {
background: #333300;
}
.ace-all-hallows-eve-custom .ace_gutter-active-line {
background-color: #333300;
}
.ace-all-hallows-eve-custom .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(115, 89, 126, 0.88);
}
.ace-all-hallows-eve-custom .ace_fold {
background-color: #CC7833;
border-color: #FFFFFF;
}
.ace-all-hallows-eve-custom .ace_keyword{color:#CC7833;}
.ace-all-hallows-eve-custom .ace_constant{color:#3387CC;}
.ace-all-hallows-eve-custom .ace_support.ace_function{color:#C83730;}
.ace-all-hallows-eve-custom .ace_string{color:#66CC33;}
.ace-all-hallows-eve-custom .ace_string.ace_regexp{color:#CCCC33;}
.ace-all-hallows-eve-custom .ace_comment{color:#9933CC;}
.ace-all-hallows-eve-custom .ace_variable.ace_parameter{font-style:italic;}
.ace-all-hallows-eve-custom .ace_entity.ace_name.ace_tag{text-decoration:underline;}
`;
ace.define("ace/theme/all-hallows-eve-custom-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/all-hallows-eve-custom", ["require", "exports", "module", "ace/theme/all-hallows-eve-custom-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-all-hallows-eve-custom";
exports.cssText = require("./all-hallows-eve-custom-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,77 @@
import * as ace from "ace-builds";
const cssText = `
.ace-all-hallows-eve .ace_gutter {
background: #000000;
color: rgb(128, 128, 128);
}
.ace-all-hallows-eve .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-all-hallows-eve {
background-color: #000000;
color: #FFFFFF;
}
.ace-all-hallows-eve .ace_cursor {
color: #FFFFFF;
}
.ace-all-hallows-eve .ace_marker-layer .ace_selection {
background: rgba(115, 89, 126, 0.88);
}
.ace-all-hallows-eve.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-all-hallows-eve .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-all-hallows-eve .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-all-hallows-eve .ace_marker-layer .ace_active-line {
background: #333300;
}
.ace-all-hallows-eve .ace_gutter-active-line {
background-color: #333300;
}
.ace-all-hallows-eve .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(115, 89, 126, 0.88);
}
.ace-all-hallows-eve .ace_fold {
background-color: #CC7833;
border-color: #FFFFFF;
}
.ace-all-hallows-eve .ace_keyword{color:#CC7833;}
.ace-all-hallows-eve .ace_constant{color:#3387CC;}
.ace-all-hallows-eve .ace_support.ace_function{color:#C83730;}
.ace-all-hallows-eve .ace_string{color:#66CC33;}
.ace-all-hallows-eve .ace_string.ace_regexp{color:#CCCC33;}
.ace-all-hallows-eve .ace_comment{color:#9933CC;}
.ace-all-hallows-eve .ace_variable.ace_parameter{font-style:italic;}
.ace-all-hallows-eve .ace_entity.ace_name.ace_tag{text-decoration:underline;}
`;
ace.define("ace/theme/all-hallows-eve-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/all-hallows-eve", ["require", "exports", "module", "ace/theme/all-hallows-eve-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-all-hallows-eve";
exports.cssText = require("./all-hallows-eve-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

87
src/service/themes/amy.ts Normal file
View file

@ -0,0 +1,87 @@
import * as ace from "ace-builds";
const cssText = `
.ace-amy .ace_gutter {
background: #200020;
color: rgb(120, 104, 144);
}
.ace-amy .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-amy {
background-color: #200020;
color: #D0D0FF;
}
.ace-amy .ace_cursor {
color: #7070FF;
}
.ace-amy .ace_marker-layer .ace_selection {
background: rgba(128, 0, 0, 0.50);
}
.ace-amy.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #200020;
border-radius: 2px;
}
.ace-amy .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-amy .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-amy .ace_marker-layer .ace_active-line {
background: rgba(128, 0, 0, 0.25);
}
.ace-amy .ace_gutter-active-line {
background-color: rgba(128, 0, 0, 0.25);
}
.ace-amy .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(128, 0, 0, 0.50);
}
.ace-amy .ace_fold {
background-color: #50A0A0;
border-color: #D0D0FF;
}
.ace-amy .ace_keyword{color:#A080FF;}
.ace-amy .ace_keyword.ace_operator{color:#A0A0FF;}
.ace-amy .ace_constant.ace_numeric{color:#7090B0;}
.ace-amy .ace_constant.ace_character{color:#666666;}
.ace-amy .ace_support.ace_constant{background-color:#200020;}
.ace-amy .ace_support.ace_other{color:#A00050;}
.ace-amy .ace_storage{color:#B0FFF0;}
.ace-amy .ace_invalid.ace_illegal{font-weight:bold;
color:#400080;
background-color:#FFFF00;}
.ace-amy .ace_invalid.ace_deprecated{color:#200020;
background-color:#CC66FF;}
.ace-amy .ace_string{color:#999999;}
.ace-amy .ace_variable{color:#50A0A0;}
.ace-amy .ace_variable.ace_language{color:#008080;}
.ace-amy .ace_variable.ace_parameter{color:#80B0B0;}
.ace-amy .ace_entity.ace_name.ace_function{color:#50A0A0;}
.ace-amy .ace_entity.ace_name.ace_tag{color:#009090;}
`;
ace.define("ace/theme/amy-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/amy", ["require", "exports", "module", "ace/theme/amy-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-amy";
exports.cssText = require("./amy-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,94 @@
import * as ace from "ace-builds";
const cssText = `
.ace-argonaut .ace_gutter {
background: #151515;
color: rgb(100, 100, 100);
}
.ace-argonaut .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-argonaut {
background-color: #151515;
color: #B2B2B2;
}
.ace-argonaut .ace_cursor {
color: #FF2200;
}
.ace-argonaut .ace_marker-layer .ace_selection {
background: #002F53;
}
.ace-argonaut.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #151515;
border-radius: 2px;
}
.ace-argonaut .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-argonaut .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #000000;
}
.ace-argonaut .ace_marker-layer .ace_active-line {
background: #000C16;
}
.ace-argonaut .ace_gutter-active-line {
background-color: #000C16;
}
.ace-argonaut .ace_marker-layer .ace_selected-word {
border: 1px solid #002F53;
}
.ace-argonaut .ace_fold {
background-color: bold;
border-color: #B2B2B2;
}
.ace-argonaut .ace_keyword{font-weight:bold;
color:#FFFFFF;}
.ace-argonaut .ace_constant{font-weight:bold;
color:#A4ED2D;}
.ace-argonaut .ace_constant.ace_numeric{color:#D70000;}
.ace-argonaut .ace_support.ace_function{color:#815DB3;}
.ace-argonaut .ace_support.ace_constant{color:#06960E;}
.ace-argonaut .ace_support.ace_class{font-weight:bold;
color:#7A88F6;}
.ace-argonaut .ace_support.ace_type{font-weight:bold;
color:#7A88F6;}
.ace-argonaut .ace_storage{font-weight:bold;
color:#FFFFFF;}
.ace-argonaut .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-argonaut .ace_string{color:#6497C5;}
.ace-argonaut .ace_comment{font-style:italic;
color:#00A6FF;}
.ace-argonaut .ace_variable{font-weight:bold;
color:#FFCA00;}
.ace-argonaut .ace_variable.ace_language{color:#0068C5;}
.ace-argonaut .ace_variable.ace_parameter{font-style:italic;}
.ace-argonaut .ace_entity.ace_name.ace_function{font-weight:bold;
color:#FFCA00;}
.ace-argonaut .ace_entity.ace_name.ace_tag{color:#0065D3;}
`;
ace.define("ace/theme/argonaut-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/argonaut", ["require", "exports", "module", "ace/theme/argonaut-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-argonaut";
exports.cssText = require("./argonaut-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,89 @@
import * as ace from "ace-builds";
const cssText = `
.ace-barf .ace_gutter {
background: rgba(21, 25, 30, 0.98);
color: rgb(130, 134, 139);
}
.ace-barf .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-barf {
background-color: rgba(21, 25, 30, 0.98);
color: #EEF2F7;
}
.ace-barf .ace_cursor {
color: #C4C4C4;
}
.ace-barf .ace_marker-layer .ace_selection {
background: rgba(144, 178, 213, 0.34);
}
.ace-barf.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(21, 25, 30, 0.98);
border-radius: 2px;
}
.ace-barf .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-barf .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-barf .ace_marker-layer .ace_active-line {
background: rgba(87, 87, 87, 0.071);
}
.ace-barf .ace_gutter-active-line {
background-color: rgba(87, 87, 87, 0.071);
}
.ace-barf .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(144, 178, 213, 0.34);
}
.ace-barf .ace_fold {
background-color: #282E36;
border-color: #EEF2F7;
}
.ace-barf .ace_keyword{font-weight:bold;
color:#697A8E;}
.ace-barf .ace_constant.ace_language{color:#53667D;}
.ace-barf .ace_constant.ace_numeric{color:#C1E1B8;}
.ace-barf .ace_constant.ace_character{color:#53667D;}
.ace-barf .ace_constant.ace_other{color:#53667D;}
.ace-barf .ace_support.ace_function{font-weight:bold;
color:#BACCE1;}
.ace-barf .ace_storage{font-weight:bold;
color:#A3D295;}
.ace-barf .ace_invalid{color:#FF0000;
background-color:rgba(255, 255, 255, 0.60);}
.ace-barf .ace_string{color:#5C81B3;}
.ace-barf .ace_comment{font-style:italic;
color:#6E6E6E;}
.ace-barf .ace_variable{background-color:#282E36;}
.ace-barf .ace_variable.ace_language{color:#708E67;}
.ace-barf .ace_entity.ace_other.ace_attribute-name{color:#708E67;}
.ace-barf .ace_entity.ace_name.ace_function{background-color:#282E36;}
.ace-barf .ace_entity.ace_name.ace_tag{color:#A3D295;}
`;
ace.define("ace/theme/barf-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/barf", ["require", "exports", "module", "ace/theme/barf-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-barf";
exports.cssText = require("./barf-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,89 @@
import * as ace from "ace-builds";
const cssText = `
.ace-bbedit .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-bbedit .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-bbedit {
background-color: #FFFFFF;
color: #000000;
}
.ace-bbedit .ace_cursor {
color: #000000;
}
.ace-bbedit .ace_marker-layer .ace_selection {
background: #FFD420;
}
.ace-bbedit.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-bbedit .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-bbedit .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-bbedit .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-bbedit .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-bbedit .ace_marker-layer .ace_selected-word {
border: 1px solid #FFD420;
}
.ace-bbedit .ace_fold {
background-color: #0000A2;
border-color: #000000;
}
.ace-bbedit .ace_keyword{color:#0000FF;}
.ace-bbedit .ace_constant{color:#C5060B;}
.ace-bbedit .ace_constant.ace_language{color:#004080;}
.ace-bbedit .ace_constant.ace_numeric{color:#FF0080;}
.ace-bbedit .ace_constant.ace_character.ace_escape{color:#33CC33;}
.ace-bbedit .ace_support.ace_function{color:#0000FF;}
.ace-bbedit .ace_support.ace_constant{color:#06960E;}
.ace-bbedit .ace_support.ace_class{color:#6D79DE;}
.ace-bbedit .ace_support.ace_type{color:#6D79DE;}
.ace-bbedit .ace_storage{color:#0000FF;}
.ace-bbedit .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-bbedit .ace_string{color:#FF0080;}
.ace-bbedit .ace_comment{color:#804000;}
.ace-bbedit .ace_variable{color:#0000A2;}
.ace-bbedit .ace_variable.ace_language{color:#006600;}
.ace-bbedit .ace_meta.ace_tag{color:#1C02FF;}
.ace-bbedit .ace_entity.ace_name.ace_function{color:#0000A2;}
.ace-bbedit .ace_markup.ace_heading{color:#0C07FF;}
.ace-bbedit .ace_markup.ace_list{color:#B90690;}
`;
ace.define("ace/theme/bbedit-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/bbedit", ["require", "exports", "module", "ace/theme/bbedit-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-bbedit";
exports.cssText = require("./bbedit-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,89 @@
import * as ace from "ace-builds";
const cssText = `
.ace-bespin .ace_gutter {
background: #28211C;
color: rgb(113, 104, 93);
}
.ace-bespin .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-bespin {
background-color: #28211C;
color: #BAAE9E;
}
.ace-bespin .ace_cursor {
color: #A7A7A7;
}
.ace-bespin .ace_marker-layer .ace_selection {
background: rgba(221, 240, 255, 0.20);
}
.ace-bespin.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #28211C;
border-radius: 2px;
}
.ace-bespin .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-bespin .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-bespin .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.031);
}
.ace-bespin .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.031);
}
.ace-bespin .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(221, 240, 255, 0.20);
}
.ace-bespin .ace_fold {
background-color: #5EA6EA;
border-color: #BAAE9E;
}
.ace-bespin .ace_keyword{color:#5EA6EA;}
.ace-bespin .ace_constant{color:#CF6A4C;}
.ace-bespin .ace_support{color:#9B859D;}
.ace-bespin .ace_support.ace_function{color:#DAD085;}
.ace-bespin .ace_support.ace_constant{color:#CF6A4C;}
.ace-bespin .ace_storage{color:#F9EE98;}
.ace-bespin .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:rgba(86, 45, 86, 0.75);}
.ace-bespin .ace_invalid.ace_deprecated{text-decoration:underline;
font-style:italic;
color:#D2A8A1;}
.ace-bespin .ace_string{color:#54BE0D;}
.ace-bespin .ace_string.ace_regexp{color:#E9C062;}
.ace-bespin .ace_comment{font-style:italic;
color:#666666;}
.ace-bespin .ace_variable{color:#7587A6;}
.ace-bespin .ace_meta.ace_tag{color:#AC885B;}
.ace-bespin .ace_entity.ace_name.ace_tag{color:#5EA6EA;}
.ace-bespin .ace_markup.ace_heading{color:#CF6A4C;}
.ace-bespin .ace_markup.ace_list{color:#F9EE98;}
`;
ace.define("ace/theme/bespin-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/bespin", ["require", "exports", "module", "ace/theme/bespin-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-bespin";
exports.cssText = require("./bespin-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,91 @@
import * as ace from "ace-builds";
const cssText = `
.ace-birds-of-paradise .ace_gutter {
background: #372725;
color: rgb(143, 132, 117);
}
.ace-birds-of-paradise .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-birds-of-paradise {
background-color: #372725;
color: #E6E1C4;
}
.ace-birds-of-paradise .ace_cursor {
color: #E6E1C4;
}
.ace-birds-of-paradise .ace_marker-layer .ace_selection {
background: #16120E;
}
.ace-birds-of-paradise.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #372725;
border-radius: 2px;
}
.ace-birds-of-paradise .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-birds-of-paradise .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #42302D;
}
.ace-birds-of-paradise .ace_marker-layer .ace_active-line {
background: #1F1611;
}
.ace-birds-of-paradise .ace_gutter-active-line {
background-color: #1F1611;
}
.ace-birds-of-paradise .ace_marker-layer .ace_selected-word {
border: 1px solid #16120E;
}
.ace-birds-of-paradise .ace_fold {
background-color: #EFAC32;
border-color: #E6E1C4;
}
.ace-birds-of-paradise .ace_keyword{color:#EF5D32;}
.ace-birds-of-paradise .ace_constant{color:#6C99BB;}
.ace-birds-of-paradise .ace_constant.ace_language{color:#6C99BB;}
.ace-birds-of-paradise .ace_constant.ace_numeric{color:#6C99BB;}
.ace-birds-of-paradise .ace_constant.ace_character.ace_escape{color:#7DAF9C;}
.ace-birds-of-paradise .ace_support.ace_function{color:#EFAC32;}
.ace-birds-of-paradise .ace_support.ace_constant{color:#6C99BB;}
.ace-birds-of-paradise .ace_support.ace_type{color:#EFAC32;}
.ace-birds-of-paradise .ace_storage{color:#EF5D32;}
.ace-birds-of-paradise .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-birds-of-paradise .ace_string{color:#D9D762;}
.ace-birds-of-paradise .ace_comment{font-style:italic;
color:#6B4E32;}
.ace-birds-of-paradise .ace_variable{color:#EFAC32;}
.ace-birds-of-paradise .ace_variable.ace_language{color:#7DAF9C;}
.ace-birds-of-paradise .ace_meta.ace_tag{color:#EFCB43;}
.ace-birds-of-paradise .ace_entity.ace_other.ace_attribute-name{color:#EFCB43;}
.ace-birds-of-paradise .ace_entity.ace_name.ace_function{color:#EFAC32;}
.ace-birds-of-paradise .ace_entity.ace_name{font-weight:bold;
color:#EFAC32;}
.ace-birds-of-paradise .ace_entity.ace_name.ace_tag{color:#EFCB43;}
`;
ace.define("ace/theme/birds-of-paradise-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/birds-of-paradise", ["require", "exports", "module", "ace/theme/birds-of-paradise-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-birds-of-paradise";
exports.cssText = require("./birds-of-paradise-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,101 @@
import * as ace from "ace-builds";
const cssText = `
.ace-black-pearl-ii .ace_gutter {
background: #000000;
color: rgb(128, 128, 128);
}
.ace-black-pearl-ii .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-black-pearl-ii {
background-color: #000000;
color: #FFFFFF;
}
.ace-black-pearl-ii .ace_cursor {
color: #FFFFFF;
}
.ace-black-pearl-ii .ace_marker-layer .ace_selection {
background: rgba(255, 255, 255, 0.15);
}
.ace-black-pearl-ii.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-black-pearl-ii .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-black-pearl-ii .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-black-pearl-ii .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.051);
}
.ace-black-pearl-ii .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.051);
}
.ace-black-pearl-ii .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(255, 255, 255, 0.15);
}
.ace-black-pearl-ii .ace_fold {
background-color: bold;
border-color: #FFFFFF;
}
.ace-black-pearl-ii .ace_keyword{font-weight:bold;
color:#F8BB00;}
.ace-black-pearl-ii .ace_keyword.ace_operator{font-weight:bold;
color:#FFFFFF;}
.ace-black-pearl-ii .ace_constant{color:#D0FF7E;}
.ace-black-pearl-ii .ace_constant.ace_language{font-weight:bold;
color:#80D500;}
.ace-black-pearl-ii .ace_constant.ace_numeric{color:#EDDD5A;}
.ace-black-pearl-ii .ace_constant.ace_other{color:#66CCFF;}
.ace-black-pearl-ii .ace_support.ace_function{color:#8AA6C1;}
.ace-black-pearl-ii .ace_support.ace_constant{color:#8AA6C1;}
.ace-black-pearl-ii .ace_support.ace_class{font-weight:bold;
color:#8AA6C1;}
.ace-black-pearl-ii .ace_support.ace_type{font-weight:bold;
color:#8AA6C1;}
.ace-black-pearl-ii .ace_support.ace_other{color:#8AA6C1;}
.ace-black-pearl-ii .ace_storage{color:#80D500;}
.ace-black-pearl-ii .ace_invalid{font-weight:bold;
background-color:#670000;}
.ace-black-pearl-ii .ace_string{color:#CC66FF;}
.ace-black-pearl-ii .ace_string.ace_regexp{color:#CA4344;}
.ace-black-pearl-ii .ace_comment{font-style:italic;
color:#428BDD;}
.ace-black-pearl-ii .ace_variable{font-weight:bold;
color:#FFFFFF;}
.ace-black-pearl-ii .ace_variable.ace_parameter{font-style:italic;
color:#8AA6C1;}
.ace-black-pearl-ii .ace_entity.ace_other.ace_attribute-name{color:#FFFFFF;}
.ace-black-pearl-ii .ace_entity.ace_name.ace_function{font-weight:bold;
color:#FFFFFF;}
.ace-black-pearl-ii .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#FFFFFF;}
`;
ace.define("ace/theme/black-pearl-ii-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/black-pearl-ii", ["require", "exports", "module", "ace/theme/black-pearl-ii-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-black-pearl-ii";
exports.cssText = require("./black-pearl-ii-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,87 @@
import * as ace from "ace-builds";
const cssText = `
.ace-black-pearl .ace_gutter {
background: #000000;
color: rgb(128, 128, 128);
}
.ace-black-pearl .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-black-pearl {
background-color: #000000;
color: #FFFFFF;
}
.ace-black-pearl .ace_cursor {
color: #FFFFFF;
}
.ace-black-pearl .ace_marker-layer .ace_selection {
background: rgba(255, 255, 255, 0.15);
}
.ace-black-pearl.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-black-pearl .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-black-pearl .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-black-pearl .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.051);
}
.ace-black-pearl .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.051);
}
.ace-black-pearl .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(255, 255, 255, 0.15);
}
.ace-black-pearl .ace_fold {
background-color: #8AA6C1;
border-color: #FFFFFF;
}
.ace-black-pearl .ace_keyword{color:#8AA6C1;}
.ace-black-pearl .ace_keyword.ace_operator{font-weight:bold;
color:#FFFFFF;}
.ace-black-pearl .ace_constant{color:#8AA6C1;}
.ace-black-pearl .ace_constant.ace_numeric{color:#EDDD5A;}
.ace-black-pearl .ace_constant.ace_other{color:#80D500;}
.ace-black-pearl .ace_storage{color:#80D500;}
.ace-black-pearl .ace_invalid{color:#FFFFFF;
background-color:#670000;}
.ace-black-pearl .ace_string{color:#CC66FF;}
.ace-black-pearl .ace_string.ace_regexp{color:#CA4344;}
.ace-black-pearl .ace_comment{font-style:italic;
color:#428BDD;}
.ace-black-pearl .ace_variable.ace_parameter{font-style:italic;
color:#8AA6C1;}
.ace-black-pearl .ace_entity.ace_other.ace_attribute-name{color:#FFFFFF;}
.ace-black-pearl .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#FFFFFF;}
`;
ace.define("ace/theme/black-pearl-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/black-pearl", ["require", "exports", "module", "ace/theme/black-pearl-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-black-pearl";
exports.cssText = require("./black-pearl-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,80 @@
import * as ace from "ace-builds";
const cssText = `
.ace-blackboard-black .ace_gutter {
background: #1F1F1F;
color: rgb(140, 140, 140);
}
.ace-blackboard-black .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-blackboard-black {
background-color: #1F1F1F;
color: #F8F8F8;
}
.ace-blackboard-black .ace_cursor {
color: rgba(255, 255, 255, 0.65);
}
.ace-blackboard-black .ace_marker-layer .ace_selection {
background: #253B76;
}
.ace-blackboard-black.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #1F1F1F;
border-radius: 2px;
}
.ace-blackboard-black .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-blackboard-black .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-blackboard-black .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.059);
}
.ace-blackboard-black .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.059);
}
.ace-blackboard-black .ace_marker-layer .ace_selected-word {
border: 1px solid #253B76;
}
.ace-blackboard-black .ace_fold {
background-color: #FBDE2D;
border-color: #F8F8F8;
}
.ace-blackboard-black .ace_keyword{color:#FBDE2D;}
.ace-blackboard-black .ace_constant{color:#D8FA3C;}
.ace-blackboard-black .ace_support{color:#8DA6CE;}
.ace-blackboard-black .ace_storage{color:#FBDE2D;}
.ace-blackboard-black .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:#9D1E15;}
.ace-blackboard-black .ace_invalid.ace_deprecated{font-style:italic;
color:#AB2A1D;}
.ace-blackboard-black .ace_string{color:#61CE3C;}
.ace-blackboard-black .ace_comment{color:#AEAEAE;}
.ace-blackboard-black .ace_meta.ace_tag{color:#7F90AA;}
`;
ace.define("ace/theme/blackboard-black-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/blackboard-black", ["require", "exports", "module", "ace/theme/blackboard-black-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-blackboard-black";
exports.cssText = require("./blackboard-black-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,81 @@
import * as ace from "ace-builds";
const cssText = `
.ace-blackboard-mod .ace_gutter {
background: rgba(11, 13, 23, 0.90);
color: rgb(130, 131, 136);
}
.ace-blackboard-mod .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-blackboard-mod {
background-color: rgba(11, 13, 23, 0.90);
color: #F8F8F8;
}
.ace-blackboard-mod .ace_cursor {
color: rgba(255, 255, 255, 0.65);
}
.ace-blackboard-mod .ace_marker-layer .ace_selection {
background: #253B76;
}
.ace-blackboard-mod.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(11, 13, 23, 0.90);
border-radius: 2px;
}
.ace-blackboard-mod .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-blackboard-mod .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-blackboard-mod .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.059);
}
.ace-blackboard-mod .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.059);
}
.ace-blackboard-mod .ace_marker-layer .ace_selected-word {
border: 1px solid #253B76;
}
.ace-blackboard-mod .ace_fold {
background-color: #FBDE2D;
border-color: #F8F8F8;
}
.ace-blackboard-mod .ace_keyword{color:#FBDE2D;}
.ace-blackboard-mod .ace_constant{color:#D8FA3C;}
.ace-blackboard-mod .ace_support{color:#7CB6FF;}
.ace-blackboard-mod .ace_storage{color:#FBDE2D;}
.ace-blackboard-mod .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:#9D1E15;}
.ace-blackboard-mod .ace_invalid.ace_deprecated{font-style:italic;
color:#AB2A1D;}
.ace-blackboard-mod .ace_string{color:#61CE3C;}
.ace-blackboard-mod .ace_comment{color:#AEAEAE;}
.ace-blackboard-mod .ace_variable{color:#BEABFF;}
.ace-blackboard-mod .ace_meta.ace_tag{color:#8090AA;}
`;
ace.define("ace/theme/blackboard-mod-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/blackboard-mod", ["require", "exports", "module", "ace/theme/blackboard-mod-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-blackboard-mod";
exports.cssText = require("./blackboard-mod-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,81 @@
import * as ace from "ace-builds";
const cssText = `
.ace-blackboard-new .ace_gutter {
background: rgba(11, 13, 23, 0.90);
color: rgb(130, 131, 136);
}
.ace-blackboard-new .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-blackboard-new {
background-color: rgba(11, 13, 23, 0.90);
color: #F8F8F8;
}
.ace-blackboard-new .ace_cursor {
color: rgba(255, 255, 255, 0.65);
}
.ace-blackboard-new .ace_marker-layer .ace_selection {
background: #253B76;
}
.ace-blackboard-new.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(11, 13, 23, 0.90);
border-radius: 2px;
}
.ace-blackboard-new .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-blackboard-new .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-blackboard-new .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.059);
}
.ace-blackboard-new .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.059);
}
.ace-blackboard-new .ace_marker-layer .ace_selected-word {
border: 1px solid #253B76;
}
.ace-blackboard-new .ace_fold {
background-color: #FBDE2D;
border-color: #F8F8F8;
}
.ace-blackboard-new .ace_keyword{color:#FBDE2D;}
.ace-blackboard-new .ace_constant{color:#D8FA3C;}
.ace-blackboard-new .ace_support{color:#7CB6FF;}
.ace-blackboard-new .ace_storage{color:#FBDE2D;}
.ace-blackboard-new .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:#9D1E15;}
.ace-blackboard-new .ace_invalid.ace_deprecated{font-style:italic;
color:#AB2A1D;}
.ace-blackboard-new .ace_string{color:#61CE3C;}
.ace-blackboard-new .ace_comment{color:#AEAEAE;}
.ace-blackboard-new .ace_variable{color:#BEABFF;}
.ace-blackboard-new .ace_meta.ace_tag{color:#8090AA;}
`;
ace.define("ace/theme/blackboard-new-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/blackboard-new", ["require", "exports", "module", "ace/theme/blackboard-new-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-blackboard-new";
exports.cssText = require("./blackboard-new-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,80 @@
import * as ace from "ace-builds";
const cssText = `
.ace-blackboard .ace_gutter {
background: #0C1021;
color: rgb(130, 132, 141);
}
.ace-blackboard .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-blackboard {
background-color: #0C1021;
color: #F8F8F8;
}
.ace-blackboard .ace_cursor {
color: rgba(255, 255, 255, 0.65);
}
.ace-blackboard .ace_marker-layer .ace_selection {
background: #253B76;
}
.ace-blackboard.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #0C1021;
border-radius: 2px;
}
.ace-blackboard .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-blackboard .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-blackboard .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.059);
}
.ace-blackboard .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.059);
}
.ace-blackboard .ace_marker-layer .ace_selected-word {
border: 1px solid #253B76;
}
.ace-blackboard .ace_fold {
background-color: #FBDE2D;
border-color: #F8F8F8;
}
.ace-blackboard .ace_keyword{color:#FBDE2D;}
.ace-blackboard .ace_constant{color:#D8FA3C;}
.ace-blackboard .ace_support{color:#8DA6CE;}
.ace-blackboard .ace_storage{color:#FBDE2D;}
.ace-blackboard .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:#9D1E15;}
.ace-blackboard .ace_invalid.ace_deprecated{font-style:italic;
color:#AB2A1D;}
.ace-blackboard .ace_string{color:#61CE3C;}
.ace-blackboard .ace_comment{color:#AEAEAE;}
.ace-blackboard .ace_meta.ace_tag{color:#7F90AA;}
`;
ace.define("ace/theme/blackboard-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/blackboard", ["require", "exports", "module", "ace/theme/blackboard-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-blackboard";
exports.cssText = require("./blackboard-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,81 @@
import * as ace from "ace-builds";
const cssText = `
.ace-blacklight .ace_gutter {
background: #000000;
color: rgb(97, 97, 97);
}
.ace-blacklight .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-blacklight {
background-color: #000000;
color: #C1C1C1;
}
.ace-blacklight .ace_cursor {
color: #FFFFFF;
}
.ace-blacklight .ace_marker-layer .ace_selection {
background: #BC1800;
}
.ace-blacklight.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-blacklight .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-blacklight .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #323232;
}
.ace-blacklight .ace_marker-layer .ace_active-line {
background: #080808;
}
.ace-blacklight .ace_gutter-active-line {
background-color: #080808;
}
.ace-blacklight .ace_marker-layer .ace_selected-word {
border: 1px solid #BC1800;
}
.ace-blacklight .ace_fold {
background-color: #6b72e6;
border-color: #C1C1C1;
}
.ace-blacklight .ace_keyword.ace_operator{color:#00FFFF;}
.ace-blacklight .ace_constant.ace_language{color:#00FFFF;}
.ace-blacklight .ace_constant.ace_numeric{color:#66FFCC;
background-color:rgba(102, 255, 204, 0.30);}
.ace-blacklight .ace_support.ace_function{color:#7F7F7F;}
.ace-blacklight .ace_support.ace_class{color:#FF0088;
background-color:rgba(0, 0, 0, 0.98);}
.ace-blacklight .ace_support.ace_type{color:#8C9281;}
.ace-blacklight .ace_storage.ace_type{color:#8C9281;}
.ace-blacklight .ace_comment{font-style:italic;
color:#47666D;}
.ace-blacklight .ace_entity.ace_other.ace_attribute-name{color:#CCCCCC;}
`;
ace.define("ace/theme/blacklight-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/blacklight", ["require", "exports", "module", "ace/theme/blacklight-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-blacklight";
exports.cssText = require("./blacklight-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,81 @@
import * as ace from "ace-builds";
const cssText = `
.ace-bongzilla .ace_gutter {
background: #1F1F1F;
color: rgb(140, 140, 140);
}
.ace-bongzilla .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-bongzilla {
background-color: #1F1F1F;
color: #F8F8F8;
}
.ace-bongzilla .ace_cursor {
color: rgba(255, 255, 255, 0.65);
}
.ace-bongzilla .ace_marker-layer .ace_selection {
background: #253B76;
}
.ace-bongzilla.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #1F1F1F;
border-radius: 2px;
}
.ace-bongzilla .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-bongzilla .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-bongzilla .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.059);
}
.ace-bongzilla .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.059);
}
.ace-bongzilla .ace_marker-layer .ace_selected-word {
border: 1px solid #253B76;
}
.ace-bongzilla .ace_fold {
background-color: #FFCC66;
border-color: #F8F8F8;
}
.ace-bongzilla .ace_keyword{color:#FFCC66;}
.ace-bongzilla .ace_constant{color:#FF593E;}
.ace-bongzilla .ace_support{color:#8DA6CE;}
.ace-bongzilla .ace_storage{color:#FFCC66;}
.ace-bongzilla .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:#9D1E15;}
.ace-bongzilla .ace_invalid.ace_deprecated{font-style:italic;
color:#AB2A1D;}
.ace-bongzilla .ace_string{color:#78CE91;}
.ace-bongzilla .ace_comment{color:#AEAEAE;}
.ace-bongzilla .ace_variable{color:#BEF895;}
.ace-bongzilla .ace_meta.ace_tag{color:#7F90AA;}
`;
ace.define("ace/theme/bongzilla-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/bongzilla", ["require", "exports", "module", "ace/theme/bongzilla-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-bongzilla";
exports.cssText = require("./bongzilla-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,88 @@
import * as ace from "ace-builds";
const cssText = `
.ace-boys-girls-01 .ace_gutter {
background: rgba(0, 3, 6, 0.95);
color: rgb(128, 129, 131);
}
.ace-boys-girls-01 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-boys-girls-01 {
background-color: rgba(0, 3, 6, 0.95);
color: #FFFFFF;
}
.ace-boys-girls-01 .ace_cursor {
color: #E60065;
}
.ace-boys-girls-01 .ace_marker-layer .ace_selection {
background: rgba(230, 12, 101, 0.35);
}
.ace-boys-girls-01.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(0, 3, 6, 0.95);
border-radius: 2px;
}
.ace-boys-girls-01 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-boys-girls-01 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.10);
}
.ace-boys-girls-01 .ace_marker-layer .ace_active-line {
background: rgba(77, 215, 252, 0.10);
}
.ace-boys-girls-01 .ace_gutter-active-line {
background-color: rgba(77, 215, 252, 0.10);
}
.ace-boys-girls-01 .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(230, 12, 101, 0.35);
}
.ace-boys-girls-01 .ace_fold {
background-color: underline;
border-color: #FFFFFF;
}
.ace-boys-girls-01 .ace_constant.ace_numeric{color:#E62286;}
.ace-boys-girls-01 .ace_constant.ace_character{color:#00D8FF;}
.ace-boys-girls-01 .ace_constant.ace_other{color:#00D8FF;}
.ace-boys-girls-01 .ace_invalid{color:#FF0C00;}
.ace-boys-girls-01 .ace_string{color:#00D8FF;}
.ace-boys-girls-01 .ace_comment{color:#404040;
background-color:rgba(9, 10, 15, 0.98);}
.ace-boys-girls-01 .ace_variable{text-decoration:underline;
font-weight:bold;}
.ace-boys-girls-01 .ace_variable.ace_language{font-weight:bold;
color:#E62286;}
.ace-boys-girls-01 .ace_variable.ace_parameter{font-weight:bold;
color:#E62286;}
.ace-boys-girls-01 .ace_entity.ace_other.ace_attribute-name{font-weight:bold;
color:#E62286;}
.ace-boys-girls-01 .ace_entity.ace_name.ace_function{text-decoration:underline;
font-weight:bold;}
.ace-boys-girls-01 .ace_entity.ace_name.ace_tag{text-decoration:underline;
font-weight:bold;}
`;
ace.define("ace/theme/boys-girls-01-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/boys-girls-01", ["require", "exports", "module", "ace/theme/boys-girls-01-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-boys-girls-01";
exports.cssText = require("./boys-girls-01-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-brilliance-black .ace_gutter {
background: rgba(13, 13, 13, 0.98);
color: rgb(126, 126, 126);
}
.ace-brilliance-black .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-brilliance-black {
background-color: rgba(13, 13, 13, 0.98);
color: #EEEEEE;
}
.ace-brilliance-black .ace_cursor {
color: #3333FF;
}
.ace-brilliance-black .ace_marker-layer .ace_selection {
background: rgba(0, 16, 180, 0.60);
}
.ace-brilliance-black.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(13, 13, 13, 0.98);
border-radius: 2px;
}
.ace-brilliance-black .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-brilliance-black .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(204, 204, 204, 0.10);
}
.ace-brilliance-black .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 128, 0.20);
}
.ace-brilliance-black .ace_gutter-active-line {
background-color: rgba(0, 0, 128, 0.20);
}
.ace-brilliance-black .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(0, 16, 180, 0.60);
}
.ace-brilliance-black .ace_fold {
background-color: #FF0086;
border-color: #EEEEEE;
}
.ace-brilliance-black .ace_keyword.ace_operator{color:#0000CE;}
.ace-brilliance-black .ace_keyword.ace_other.ace_unit{color:#07FF00;}
.ace-brilliance-black .ace_constant.ace_language{color:#07FF00;}
.ace-brilliance-black .ace_constant.ace_numeric{color:#C6FF00;}
.ace-brilliance-black .ace_constant.ace_character{color:#86FF00;}
.ace-brilliance-black .ace_constant.ace_other{color:#00FF79;}
.ace-brilliance-black .ace_support.ace_function{color:#603F80;
background-color:rgba(96, 63, 128, 0.20);}
.ace-brilliance-black .ace_support.ace_constant{color:#00FFF8;}
.ace-brilliance-black .ace_support.ace_class{color:#FF0000;
background-color:rgba(135, 0, 0, 0.20);}
.ace-brilliance-black .ace_support.ace_type{color:#FF0000;
background-color:rgba(135, 0, 0, 0.20);}
.ace-brilliance-black .ace_string.ace_regexp{color:#FFF800;
background-color:rgba(67, 128, 0, 0.20);}
.ace-brilliance-black .ace_variable{color:#FF0086;}
.ace-brilliance-black .ace_variable.ace_language{color:#00FF79;
background-color:rgba(0, 128, 124, 0.20);}
.ace-brilliance-black .ace_meta.ace_tag{color:#333333;}
.ace-brilliance-black .ace_meta.ace_selector{color:#666666;}
.ace-brilliance-black .ace_entity.ace_other.ace_attribute-name{color:rgba(255, 255, 255, 0.20);}
.ace-brilliance-black .ace_entity.ace_name.ace_function{color:#FF0086;}
.ace-brilliance-black .ace_entity.ace_name.ace_tag{color:rgba(255, 255, 255, 0.30);}
.ace-brilliance-black .ace_markup.ace_heading{color:#FFFFFF;}
`;
ace.define("ace/theme/brilliance-black-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/brilliance-black", ["require", "exports", "module", "ace/theme/brilliance-black-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-brilliance-black";
exports.cssText = require("./brilliance-black-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,98 @@
import * as ace from "ace-builds";
const cssText = `
.ace-brilliance-dull .ace_gutter {
background: rgba(5, 5, 5, 0.98);
color: rgb(105, 105, 105);
}
.ace-brilliance-dull .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-brilliance-dull {
background-color: rgba(5, 5, 5, 0.98);
color: #CDCDCD;
}
.ace-brilliance-dull .ace_cursor {
color: #7979B7;
}
.ace-brilliance-dull .ace_marker-layer .ace_selection {
background: rgba(46, 46, 230, 0.30);
}
.ace-brilliance-dull.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(5, 5, 5, 0.98);
border-radius: 2px;
}
.ace-brilliance-dull .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-brilliance-dull .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(205, 205, 205, 0.10);
}
.ace-brilliance-dull .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 128, 0.10);
}
.ace-brilliance-dull .ace_gutter-active-line {
background-color: rgba(0, 0, 128, 0.10);
}
.ace-brilliance-dull .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(46, 46, 230, 0.30);
}
.ace-brilliance-dull .ace_fold {
background-color: #A75980;
border-color: #CDCDCD;
}
.ace-brilliance-dull .ace_keyword{color:#A459A5;}
.ace-brilliance-dull .ace_keyword.ace_operator{font-weight:bold;
color:#7979B7;}
.ace-brilliance-dull .ace_keyword.ace_other.ace_unit{color:#59A559;}
.ace-brilliance-dull .ace_constant.ace_language{color:#59A559;}
.ace-brilliance-dull .ace_constant.ace_numeric{color:#95A658;}
.ace-brilliance-dull .ace_constant.ace_character{color:#80A659;}
.ace-brilliance-dull .ace_constant.ace_other{color:#57A57D;}
.ace-brilliance-dull .ace_support.ace_constant{color:#56A5A4;}
.ace-brilliance-dull .ace_support.ace_class{color:#A7595A;
background-color:rgba(128, 0, 4, 0.20);}
.ace-brilliance-dull .ace_support.ace_type{color:#A7595A;
background-color:rgba(128, 0, 4, 0.20);}
.ace-brilliance-dull .ace_invalid{font-weight:bold;
color:#211211;
background-color:#A7595A;}
.ace-brilliance-dull .ace_string.ace_regexp{color:#A6A458;
background-color:rgba(67, 128, 0, 0.20);}
.ace-brilliance-dull .ace_comment{color:#333333;}
.ace-brilliance-dull .ace_variable{color:#A75980;}
.ace-brilliance-dull .ace_variable.ace_language{color:#5E6B6B;}
.ace-brilliance-dull .ace_meta.ace_tag{color:#333333;}
.ace-brilliance-dull .ace_meta.ace_selector{color:#666666;
background-color:rgba(0, 0, 0, 0.50);}
.ace-brilliance-dull .ace_entity.ace_other.ace_attribute-name{color:rgba(255, 255, 255, 0.20);}
.ace-brilliance-dull .ace_entity.ace_name.ace_function{color:#A75980;}
.ace-brilliance-dull .ace_entity.ace_name.ace_tag{color:rgba(255, 255, 255, 0.30);}
.ace-brilliance-dull .ace_markup.ace_heading{color:#666666;
background-color:rgba(51, 51, 51, 0.50);}
`;
ace.define("ace/theme/brilliance-dull-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/brilliance-dull", ["require", "exports", "module", "ace/theme/brilliance-dull-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-brilliance-dull";
exports.cssText = require("./brilliance-dull-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-frappe .ace_gutter {
background: #303446;
color: rgb(123, 130, 158);
}
.ace-catppuccin-frappe .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-frappe {
background-color: #303446;
color: #c6d0f5;
}
.ace-catppuccin-frappe .ace_cursor {
color: #f2d5cf;
}
.ace-catppuccin-frappe .ace_marker-layer .ace_selection {
background: rgba(148, 156, 187, 0.25);
}
.ace-catppuccin-frappe.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #303446;
border-radius: 2px;
}
.ace-catppuccin-frappe .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-frappe .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-frappe .ace_marker-layer .ace_active-line {
background: #414559;
}
.ace-catppuccin-frappe .ace_gutter-active-line {
background-color: #414559;
}
.ace-catppuccin-frappe .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(148, 156, 187, 0.25);
}
.ace-catppuccin-frappe .ace_fold {
background-color: italic;
border-color: #c6d0f5;
}
.ace-catppuccin-frappe .ace_keyword{color:#ca9ee6;}
.ace-catppuccin-frappe .ace_keyword.ace_operator{color:#81c8be;}
.ace-catppuccin-frappe .ace_constant.ace_language{color:#e78284;}
.ace-catppuccin-frappe .ace_constant.ace_numeric{color:#ef9f76;}
.ace-catppuccin-frappe .ace_constant.ace_character.ace_escape{color:#f4b8e4;}
.ace-catppuccin-frappe .ace_support.ace_function{font-style:italic;
color:#8caaee;}
.ace-catppuccin-frappe .ace_support.ace_class{font-style:italic;
color:#e5c890;}
.ace-catppuccin-frappe .ace_support.ace_type{font-style:italic;
color:#e5c890;}
.ace-catppuccin-frappe .ace_storage.ace_type{color:#ca9ee6;}
.ace-catppuccin-frappe .ace_string{color:#a6d189;}
.ace-catppuccin-frappe .ace_comment{font-style:italic;
color:#949cbb;}
.ace-catppuccin-frappe .ace_variable{font-style:italic;
color:#8caaee;}
.ace-catppuccin-frappe .ace_variable.ace_parameter{font-style:italic;
color:#ea999c;}
.ace-catppuccin-frappe .ace_entity.ace_other.ace_attribute-name{color:#e5c890;}
.ace-catppuccin-frappe .ace_entity.ace_name.ace_function{font-style:italic;
color:#8caaee;}
.ace-catppuccin-frappe .ace_entity.ace_name{color:#81c8be;}
.ace-catppuccin-frappe .ace_entity.ace_name.ace_tag{color:#8caaee;}
`;
ace.define("ace/theme/catppuccin-frappe-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/catppuccin-frappe", ["require", "exports", "module", "ace/theme/catppuccin-frappe-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-catppuccin-frappe";
exports.cssText = require("./catppuccin-frappe-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-latte .ace_gutter {
background: #eff1f5;
color: rgb(158, 160, 175);
}
.ace-catppuccin-latte .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-latte {
background-color: #eff1f5;
color: #4c4f69;
}
.ace-catppuccin-latte .ace_cursor {
color: #dc8a78;
}
.ace-catppuccin-latte .ace_marker-layer .ace_selection {
background: rgba(124, 127, 147, 0.30);
}
.ace-catppuccin-latte.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #eff1f5;
border-radius: 2px;
}
.ace-catppuccin-latte .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-latte .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-latte .ace_marker-layer .ace_active-line {
background: #ccd0da;
}
.ace-catppuccin-latte .ace_gutter-active-line {
background-color: #ccd0da;
}
.ace-catppuccin-latte .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(124, 127, 147, 0.30);
}
.ace-catppuccin-latte .ace_fold {
background-color: italic;
border-color: #4c4f69;
}
.ace-catppuccin-latte .ace_keyword{color:#8839ef;}
.ace-catppuccin-latte .ace_keyword.ace_operator{color:#179299;}
.ace-catppuccin-latte .ace_constant.ace_language{color:#d20f39;}
.ace-catppuccin-latte .ace_constant.ace_numeric{color:#fe640b;}
.ace-catppuccin-latte .ace_constant.ace_character.ace_escape{color:#ea76cb;}
.ace-catppuccin-latte .ace_support.ace_function{font-style:italic;
color:#1e66f5;}
.ace-catppuccin-latte .ace_support.ace_class{font-style:italic;
color:#df8e1d;}
.ace-catppuccin-latte .ace_support.ace_type{font-style:italic;
color:#df8e1d;}
.ace-catppuccin-latte .ace_storage.ace_type{color:#8839ef;}
.ace-catppuccin-latte .ace_string{color:#40a02b;}
.ace-catppuccin-latte .ace_comment{font-style:italic;
color:#7c7f93;}
.ace-catppuccin-latte .ace_variable{font-style:italic;
color:#1e66f5;}
.ace-catppuccin-latte .ace_variable.ace_parameter{font-style:italic;
color:#e64553;}
.ace-catppuccin-latte .ace_entity.ace_other.ace_attribute-name{color:#df8e1d;}
.ace-catppuccin-latte .ace_entity.ace_name.ace_function{font-style:italic;
color:#1e66f5;}
.ace-catppuccin-latte .ace_entity.ace_name{color:#179299;}
.ace-catppuccin-latte .ace_entity.ace_name.ace_tag{color:#1e66f5;}
`;
ace.define("ace/theme/catppuccin-latte-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/catppuccin-latte", ["require", "exports", "module", "ace/theme/catppuccin-latte-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-catppuccin-latte";
exports.cssText = require("./catppuccin-latte-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-macchiato .ace_gutter {
background: #24273a;
color: rgb(119, 125, 152);
}
.ace-catppuccin-macchiato .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-macchiato {
background-color: #24273a;
color: #cad3f5;
}
.ace-catppuccin-macchiato .ace_cursor {
color: #f4dbd6;
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_selection {
background: rgba(147, 154, 183, 0.25);
}
.ace-catppuccin-macchiato.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #24273a;
border-radius: 2px;
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_active-line {
background: #363a4f;
}
.ace-catppuccin-macchiato .ace_gutter-active-line {
background-color: #363a4f;
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(147, 154, 183, 0.25);
}
.ace-catppuccin-macchiato .ace_fold {
background-color: italic;
border-color: #cad3f5;
}
.ace-catppuccin-macchiato .ace_keyword{color:#c6a0f6;}
.ace-catppuccin-macchiato .ace_keyword.ace_operator{color:#8bd5ca;}
.ace-catppuccin-macchiato .ace_constant.ace_language{color:#ed8796;}
.ace-catppuccin-macchiato .ace_constant.ace_numeric{color:#f5a97f;}
.ace-catppuccin-macchiato .ace_constant.ace_character.ace_escape{color:#f5bde6;}
.ace-catppuccin-macchiato .ace_support.ace_function{font-style:italic;
color:#8aadf4;}
.ace-catppuccin-macchiato .ace_support.ace_class{font-style:italic;
color:#eed49f;}
.ace-catppuccin-macchiato .ace_support.ace_type{font-style:italic;
color:#eed49f;}
.ace-catppuccin-macchiato .ace_storage.ace_type{color:#c6a0f6;}
.ace-catppuccin-macchiato .ace_string{color:#a6da95;}
.ace-catppuccin-macchiato .ace_comment{font-style:italic;
color:#939ab7;}
.ace-catppuccin-macchiato .ace_variable{font-style:italic;
color:#8aadf4;}
.ace-catppuccin-macchiato .ace_variable.ace_parameter{font-style:italic;
color:#ee99a0;}
.ace-catppuccin-macchiato .ace_entity.ace_other.ace_attribute-name{color:#eed49f;}
.ace-catppuccin-macchiato .ace_entity.ace_name.ace_function{font-style:italic;
color:#8aadf4;}
.ace-catppuccin-macchiato .ace_entity.ace_name{color:#8bd5ca;}
.ace-catppuccin-macchiato .ace_entity.ace_name.ace_tag{color:#8aadf4;}
`;
ace.define("ace/theme/catppuccin-macchiato-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/catppuccin-macchiato", ["require", "exports", "module", "ace/theme/catppuccin-macchiato-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-catppuccin-macchiato";
exports.cssText = require("./catppuccin-macchiato-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-mocha .ace_gutter {
background: #1e1e2e;
color: rgb(118, 122, 145);
}
.ace-catppuccin-mocha .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-mocha {
background-color: #1e1e2e;
color: #cdd6f4;
}
.ace-catppuccin-mocha .ace_cursor {
color: #f5e0dc;
}
.ace-catppuccin-mocha .ace_marker-layer .ace_selection {
background: rgba(147, 153, 178, 0.25);
}
.ace-catppuccin-mocha.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #1e1e2e;
border-radius: 2px;
}
.ace-catppuccin-mocha .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-mocha .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-mocha .ace_marker-layer .ace_active-line {
background: #313244;
}
.ace-catppuccin-mocha .ace_gutter-active-line {
background-color: #313244;
}
.ace-catppuccin-mocha .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(147, 153, 178, 0.25);
}
.ace-catppuccin-mocha .ace_fold {
background-color: italic;
border-color: #cdd6f4;
}
.ace-catppuccin-mocha .ace_keyword{color:#cba6f7;}
.ace-catppuccin-mocha .ace_keyword.ace_operator{color:#94e2d5;}
.ace-catppuccin-mocha .ace_constant.ace_language{color:#f38ba8;}
.ace-catppuccin-mocha .ace_constant.ace_numeric{color:#fab387;}
.ace-catppuccin-mocha .ace_constant.ace_character.ace_escape{color:#f5c2e7;}
.ace-catppuccin-mocha .ace_support.ace_function{font-style:italic;
color:#89b4fa;}
.ace-catppuccin-mocha .ace_support.ace_class{font-style:italic;
color:#f9e2af;}
.ace-catppuccin-mocha .ace_support.ace_type{font-style:italic;
color:#f9e2af;}
.ace-catppuccin-mocha .ace_storage.ace_type{color:#cba6f7;}
.ace-catppuccin-mocha .ace_string{color:#a6e3a1;}
.ace-catppuccin-mocha .ace_comment{font-style:italic;
color:#9399b2;}
.ace-catppuccin-mocha .ace_variable{font-style:italic;
color:#89b4fa;}
.ace-catppuccin-mocha .ace_variable.ace_parameter{font-style:italic;
color:#eba0ac;}
.ace-catppuccin-mocha .ace_entity.ace_other.ace_attribute-name{color:#f9e2af;}
.ace-catppuccin-mocha .ace_entity.ace_name.ace_function{font-style:italic;
color:#89b4fa;}
.ace-catppuccin-mocha .ace_entity.ace_name{color:#94e2d5;}
.ace-catppuccin-mocha .ace_entity.ace_name.ace_tag{color:#89b4fa;}
`;
ace.define("ace/theme/catppuccin-mocha-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/catppuccin-mocha", ["require", "exports", "module", "ace/theme/catppuccin-mocha-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-catppuccin-mocha";
exports.cssText = require("./catppuccin-mocha-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,88 @@
import * as ace from "ace-builds";
const cssText = `
.ace-choco .ace_gutter {
background: #180C0C;
color: rgb(110, 101, 82);
}
.ace-choco .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-choco {
background-color: #180C0C;
color: #C3BE98;
}
.ace-choco .ace_cursor {
color: #A7A7A7;
}
.ace-choco .ace_marker-layer .ace_selection {
background: rgba(221, 240, 255, 0.38);
}
.ace-choco.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #180C0C;
border-radius: 2px;
}
.ace-choco .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-choco .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
.ace-choco .ace_marker-layer .ace_active-line {
background: rgba(255, 156, 117, 0.13);
}
.ace-choco .ace_gutter-active-line {
background-color: rgba(255, 156, 117, 0.13);
}
.ace-choco .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(221, 240, 255, 0.38);
}
.ace-choco .ace_fold {
background-color: #B3935C;
border-color: #C3BE98;
}
.ace-choco .ace_keyword{color:#B3935C;}
.ace-choco .ace_constant{color:#DA5659;}
.ace-choco .ace_support{color:#A8799C;}
.ace-choco .ace_support.ace_function{color:#C29863;}
.ace-choco .ace_support.ace_constant{color:#D77261;}
.ace-choco .ace_storage{color:#F1E694;}
.ace-choco .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:rgba(86, 45, 86, 0.75);}
.ace-choco .ace_invalid.ace_deprecated{text-decoration:underline;
font-style:italic;
color:#D2A8A1;}
.ace-choco .ace_string{color:#7CA563;}
.ace-choco .ace_string.ace_regexp{color:#E9C062;}
.ace-choco .ace_comment{color:#679D47;
background-color:rgba(23, 32, 19, 0.0);}
.ace-choco .ace_variable{color:#7989A6;}
.ace-choco .ace_meta.ace_tag{color:#9F785B;}
.ace-choco .ace_markup.ace_heading{color:#CF6A4C;}
.ace-choco .ace_markup.ace_list{color:#F9EE98;}
`;
ace.define("ace/theme/choco-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/choco", ["require", "exports", "module", "ace/theme/choco-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-choco";
exports.cssText = require("./choco-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,80 @@
import * as ace from "ace-builds";
const cssText = `
.ace-claire .ace_gutter {
background: #000000;
color: rgb(116, 117, 116);
}
.ace-claire .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-claire {
background-color: #000000;
color: #E8E9E8;
}
.ace-claire .ace_cursor {
color: #FFFFFF;
}
.ace-claire .ace_marker-layer .ace_selection {
background: rgba(252, 249, 255, 0.88);
}
.ace-claire.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-claire .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-claire .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-claire .ace_marker-layer .ace_active-line {
background: #9B9B00;
}
.ace-claire .ace_gutter-active-line {
background-color: #9B9B00;
}
.ace-claire .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(252, 249, 255, 0.88);
}
.ace-claire .ace_fold {
background-color: #4CCCFF;
border-color: #E8E9E8;
}
.ace-claire .ace_keyword{color:#FF3190;}
.ace-claire .ace_constant{color:#339999;}
.ace-claire .ace_storage{color:#FF319F;}
.ace-claire .ace_string{color:#71ED15;}
.ace-claire .ace_string.ace_regexp{color:#CC8C2B;}
.ace-claire .ace_comment{color:#683E81;}
.ace-claire .ace_variable{color:#4CCCFF;}
.ace-claire .ace_variable.ace_parameter{font-style:italic;}
.ace-claire .ace_entity.ace_other.ace_attribute-name{font-style:italic;
color:#99CC99;}
.ace-claire .ace_entity.ace_name.ace_function{color:#4CCCFF;}
`;
ace.define("ace/theme/claire-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/claire", ["require", "exports", "module", "ace/theme/claire-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-claire";
exports.cssText = require("./claire-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,99 @@
import * as ace from "ace-builds";
const cssText = `
.ace-classic-modified .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-classic-modified .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-classic-modified {
background-color: #FFFFFF;
color: #000000;
}
.ace-classic-modified .ace_cursor {
color: #000000;
}
.ace-classic-modified .ace_marker-layer .ace_selection {
background: rgba(77, 151, 255, 0.33);
}
.ace-classic-modified.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-classic-modified .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-classic-modified .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-classic-modified .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-classic-modified .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-classic-modified .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(77, 151, 255, 0.33);
}
.ace-classic-modified .ace_fold {
background-color: bold;
border-color: #000000;
}
.ace-classic-modified .ace_keyword{font-weight:bold;
color:#0000FF;}
.ace-classic-modified .ace_constant{color:#000000;}
.ace-classic-modified .ace_constant.ace_language{font-weight:bold;
color:#000CFF;}
.ace-classic-modified .ace_constant.ace_numeric{color:#FF0000;}
.ace-classic-modified .ace_constant.ace_character.ace_escape{color:#33CC33;}
.ace-classic-modified .ace_support.ace_function{color:#990099;}
.ace-classic-modified .ace_support.ace_constant{color:#990099;}
.ace-classic-modified .ace_support.ace_class{color:#CC6633;}
.ace-classic-modified .ace_support.ace_type{color:#CC6633;}
.ace-classic-modified .ace_storage{font-weight:bold;
color:#0000FF;}
.ace-classic-modified .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-classic-modified .ace_string{color:#666666;
background-color:#FFFFFF;}
.ace-classic-modified .ace_comment{font-style:italic;
color:#CCCCCC;}
.ace-classic-modified .ace_variable{font-weight:bold;
color:#000099;}
.ace-classic-modified .ace_variable.ace_language{color:#318495;}
.ace-classic-modified .ace_meta.ace_tag{color:#1C02FF;}
.ace-classic-modified .ace_entity.ace_other.ace_attribute-name{font-style:italic;}
.ace-classic-modified .ace_entity.ace_name.ace_function{font-weight:bold;
color:#000099;}
.ace-classic-modified .ace_entity.ace_name.ace_tag{font-weight:bold;}
.ace-classic-modified .ace_markup.ace_heading{font-weight:bold;
color:#0C07FF;}
.ace-classic-modified .ace_markup.ace_list{color:#B90690;}
`;
ace.define("ace/theme/classic-modified-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/classic-modified", ["require", "exports", "module", "ace/theme/classic-modified-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-classic-modified";
exports.cssText = require("./classic-modified-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,86 @@
import * as ace from "ace-builds";
const cssText = `
.ace-close-to-the-sea .ace_gutter {
background: #172024;
color: rgb(139, 144, 143);
}
.ace-close-to-the-sea .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-close-to-the-sea {
background-color: #172024;
color: #FFFFFA;
}
.ace-close-to-the-sea .ace_cursor {
color: #FFFFFF;
}
.ace-close-to-the-sea .ace_marker-layer .ace_selection {
background: #B5A9AD;
}
.ace-close-to-the-sea.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #172024;
border-radius: 2px;
}
.ace-close-to-the-sea .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-close-to-the-sea .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #FAFAF5;
}
.ace-close-to-the-sea .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-close-to-the-sea .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-close-to-the-sea .ace_marker-layer .ace_selected-word {
border: 1px solid #B5A9AD;
}
.ace-close-to-the-sea .ace_fold {
background-color: #EA511B;
border-color: #FFFFFA;
}
.ace-close-to-the-sea .ace_keyword{font-weight:bold;
color:#5F919A;}
.ace-close-to-the-sea .ace_constant.ace_numeric{color:#B8252A;}
.ace-close-to-the-sea .ace_constant.ace_character{color:#AED4DC;}
.ace-close-to-the-sea .ace_constant.ace_other{color:#AED4DC;}
.ace-close-to-the-sea .ace_support.ace_function{color:#E1DA69;}
.ace-close-to-the-sea .ace_support.ace_constant{color:#FF005C;}
.ace-close-to-the-sea .ace_support.ace_class{color:#54BA42;}
.ace-close-to-the-sea .ace_support.ace_type{color:#54BA42;}
.ace-close-to-the-sea .ace_storage{color:#FFFFFA;}
.ace-close-to-the-sea .ace_string{color:#3A81C8;}
.ace-close-to-the-sea .ace_comment{font-style:italic;
color:#78B2C7;}
.ace-close-to-the-sea .ace_variable{color:#EA511B;}
.ace-close-to-the-sea .ace_variable.ace_language{color:#D0BFAF;}
.ace-close-to-the-sea .ace_variable.ace_parameter{color:#C0EFFE;}
.ace-close-to-the-sea .ace_entity.ace_name.ace_function{color:#EA511B;}
`;
ace.define("ace/theme/close_to_the_sea-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/close_to_the_sea", ["require", "exports", "module", "ace/theme/close_to_the_sea-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-close-to-the-sea";
exports.cssText = require("./close_to_the_sea-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,85 @@
import * as ace from "ace-builds";
const cssText = `
.ace-coal-graal .ace_gutter {
background: #222222;
color: rgb(125, 126, 122);
}
.ace-coal-graal .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-coal-graal {
background-color: #222222;
color: #D8D9D1;
}
.ace-coal-graal .ace_cursor {
color: #D8D9D1;
}
.ace-coal-graal .ace_marker-layer .ace_selection {
background: #6405D0;
}
.ace-coal-graal.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #222222;
border-radius: 2px;
}
.ace-coal-graal .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-coal-graal .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #E5E5B2;
}
.ace-coal-graal .ace_marker-layer .ace_active-line {
background: #282828;
}
.ace-coal-graal .ace_gutter-active-line {
background-color: #282828;
}
.ace-coal-graal .ace_marker-layer .ace_selected-word {
border: 1px solid #6405D0;
}
.ace-coal-graal .ace_fold {
background-color: #DFCC94;
border-color: #D8D9D1;
}
.ace-coal-graal .ace_keyword{color:#A3AAD8;}
.ace-coal-graal .ace_constant.ace_language{color:#EDB272;}
.ace-coal-graal .ace_constant.ace_numeric{color:#E4D962;}
.ace-coal-graal .ace_constant.ace_character{color:#DFCA53;}
.ace-coal-graal .ace_constant.ace_other{color:#DFCA53;}
.ace-coal-graal .ace_support.ace_function{color:#D9C589;}
.ace-coal-graal .ace_support.ace_class{color:#A9A5D9;}
.ace-coal-graal .ace_storage{color:#DBBFED;}
.ace-coal-graal .ace_invalid{color:#DFDFD5;
background-color:#CC1B27;}
.ace-coal-graal .ace_string{color:#ACC6D7;}
.ace-coal-graal .ace_comment{color:#B4DF61;}
.ace-coal-graal .ace_variable{color:#DFCC94;}
.ace-coal-graal .ace_variable.ace_language{color:#7AC0ED;}
.ace-coal-graal .ace_variable.ace_parameter{color:#85C6D9;}
.ace-coal-graal .ace_entity.ace_name.ace_function{color:#DFCC94;}
`;
ace.define("ace/theme/coal-graal-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/coal-graal", ["require", "exports", "module", "ace/theme/coal-graal-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-coal-graal";
exports.cssText = require("./coal-graal-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,86 @@
import * as ace from "ace-builds";
const cssText = `
.ace-coda .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-coda .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-coda {
background-color: #FFFFFF;
color: #000000;
}
.ace-coda .ace_cursor {
color: #000000;
}
.ace-coda .ace_marker-layer .ace_selection {
background: #A7CAFF;
}
.ace-coda.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-coda .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-coda .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-coda .ace_marker-layer .ace_active-line {
background: #EEF1F5;
}
.ace-coda .ace_gutter-active-line {
background-color: #EEF1F5;
}
.ace-coda .ace_marker-layer .ace_selected-word {
border: 1px solid #A7CAFF;
}
.ace-coda .ace_fold {
background-color: #053369;
border-color: #000000;
}
.ace-coda .ace_keyword{color:#000000;}
.ace-coda .ace_constant.ace_language{color:#000000;}
.ace-coda .ace_constant.ace_numeric{color:#0F20F6;}
.ace-coda .ace_constant.ace_character{color:#916319;}
.ace-coda .ace_constant.ace_other{color:#916319;}
.ace-coda .ace_support.ace_function{color:#7520AF;}
.ace-coda .ace_storage{color:#AA2063;}
.ace-coda .ace_invalid{color:#EB291C;}
.ace-coda .ace_string{color:#ED7722;}
.ace-coda .ace_comment{font-style:italic;
color:#3C802C;}
.ace-coda .ace_variable{color:#053369;}
.ace-coda .ace_variable.ace_language{color:#916319;}
.ace-coda .ace_variable.ace_parameter{color:#053369;}
.ace-coda .ace_entity.ace_other.ace_attribute-name{color:#881181;}
.ace-coda .ace_entity.ace_name.ace_function{color:#053369;}
.ace-coda .ace_entity.ace_name.ace_tag{color:#881181;}
`;
ace.define("ace/theme/coda-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/coda", ["require", "exports", "module", "ace/theme/coda-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-coda";
exports.cssText = require("./coda-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,86 @@
import * as ace from "ace-builds";
const cssText = `
.ace-codainkdeep .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-codainkdeep .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-codainkdeep {
background-color: #FFFFFF;
color: #000000;
}
.ace-codainkdeep .ace_cursor {
color: #000000;
}
.ace-codainkdeep .ace_marker-layer .ace_selection {
background: #A7CAFF;
}
.ace-codainkdeep.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-codainkdeep .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-codainkdeep .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-codainkdeep .ace_marker-layer .ace_active-line {
background: #EEF1F5;
}
.ace-codainkdeep .ace_gutter-active-line {
background-color: #EEF1F5;
}
.ace-codainkdeep .ace_marker-layer .ace_selected-word {
border: 1px solid #A7CAFF;
}
.ace-codainkdeep .ace_fold {
background-color: #D20037;
border-color: #000000;
}
.ace-codainkdeep .ace_keyword{color:#008DE2;}
.ace-codainkdeep .ace_constant.ace_language{color:#D20037;}
.ace-codainkdeep .ace_constant.ace_numeric{color:#0F20F6;}
.ace-codainkdeep .ace_constant.ace_character{color:#0E00A7;}
.ace-codainkdeep .ace_constant.ace_other{color:#0E00A7;}
.ace-codainkdeep .ace_support.ace_function{color:#728F3A;}
.ace-codainkdeep .ace_storage{color:#AA2063;}
.ace-codainkdeep .ace_invalid{color:#EB291C;}
.ace-codainkdeep .ace_string{color:#EA8500;}
.ace-codainkdeep .ace_comment{font-style:italic;
color:#ADADAD;}
.ace-codainkdeep .ace_variable{color:#D20037;}
.ace-codainkdeep .ace_variable.ace_language{color:#1892FF;}
.ace-codainkdeep .ace_variable.ace_parameter{color:#053369;}
.ace-codainkdeep .ace_entity.ace_other.ace_attribute-name{color:#525F3C;}
.ace-codainkdeep .ace_entity.ace_name.ace_function{color:#D20037;}
.ace-codainkdeep .ace_entity.ace_name.ace_tag{color:#525F3C;}
`;
ace.define("ace/theme/codainkdeep-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/codainkdeep", ["require", "exports", "module", "ace/theme/codainkdeep-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-codainkdeep";
exports.cssText = require("./codainkdeep-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,81 @@
import * as ace from "ace-builds";
const cssText = `
.ace-cool-glow .ace_gutter {
background: rgba(6, 7, 29, 0.98);
color: rgb(115, 116, 127);
}
.ace-cool-glow .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-cool-glow {
background-color: rgba(6, 7, 29, 0.98);
color: #E0E0E0;
}
.ace-cool-glow .ace_cursor {
color: rgba(255, 255, 255, 0.65);
}
.ace-cool-glow .ace_marker-layer .ace_selection {
background: #122BBB;
}
.ace-cool-glow.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(6, 7, 29, 0.98);
border-radius: 2px;
}
.ace-cool-glow .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-cool-glow .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.26);
}
.ace-cool-glow .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.059);
}
.ace-cool-glow .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.059);
}
.ace-cool-glow .ace_marker-layer .ace_selected-word {
border: 1px solid #122BBB;
}
.ace-cool-glow .ace_fold {
background-color: #2BF1DC;
border-color: #E0E0E0;
}
.ace-cool-glow .ace_keyword{color:#2BF1DC;}
.ace-cool-glow .ace_constant{color:#62E9BD;}
.ace-cool-glow .ace_support{color:#60A4F1;}
.ace-cool-glow .ace_storage{color:#F8FBB1;}
.ace-cool-glow .ace_invalid.ace_illegal{color:#F8F8F8;
background-color:#AD2117;}
.ace-cool-glow .ace_invalid.ace_deprecated{font-style:italic;
color:#AB2A1D;}
.ace-cool-glow .ace_string{color:#8DFF8E;}
.ace-cool-glow .ace_comment{color:#AEAEAE;}
.ace-cool-glow .ace_variable{color:#B683CA;}
.ace-cool-glow .ace_meta.ace_tag{color:#7BACCA;}
`;
ace.define("ace/theme/cool-glow-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/cool-glow", ["require", "exports", "module", "ace/theme/cool-glow-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-cool-glow";
exports.cssText = require("./cool-glow-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,83 @@
import * as ace from "ace-builds";
const cssText = `
.ace-creeper .ace_gutter {
background: #000000;
color: rgb(116, 116, 116);
}
.ace-creeper .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-creeper {
background-color: #000000;
color: #E8E8E8;
}
.ace-creeper .ace_cursor {
color: #CDCDCD;
}
.ace-creeper .ace_marker-layer .ace_selection {
background: rgba(114, 114, 114, 0.38);
}
.ace-creeper.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-creeper .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-creeper .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #484848;
}
.ace-creeper .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.17);
}
.ace-creeper .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.17);
}
.ace-creeper .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(114, 114, 114, 0.38);
}
.ace-creeper .ace_fold {
background-color: #6D6D6D;
border-color: #E8E8E8;
}
.ace-creeper .ace_keyword{color:#6D6D6D;}
.ace-creeper .ace_keyword.ace_operator{color:#925D4C;}
.ace-creeper .ace_constant{color:#6D6D6D;}
.ace-creeper .ace_constant.ace_numeric{color:#83979B;}
.ace-creeper .ace_support{color:#6D6D6D;}
.ace-creeper .ace_support.ace_function{color:#925D4C;}
.ace-creeper .ace_support.ace_constant{color:#6D6D6D;}
.ace-creeper .ace_storage{color:#6D6D6D;}
.ace-creeper .ace_invalid{color:#F45E43;}
.ace-creeper .ace_string{color:#606D51;}
.ace-creeper .ace_string.ace_regexp{color:#7C8E68;}
.ace-creeper .ace_comment{color:#555555;}
.ace-creeper .ace_variable{color:#E8E9E8;}
.ace-creeper .ace_meta.ace_tag{color:#8A9DA0;}
`;
ace.define("ace/theme/creeper-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/creeper", ["require", "exports", "module", "ace/theme/creeper-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-creeper";
exports.cssText = require("./creeper-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,75 @@
import * as ace from "ace-builds";
const cssText = `
.ace-cssedit .ace_gutter {
background: #FFFFFF;
color: rgb(163, 163, 163);
}
.ace-cssedit .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-cssedit {
background-color: #FFFFFF;
color: #474747;
}
.ace-cssedit .ace_cursor {
color: #000000;
}
.ace-cssedit .ace_marker-layer .ace_selection {
background: #A0CDFF;
}
.ace-cssedit.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-cssedit .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-cssedit .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-cssedit .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-cssedit .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-cssedit .ace_marker-layer .ace_selected-word {
border: 1px solid #A0CDFF;
}
.ace-cssedit .ace_fold {
background-color: #4678BC;
border-color: #474747;
}
.ace-cssedit .ace_keyword{color:#4678BC;}
.ace-cssedit .ace_constant.ace_numeric{color:#6D4496;}
.ace-cssedit .ace_string{color:#5D9629;}
.ace-cssedit .ace_comment{color:#A8A8A8;}
.ace-cssedit .ace_entity.ace_other.ace_attribute-name{color:#B84610;}
.ace-cssedit .ace_entity.ace_name.ace_tag{color:#4678BC;}
`;
ace.define("ace/theme/cssedit-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/cssedit", ["require", "exports", "module", "ace/theme/cssedit-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-cssedit";
exports.cssText = require("./cssedit-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,82 @@
import * as ace from "ace-builds";
const cssText = `
.ace-daniel-fischer .ace_gutter {
background: rgba(0, 0, 0, 0.95);
color: rgb(128, 128, 128);
}
.ace-daniel-fischer .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-daniel-fischer {
background-color: rgba(0, 0, 0, 0.95);
color: #FFFFFF;
}
.ace-daniel-fischer .ace_cursor {
color: #FFFFFF;
}
.ace-daniel-fischer .ace_marker-layer .ace_selection {
background: rgba(89, 16, 15, 0.88);
}
.ace-daniel-fischer.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.95);
border-radius: 2px;
}
.ace-daniel-fischer .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-daniel-fischer .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-daniel-fischer .ace_marker-layer .ace_active-line {
background: #424046;
}
.ace-daniel-fischer .ace_gutter-active-line {
background-color: #424046;
}
.ace-daniel-fischer .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(89, 16, 15, 0.88);
}
.ace-daniel-fischer .ace_fold {
background-color: #FFFF00;
border-color: #FFFFFF;
}
.ace-daniel-fischer .ace_keyword{color:#FF0049;}
.ace-daniel-fischer .ace_constant{color:#339999;}
.ace-daniel-fischer .ace_support.ace_class{color:#FF8000;}
.ace-daniel-fischer .ace_support.ace_type{color:#FF8000;}
.ace-daniel-fischer .ace_string{color:#66FF00;}
.ace-daniel-fischer .ace_string.ace_regexp{color:#44B4CC;}
.ace-daniel-fischer .ace_comment{color:#9933CC;}
.ace-daniel-fischer .ace_variable{color:#FFFF00;}
.ace-daniel-fischer .ace_variable.ace_parameter{font-style:italic;}
.ace-daniel-fischer .ace_entity.ace_other.ace_attribute-name{font-style:italic;
color:#99CC99;}
.ace-daniel-fischer .ace_entity.ace_name.ace_function{color:#FFFF00;}
.ace-daniel-fischer .ace_entity.ace_name.ace_tag{color:#EEFF36;}
`;
ace.define("ace/theme/daniel-fischer-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/daniel-fischer", ["require", "exports", "module", "ace/theme/daniel-fischer-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-daniel-fischer";
exports.cssText = require("./daniel-fischer-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-dawn-mod1 .ace_gutter {
background: rgba(249, 249, 249, 0.95);
color: rgb(129, 129, 129);
}
.ace-dawn-mod1 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-dawn-mod1 {
background-color: rgba(249, 249, 249, 0.95);
color: #080808;
}
.ace-dawn-mod1 .ace_cursor {
color: #000000;
}
.ace-dawn-mod1 .ace_marker-layer .ace_selection {
background: rgba(39, 95, 255, 0.30);
}
.ace-dawn-mod1.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(249, 249, 249, 0.95);
border-radius: 2px;
}
.ace-dawn-mod1 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-dawn-mod1 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(75, 75, 126, 0.50);
}
.ace-dawn-mod1 .ace_marker-layer .ace_active-line {
background: rgba(36, 99, 180, 0.12);
}
.ace-dawn-mod1 .ace_gutter-active-line {
background-color: rgba(36, 99, 180, 0.12);
}
.ace-dawn-mod1 .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(39, 95, 255, 0.30);
}
.ace-dawn-mod1 .ace_fold {
background-color: #794938;
border-color: #080808;
}
.ace-dawn-mod1 .ace_keyword{color:#794938;}
.ace-dawn-mod1 .ace_constant{font-weight:bold;
color:#811F24;}
.ace-dawn-mod1 .ace_support{color:#691C97;}
.ace-dawn-mod1 .ace_support.ace_function{color:#693A17;}
.ace-dawn-mod1 .ace_support.ace_constant{color:#B4371F;}
.ace-dawn-mod1 .ace_storage{font-style:italic;
color:#A71D5D;}
.ace-dawn-mod1 .ace_invalid.ace_illegal{text-decoration:underline;
font-style:italic;
color:#F8F8F8;
background-color:#B52A1D;}
.ace-dawn-mod1 .ace_invalid.ace_deprecated{text-decoration:underline;
font-style:italic;
font-weight:bold;
color:#B52A1D;}
.ace-dawn-mod1 .ace_string{color:#0B6125;}
.ace-dawn-mod1 .ace_string.ace_regexp{color:#CF5628;}
.ace-dawn-mod1 .ace_comment{font-style:italic;
color:#5A525F;}
.ace-dawn-mod1 .ace_variable{color:#234A97;}
.ace-dawn-mod1 .ace_markup.ace_heading{font-weight:bold;
color:#2550A4;}
.ace-dawn-mod1 .ace_markup.ace_list{color:#9F5922;}
`;
ace.define("ace/theme/dawn-mod1-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/dawn-mod1", ["require", "exports", "module", "ace/theme/dawn-mod1-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-dawn-mod1";
exports.cssText = require("./dawn-mod1-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,99 @@
import * as ace from "ace-builds";
const cssText = `
.ace-deluxe .ace_gutter {
background: rgba(0, 0, 0, 0.95);
color: rgb(124, 124, 121);
}
.ace-deluxe .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-deluxe {
background-color: rgba(0, 0, 0, 0.95);
color: #F8F8F2;
}
.ace-deluxe .ace_cursor {
color: #F8F8F0;
}
.ace-deluxe .ace_marker-layer .ace_selection {
background: #273C40;
}
.ace-deluxe.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.95);
border-radius: 2px;
}
.ace-deluxe .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-deluxe .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #3B3A32;
}
.ace-deluxe .ace_marker-layer .ace_active-line {
background: #3E3D32;
}
.ace-deluxe .ace_gutter-active-line {
background-color: #3E3D32;
}
.ace-deluxe .ace_marker-layer .ace_selected-word {
border: 1px solid #273C40;
}
.ace-deluxe .ace_fold {
background-color: bold;
border-color: #F8F8F2;
}
.ace-deluxe .ace_keyword{color:#EBD17C;}
.ace-deluxe .ace_keyword.ace_operator{color:#8794F8;}
.ace-deluxe .ace_constant.ace_language{color:#AE81FF;}
.ace-deluxe .ace_constant.ace_numeric{color:#AE81FF;}
.ace-deluxe .ace_constant.ace_character{color:#70FFE0;}
.ace-deluxe .ace_constant.ace_other{color:#70FFE0;}
.ace-deluxe .ace_support.ace_function{color:#66D9EF;}
.ace-deluxe .ace_support.ace_constant{color:#8FEFAE;}
.ace-deluxe .ace_support.ace_class{font-style:italic;
color:#FFE243;}
.ace-deluxe .ace_support.ace_type{font-style:italic;
color:#FFE243;}
.ace-deluxe .ace_storage{color:#F92672;}
.ace-deluxe .ace_storage.ace_type{font-style:italic;
color:#8AE5EF;}
.ace-deluxe .ace_invalid{color:#F8F8F0;
background-color:#F92672;}
.ace-deluxe .ace_invalid.ace_deprecated{color:#F8F8F0;
background-color:#AE81FF;}
.ace-deluxe .ace_string{color:#FFFF66;
background-color:rgba(40, 40, 38, 0.95);}
.ace-deluxe .ace_comment{font-style:italic;
color:#75715E;}
.ace-deluxe .ace_variable{color:#00FFFF;}
.ace-deluxe .ace_variable.ace_parameter{font-style:italic;
color:#FD971F;}
.ace-deluxe .ace_entity.ace_other.ace_attribute-name{color:#A6E22E;}
.ace-deluxe .ace_entity.ace_name.ace_function{font-weight:bold;
color:#3E6FFF;}
.ace-deluxe .ace_entity.ace_name.ace_tag{color:#52F9F9;}
`;
ace.define("ace/theme/deluxe-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/deluxe", ["require", "exports", "module", "ace/theme/deluxe-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-deluxe";
exports.cssText = require("./deluxe-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,85 @@
import * as ace from "ace-builds";
const cssText = `
.ace-django-dark .ace_gutter {
background: #0A1C12;
color: rgb(129, 138, 133);
}
.ace-django-dark .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-django-dark {
background-color: #0A1C12;
color: #F8F8F8;
}
.ace-django-dark .ace_cursor {
color: #336442;
}
.ace-django-dark .ace_marker-layer .ace_selection {
background: #1B381A;
}
.ace-django-dark.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #0A1C12;
border-radius: 2px;
}
.ace-django-dark .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-django-dark .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #497958;
}
.ace-django-dark .ace_marker-layer .ace_active-line {
background: rgba(5, 12, 9, 0.29);
}
.ace-django-dark .ace_gutter-active-line {
background-color: rgba(5, 12, 9, 0.29);
}
.ace-django-dark .ace_marker-layer .ace_selected-word {
border: 1px solid #1B381A;
}
.ace-django-dark .ace_fold {
background-color: #73B800;
border-color: #F8F8F8;
}
.ace-django-dark .ace_keyword{color:#73B800;}
.ace-django-dark .ace_constant{color:#497958;}
.ace-django-dark .ace_support{color:#9DF39F;}
.ace-django-dark .ace_support.ace_function{color:#FFB454;}
.ace-django-dark .ace_support.ace_constant{color:#EB939A;}
.ace-django-dark .ace_storage{font-weight:bold;
color:#FFE862;}
.ace-django-dark .ace_invalid{color:#FFFFFF;
background-color:#FD6209;}
.ace-django-dark .ace_string{color:#91BB9E;}
.ace-django-dark .ace_string.ace_regexp{color:#FFB454;}
.ace-django-dark .ace_comment{font-style:italic;
color:#245032;}
.ace-django-dark .ace_variable{font-style:italic;
color:#FB9A4B;}
.ace-django-dark .ace_meta.ace_tag{color:#497958;}
`;
ace.define("ace/theme/django-dark-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/django-dark", ["require", "exports", "module", "ace/theme/django-dark-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-django-dark";
exports.cssText = require("./django-dark-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,87 @@
import * as ace from "ace-builds";
const cssText = `
.ace-django-smoothy .ace_gutter {
background: #245032;
color: rgb(142, 164, 149);
}
.ace-django-smoothy .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-django-smoothy {
background-color: #245032;
color: #F8F8F8;
}
.ace-django-smoothy .ace_cursor {
color: #336442;
}
.ace-django-smoothy .ace_marker-layer .ace_selection {
background: #336442;
}
.ace-django-smoothy.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #245032;
border-radius: 2px;
}
.ace-django-smoothy .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-django-smoothy .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #0B2F20;
}
.ace-django-smoothy .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.29);
}
.ace-django-smoothy .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.29);
}
.ace-django-smoothy .ace_marker-layer .ace_selected-word {
border: 1px solid #336442;
}
.ace-django-smoothy .ace_fold {
background-color: #96DD3B;
border-color: #F8F8F8;
}
.ace-django-smoothy .ace_keyword{color:#96DD3B;}
.ace-django-smoothy .ace_constant{font-style:italic;
font-weight:bold;
color:#9CF340;}
.ace-django-smoothy .ace_support{color:#9DF39F;}
.ace-django-smoothy .ace_support.ace_function{color:#FFE862;}
.ace-django-smoothy .ace_support.ace_constant{color:#EB939A;}
.ace-django-smoothy .ace_storage{font-weight:bold;
color:#FFE862;}
.ace-django-smoothy .ace_invalid{background-color:#94DA3A;}
.ace-django-smoothy .ace_string{font-style:italic;
color:#E1FFB8;}
.ace-django-smoothy .ace_string.ace_regexp{color:#FFB454;}
.ace-django-smoothy .ace_comment{color:#FD6209;}
.ace-django-smoothy .ace_variable{font-style:italic;
font-weight:bold;
color:#FB9A4B;}
.ace-django-smoothy .ace_meta.ace_tag{color:#E8E8E7;}
`;
ace.define("ace/theme/django-smoothy-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/django-smoothy", ["require", "exports", "module", "ace/theme/django-smoothy-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-django-smoothy";
exports.cssText = require("./django-smoothy-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,82 @@
import * as ace from "ace-builds";
const cssText = `
.ace-dominion-day .ace_gutter {
background: #000000;
color: rgb(93, 87, 108);
}
.ace-dominion-day .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-dominion-day {
background-color: #000000;
color: #B9ADD7;
}
.ace-dominion-day .ace_cursor {
color: #A3FFA6;
}
.ace-dominion-day .ace_marker-layer .ace_selection {
background: #3A5A3C;
}
.ace-dominion-day.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-dominion-day .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-dominion-day .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #461560;
}
.ace-dominion-day .ace_marker-layer .ace_active-line {
background: #18041A;
}
.ace-dominion-day .ace_gutter-active-line {
background-color: #18041A;
}
.ace-dominion-day .ace_marker-layer .ace_selected-word {
border: 1px solid #3A5A3C;
}
.ace-dominion-day .ace_fold {
background-color: #971BA1;
border-color: #B9ADD7;
}
.ace-dominion-day .ace_keyword.ace_operator{color:#A5A4C5;}
.ace-dominion-day .ace_constant{color:#B36FD6;}
.ace-dominion-day .ace_support{color:#971BA1;}
.ace-dominion-day .ace_storage{color:#5B55FE;}
.ace-dominion-day .ace_invalid{color:#A3FFA6;
background-color:rgba(255, 0, 0, 0.18);}
.ace-dominion-day .ace_string{color:#83529D;}
.ace-dominion-day .ace_comment{color:#554D9D;}
.ace-dominion-day .ace_variable{color:#971BA1;}
.ace-dominion-day .ace_variable.ace_parameter{color:#5D935D;}
.ace-dominion-day .ace_entity.ace_other.ace_attribute-name{color:#65158F;}
.ace-dominion-day .ace_entity.ace_name.ace_function{color:#971BA1;}
.ace-dominion-day .ace_entity.ace_name.ace_tag{color:#471062;}
`;
ace.define("ace/theme/dominion-day-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/dominion-day", ["require", "exports", "module", "ace/theme/dominion-day-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-dominion-day";
exports.cssText = require("./dominion-day-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,101 @@
import * as ace from "ace-builds";
const cssText = `
.ace-eiffel .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-eiffel .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-eiffel {
background-color: #FFFFFF;
color: #000000;
}
.ace-eiffel .ace_cursor {
color: #000000;
}
.ace-eiffel .ace_marker-layer .ace_selection {
background: #C3DCFF;
}
.ace-eiffel.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-eiffel .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-eiffel .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-eiffel .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-eiffel .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-eiffel .ace_marker-layer .ace_selected-word {
border: 1px solid #C3DCFF;
}
.ace-eiffel .ace_fold {
background-color: bold;
border-color: #000000;
}
.ace-eiffel .ace_keyword{font-weight:bold;
color:#0100B6;}
.ace-eiffel .ace_constant{font-style:italic;
color:#C5060B;}
.ace-eiffel .ace_constant.ace_language{font-style:italic;
color:#585CF6;}
.ace-eiffel .ace_constant.ace_numeric{font-style:italic;
color:#CD0000;}
.ace-eiffel .ace_constant.ace_character.ace_escape{color:#26B31A;}
.ace-eiffel .ace_support.ace_function{font-weight:bold;
color:#3C4C72;}
.ace-eiffel .ace_support.ace_constant{font-weight:bold;
color:#06960E;}
.ace-eiffel .ace_support.ace_class{font-weight:bold;
color:#6D79DE;}
.ace-eiffel .ace_support.ace_type{font-weight:bold;
color:#6D79DE;}
.ace-eiffel .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-eiffel .ace_string{color:#D80800;}
.ace-eiffel .ace_comment{color:#00B418;}
.ace-eiffel .ace_variable{font-style:italic;
color:#0206FF;}
.ace-eiffel .ace_variable.ace_parameter{font-style:italic;}
.ace-eiffel .ace_meta.ace_tag{color:#1C02FF;}
.ace-eiffel .ace_entity.ace_other.ace_attribute-name{font-style:italic;}
.ace-eiffel .ace_entity.ace_name.ace_function{font-weight:bold;
color:#0000A2;}
.ace-eiffel .ace_entity.ace_name.ace_tag{font-weight:bold;}
.ace-eiffel .ace_markup.ace_heading{font-weight:bold;
color:#0C07FF;}
.ace-eiffel .ace_markup.ace_list{color:#B90690;}
`;
ace.define("ace/theme/eiffel-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/eiffel", ["require", "exports", "module", "ace/theme/eiffel-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-eiffel";
exports.cssText = require("./eiffel-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,82 @@
import * as ace from "ace-builds";
const cssText = `
.ace-emacs-strict .ace_gutter {
background: rgba(0, 0, 0, 0.92);
color: rgb(106, 106, 106);
}
.ace-emacs-strict .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-emacs-strict {
background-color: rgba(0, 0, 0, 0.92);
color: #D3D3D3;
}
.ace-emacs-strict .ace_cursor {
color: #FFFFFF;
}
.ace-emacs-strict .ace_marker-layer .ace_selection {
background: rgba(0, 29, 195, 0.92);
}
.ace-emacs-strict.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.92);
border-radius: 2px;
}
.ace-emacs-strict .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-emacs-strict .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #FF0000;
}
.ace-emacs-strict .ace_marker-layer .ace_active-line {
background: rgba(22, 1, 43, 0.92);
}
.ace-emacs-strict .ace_gutter-active-line {
background-color: rgba(22, 1, 43, 0.92);
}
.ace-emacs-strict .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(0, 29, 195, 0.92);
}
.ace-emacs-strict .ace_fold {
background-color: #81CEF9;
border-color: #D3D3D3;
}
.ace-emacs-strict .ace_keyword{color:#00FFFF;}
.ace-emacs-strict .ace_support.ace_class{color:#94FE9A;}
.ace-emacs-strict .ace_storage{color:#94FE9A;}
.ace-emacs-strict .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-emacs-strict .ace_string{color:#FF9E7B;}
.ace-emacs-strict .ace_comment{color:#FF7D27;}
.ace-emacs-strict .ace_variable{color:#81CEF9;}
.ace-emacs-strict .ace_variable.ace_language{color:#00FFFF;}
.ace-emacs-strict .ace_entity.ace_other.ace_attribute-name{color:#EBDB8D;}
.ace-emacs-strict .ace_entity.ace_name.ace_function{color:#81CEF9;}
.ace-emacs-strict .ace_entity.ace_name.ace_tag{color:#9CCFF4;}
.ace-emacs-strict .ace_markup.ace_heading{color:#E27F3F;}
`;
ace.define("ace/theme/emacs-strict-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/emacs-strict", ["require", "exports", "module", "ace/theme/emacs-strict-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-emacs-strict";
exports.cssText = require("./emacs-strict-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,95 @@
import * as ace from "ace-builds";
const cssText = `
.ace-erebus .ace_gutter {
background: #140A0A;
color: rgb(134, 129, 126);
}
.ace-erebus .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-erebus {
background-color: #140A0A;
color: #F8F8F2;
}
.ace-erebus .ace_cursor {
color: #F8F8F0;
}
.ace-erebus .ace_marker-layer .ace_selection {
background: #A63A3A;
}
.ace-erebus.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #140A0A;
border-radius: 2px;
}
.ace-erebus .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-erebus .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #3B3A32;
}
.ace-erebus .ace_marker-layer .ace_active-line {
background: rgba(61, 46, 46, 0.47);
}
.ace-erebus .ace_gutter-active-line {
background-color: rgba(61, 46, 46, 0.47);
}
.ace-erebus .ace_marker-layer .ace_selected-word {
border: 1px solid #A63A3A;
}
.ace-erebus .ace_fold {
background-color: #F2AAEC;
border-color: #F8F8F2;
}
.ace-erebus .ace_keyword{color:#D95757;}
.ace-erebus .ace_constant.ace_language{color:#E57EDD;}
.ace-erebus .ace_constant.ace_numeric{color:#E57EDD;}
.ace-erebus .ace_constant.ace_character{color:#E57EDD;}
.ace-erebus .ace_constant.ace_other{color:#E57EDD;}
.ace-erebus .ace_support.ace_function{color:#FFB266;}
.ace-erebus .ace_support.ace_constant{color:#FFB266;}
.ace-erebus .ace_support.ace_class{font-style:italic;
color:#FFB266;}
.ace-erebus .ace_support.ace_type{font-style:italic;
color:#FFB266;}
.ace-erebus .ace_storage{color:#D95757;}
.ace-erebus .ace_storage.ace_type{font-style:italic;
color:#FFB266;}
.ace-erebus .ace_invalid{color:#F8F8F0;
background-color:#D95757;}
.ace-erebus .ace_invalid.ace_deprecated{color:#F8F8F0;
background-color:#E57EDD;}
.ace-erebus .ace_string{color:#FFB2B2;}
.ace-erebus .ace_comment{color:#8C6969;}
.ace-erebus .ace_variable{color:#D0A3F8;}
.ace-erebus .ace_variable.ace_parameter{font-style:italic;
color:#FFD2A6;}
.ace-erebus .ace_entity.ace_other.ace_attribute-name{color:#FFB266;}
.ace-erebus .ace_entity.ace_name.ace_function{color:#F2AAEC;}
.ace-erebus .ace_entity.ace_name.ace_tag{color:#D95757;}
`;
ace.define("ace/theme/erebus-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/erebus", ["require", "exports", "module", "ace/theme/erebus-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-erebus";
exports.cssText = require("./erebus-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,101 @@
import * as ace from "ace-builds";
const cssText = `
.ace-espresso-libre .ace_gutter {
background: #2A211C;
color: rgb(116, 104, 93);
}
.ace-espresso-libre .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-espresso-libre {
background-color: #2A211C;
color: #BDAE9D;
}
.ace-espresso-libre .ace_cursor {
color: #889AFF;
}
.ace-espresso-libre .ace_marker-layer .ace_selection {
background: #C3DCFF;
}
.ace-espresso-libre.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #2A211C;
border-radius: 2px;
}
.ace-espresso-libre .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-espresso-libre .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-espresso-libre .ace_marker-layer .ace_active-line {
background: #3A312C;
}
.ace-espresso-libre .ace_gutter-active-line {
background-color: #3A312C;
}
.ace-espresso-libre .ace_marker-layer .ace_selected-word {
border: 1px solid #C3DCFF;
}
.ace-espresso-libre .ace_fold {
background-color: bold;
border-color: #BDAE9D;
}
.ace-espresso-libre .ace_keyword{font-weight:bold;
color:#43A8ED;}
.ace-espresso-libre .ace_constant{font-weight:bold;
color:#C5656B;}
.ace-espresso-libre .ace_constant.ace_language{font-weight:bold;
color:#585CF6;}
.ace-espresso-libre .ace_constant.ace_numeric{color:#44AA43;}
.ace-espresso-libre .ace_constant.ace_character.ace_escape{color:#2FE420;}
.ace-espresso-libre .ace_support.ace_function{font-weight:bold;
color:#7290D9;}
.ace-espresso-libre .ace_support.ace_constant{font-weight:bold;
color:#00AF0E;}
.ace-espresso-libre .ace_support.ace_class{font-weight:bold;
color:#6D79DE;}
.ace-espresso-libre .ace_support.ace_type{font-weight:bold;
color:#6D79DE;}
.ace-espresso-libre .ace_storage{font-weight:bold;
color:#43A8ED;}
.ace-espresso-libre .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-espresso-libre .ace_string{color:#049B0A;}
.ace-espresso-libre .ace_comment{font-style:italic;
color:#0066FF;}
.ace-espresso-libre .ace_variable{font-weight:bold;
color:#FF9358;}
.ace-espresso-libre .ace_variable.ace_language{color:#318495;}
.ace-espresso-libre .ace_variable.ace_parameter{font-style:italic;}
.ace-espresso-libre .ace_meta.ace_tag{color:#43A8ED;}
.ace-espresso-libre .ace_entity.ace_other.ace_attribute-name{font-style:italic;}
.ace-espresso-libre .ace_entity.ace_name.ace_function{font-weight:bold;
color:#FF9358;}
.ace-espresso-libre .ace_entity.ace_name.ace_tag{font-weight:bold;}
`;
ace.define("ace/theme/espresso-libre-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/espresso-libre", ["require", "exports", "module", "ace/theme/espresso-libre-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-espresso-libre";
exports.cssText = require("./espresso-libre-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,95 @@
import * as ace from "ace-builds";
const cssText = `
.ace-espresso-tutti .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-espresso-tutti .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-espresso-tutti {
background-color: #FFFFFF;
color: #000000;
}
.ace-espresso-tutti .ace_cursor {
color: #000000;
}
.ace-espresso-tutti .ace_marker-layer .ace_selection {
background: #80C7FF;
}
.ace-espresso-tutti.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-espresso-tutti .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-espresso-tutti .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-espresso-tutti .ace_marker-layer .ace_active-line {
background: #C1E2F8;
}
.ace-espresso-tutti .ace_gutter-active-line {
background-color: #C1E2F8;
}
.ace-espresso-tutti .ace_marker-layer .ace_selected-word {
border: 1px solid #80C7FF;
}
.ace-espresso-tutti .ace_fold {
background-color: #3A1D72;
border-color: #000000;
}
.ace-espresso-tutti .ace_keyword{color:#2F6F9F;
background-color:#F4FAFF;}
.ace-espresso-tutti .ace_constant{color:#7653C1;
background-color:#F3F2FF;}
.ace-espresso-tutti .ace_constant.ace_language{color:#7653C2;
background-color:#F3F2FF;}
.ace-espresso-tutti .ace_constant.ace_numeric{color:#CF4F5F;}
.ace-espresso-tutti .ace_constant.ace_character.ace_escape{color:#000000;
background-color:#E8FFD5;}
.ace-espresso-tutti .ace_support{color:#4E279A;}
.ace-espresso-tutti .ace_support.ace_function{color:#D71707;}
.ace-espresso-tutti .ace_support.ace_type{color:#0B51A6;}
.ace-espresso-tutti .ace_storage{color:#2F6F9F;
background-color:#F4FAFF;}
.ace-espresso-tutti .ace_invalid{color:#F9F2CE;
background-color:#F93232;}
.ace-espresso-tutti .ace_string{color:#73B00A;
background-color:#FFFFFF;}
.ace-espresso-tutti .ace_comment{color:#AAAAAA;}
.ace-espresso-tutti .ace_variable{color:#7B8C4D;}
.ace-espresso-tutti .ace_meta.ace_tag{color:#4F9EEB;}
.ace-espresso-tutti .ace_entity.ace_other.ace_attribute-name{color:#4F9FCF;}
.ace-espresso-tutti .ace_entity.ace_name.ace_function{color:#3A1D72;}
.ace-espresso-tutti .ace_entity.ace_name{color:#D44950;}
.ace-espresso-tutti .ace_entity.ace_name.ace_tag{color:#2F6F9F;
background-color:#F5FAFF;}
`;
ace.define("ace/theme/espresso-tutti-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/espresso-tutti", ["require", "exports", "module", "ace/theme/espresso-tutti-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-espresso-tutti";
exports.cssText = require("./espresso-tutti-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,103 @@
import * as ace from "ace-builds";
const cssText = `
.ace-espresso .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-espresso .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-espresso {
background-color: #FFFFFF;
color: #000000;
}
.ace-espresso .ace_cursor {
color: #000000;
}
.ace-espresso .ace_marker-layer .ace_selection {
background: #80C7FF;
}
.ace-espresso.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-espresso .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-espresso .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-espresso .ace_marker-layer .ace_active-line {
background: #C1E2F8;
}
.ace-espresso .ace_gutter-active-line {
background-color: #C1E2F8;
}
.ace-espresso .ace_marker-layer .ace_selected-word {
border: 1px solid #80C7FF;
}
.ace-espresso .ace_fold {
background-color: #4F9FD0;
border-color: #000000;
}
.ace-espresso .ace_keyword{font-weight:bold;
color:#2F6F9F;
background-color:#F5FAFF;}
.ace-espresso .ace_constant{font-weight:bold;
color:#CF4F5F;}
.ace-espresso .ace_constant.ace_language{font-weight:bold;
color:#0B51A6;}
.ace-espresso .ace_constant.ace_numeric{font-weight:bold;
color:#CF4F5F;}
.ace-espresso .ace_constant.ace_character.ace_escape{color:#000000;
background-color:#FFF0F0;}
.ace-espresso .ace_support{font-weight:bold;
color:#2F6F9F;}
.ace-espresso .ace_support.ace_function{font-weight:bold;
color:#D71707;}
.ace-espresso .ace_support.ace_type{color:#0B51A6;}
.ace-espresso .ace_storage{font-weight:bold;
color:#2F6F9F;
background-color:#F5FAFF;}
.ace-espresso .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-espresso .ace_string{color:#CF4F5F;
background-color:#FFF0F0;}
.ace-espresso .ace_comment{font-style:italic;
color:#AAAAAA;}
.ace-espresso .ace_variable{font-weight:bold;
color:#000000;}
.ace-espresso .ace_meta.ace_tag{color:#000000;}
.ace-espresso .ace_entity.ace_other.ace_attribute-name{font-style:italic;
color:#4F9FD0;}
.ace-espresso .ace_entity.ace_name.ace_function{color:#4F9FD0;}
.ace-espresso .ace_entity.ace_name{color:#CF4F5F;}
.ace-espresso .ace_entity.ace_name.ace_tag{color:#2F6F9F;
background-color:#F5FAFF;}
`;
ace.define("ace/theme/espresso-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/espresso", ["require", "exports", "module", "ace/theme/espresso-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-espresso";
exports.cssText = require("./espresso-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,84 @@
import * as ace from "ace-builds";
const cssText = `
.ace-fade-to-grey .ace_gutter {
background: #000000;
color: rgb(128, 128, 128);
}
.ace-fade-to-grey .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-fade-to-grey {
background-color: #000000;
color: #FFFFFF;
}
.ace-fade-to-grey .ace_cursor {
color: #FFFFFF;
}
.ace-fade-to-grey .ace_marker-layer .ace_selection {
background: rgba(74, 140, 219, 0.70);
}
.ace-fade-to-grey.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-fade-to-grey .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-fade-to-grey .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-fade-to-grey .ace_marker-layer .ace_active-line {
background: rgba(58, 58, 0, 0.48);
}
.ace-fade-to-grey .ace_gutter-active-line {
background-color: rgba(58, 58, 0, 0.48);
}
.ace-fade-to-grey .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(74, 140, 219, 0.70);
}
.ace-fade-to-grey .ace_fold {
background-color: #AAAAAA;
border-color: #FFFFFF;
}
.ace-fade-to-grey .ace_keyword{color:#D01D33;}
.ace-fade-to-grey .ace_constant{color:#96DAFF;}
.ace-fade-to-grey .ace_support.ace_function{color:#CBC3B1;}
.ace-fade-to-grey .ace_support.ace_class{font-weight:bold;
color:#FFC074;}
.ace-fade-to-grey .ace_storage{color:#3185B9;}
.ace-fade-to-grey .ace_string{color:#E3E658;}
.ace-fade-to-grey .ace_string.ace_regexp{color:#D8E600;}
.ace-fade-to-grey .ace_comment{color:#696854;}
.ace-fade-to-grey .ace_variable{font-weight:bold;
color:#898989;}
.ace-fade-to-grey .ace_variable.ace_parameter{color:#C3C3C3;}
.ace-fade-to-grey .ace_meta.ace_tag{color:#3E3E3E;}
.ace-fade-to-grey .ace_entity.ace_other.ace_attribute-name{color:#A1A1A1;}
.ace-fade-to-grey .ace_entity.ace_name.ace_function{color:#AAAAAA;}
`;
ace.define("ace/theme/fade-to-grey-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/fade-to-grey", ["require", "exports", "module", "ace/theme/fade-to-grey-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-fade-to-grey";
exports.cssText = require("./fade-to-grey-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,91 @@
import * as ace from "ace-builds";
const cssText = `
.ace-fake .ace_gutter {
background: #010304;
color: rgb(128, 120, 101);
}
.ace-fake .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-fake {
background-color: #010304;
color: #FFEDC5;
}
.ace-fake .ace_cursor {
color: #A7A7A7;
}
.ace-fake .ace_marker-layer .ace_selection {
background: rgba(221, 240, 255, 0.20);
}
.ace-fake.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #010304;
border-radius: 2px;
}
.ace-fake .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-fake .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(202, 226, 251, 0.24);
}
.ace-fake .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.051);
}
.ace-fake .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.051);
}
.ace-fake .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(221, 240, 255, 0.20);
}
.ace-fake .ace_fold {
background-color: bold;
border-color: #FFEDC5;
}
.ace-fake .ace_keyword{font-weight:bold;
color:#FF4A1A;}
.ace-fake .ace_constant{color:#FF4A1A;}
.ace-fake .ace_support{color:#FF4A1A;}
.ace-fake .ace_support.ace_function{color:#DAD085;}
.ace-fake .ace_support.ace_constant{color:#CF6A4C;}
.ace-fake .ace_storage{color:#B4CCE4;}
.ace-fake .ace_invalid.ace_illegal{color:#FD5FF1;
background-color:rgba(86, 45, 86, 0.75);}
.ace-fake .ace_invalid.ace_deprecated{text-decoration:underline;
font-style:italic;
color:#FD5FF1;}
.ace-fake .ace_string{color:#FF9924;}
.ace-fake .ace_string.ace_regexp{color:#E9C062;}
.ace-fake .ace_comment{font-style:italic;
font-weight:bold;
color:#8E8D93;}
.ace-fake .ace_variable{color:#FF4A1A;}
.ace-fake .ace_meta.ace_tag{color:#89BDFF;}
.ace-fake .ace_markup.ace_heading{color:#FEDCC5;
background-color:#632D04;}
.ace-fake .ace_markup.ace_list{color:#E1D4B9;}
`;
ace.define("ace/theme/fake-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/fake", ["require", "exports", "module", "ace/theme/fake-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-fake";
exports.cssText = require("./fake-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,104 @@
import * as ace from "ace-builds";
const cssText = `
.ace-fluidvision .ace_gutter {
background: rgba(244, 244, 244, 0.95);
color: rgb(122, 122, 122);
}
.ace-fluidvision .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-fluidvision {
background-color: rgba(244, 244, 244, 0.95);
color: #000000;
}
.ace-fluidvision .ace_cursor {
color: #000000;
}
.ace-fluidvision .ace_marker-layer .ace_selection {
background: #FFD793;
}
.ace-fluidvision.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(244, 244, 244, 0.95);
border-radius: 2px;
}
.ace-fluidvision .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-fluidvision .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-fluidvision .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-fluidvision .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-fluidvision .ace_marker-layer .ace_selected-word {
border: 1px solid #FFD793;
}
.ace-fluidvision .ace_fold {
background-color: bold;
border-color: #000000;
}
.ace-fluidvision .ace_keyword{font-weight:bold;
color:#5B91E1;}
.ace-fluidvision .ace_constant{font-style:italic;
color:#C5060B;}
.ace-fluidvision .ace_constant.ace_language{font-style:italic;
color:#585CF6;}
.ace-fluidvision .ace_constant.ace_numeric{font-weight:bold;
color:#C34F0A;}
.ace-fluidvision .ace_constant.ace_character.ace_escape{color:#26B31A;}
.ace-fluidvision .ace_support.ace_function{font-weight:bold;
color:#3C4C72;}
.ace-fluidvision .ace_support.ace_constant{font-weight:bold;
color:#619A1C;}
.ace-fluidvision .ace_support.ace_class{font-weight:bold;
color:#2D5579;}
.ace-fluidvision .ace_support.ace_type{font-weight:bold;
color:#2D5579;}
.ace-fluidvision .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-fluidvision .ace_string{color:#840E0B;}
.ace-fluidvision .ace_comment{color:#386F90;
background-color:rgba(221, 238, 254, 0.95);}
.ace-fluidvision .ace_variable{font-style:italic;
color:#20498D;}
.ace-fluidvision .ace_variable.ace_parameter{font-style:italic;}
.ace-fluidvision .ace_meta.ace_tag{color:#1C3981;}
.ace-fluidvision .ace_entity.ace_other.ace_attribute-name{font-style:italic;
color:#000000;}
.ace-fluidvision .ace_entity.ace_name.ace_function{font-weight:bold;
color:#1B4B9D;}
.ace-fluidvision .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#001D56;}
.ace-fluidvision .ace_markup.ace_heading{font-weight:bold;
color:#0C07FF;}
.ace-fluidvision .ace_markup.ace_list{color:#B90690;}
`;
ace.define("ace/theme/fluidvision-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/fluidvision", ["require", "exports", "module", "ace/theme/fluidvision-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-fluidvision";
exports.cssText = require("./fluidvision-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,80 @@
import * as ace from "ace-builds";
const cssText = `
.ace-forlatex .ace_gutter {
background: rgba(0, 0, 0, 0.78);
color: rgb(51, 102, 128);
}
.ace-forlatex .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-forlatex {
background-color: rgba(0, 0, 0, 0.78);
color: #66CCFF;
}
.ace-forlatex .ace_cursor {
color: #FF8000;
}
.ace-forlatex .ace_marker-layer .ace_selection {
background: #BAD6FD;
}
.ace-forlatex.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.78);
border-radius: 2px;
}
.ace-forlatex .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-forlatex .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-forlatex .ace_marker-layer .ace_active-line {
background: #7F7F7F;
}
.ace-forlatex .ace_gutter-active-line {
background-color: #7F7F7F;
}
.ace-forlatex .ace_marker-layer .ace_selected-word {
border: 1px solid #BAD6FD;
}
.ace-forlatex .ace_fold {
background-color: #999999;
border-color: #66CCFF;
}
.ace-forlatex .ace_keyword{color:#999999;}
.ace-forlatex .ace_constant.ace_character{color:#FFFF00;}
.ace-forlatex .ace_constant.ace_other{color:#FFFF00;}
.ace-forlatex .ace_support.ace_function{color:#FFCC66;}
.ace-forlatex .ace_support.ace_constant{color:#FF0000;}
.ace-forlatex .ace_support.ace_class{color:#FFFFFF;}
.ace-forlatex .ace_support.ace_type{color:#FFFFFF;}
.ace-forlatex .ace_string{color:#FF66FF;}
.ace-forlatex .ace_comment{font-style:italic;
color:#66FF66;}
.ace-forlatex .ace_variable.ace_parameter{color:#FF0080;}
`;
ace.define("ace/theme/forlatex-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/forlatex", ["require", "exports", "module", "ace/theme/forlatex-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-forlatex";
exports.cssText = require("./forlatex-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,94 @@
import * as ace from "ace-builds";
const cssText = `
.ace-freckle-mod1 .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-freckle-mod1 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-freckle-mod1 {
background-color: #FFFFFF;
color: #000000;
}
.ace-freckle-mod1 .ace_cursor {
color: #3592A8;
}
.ace-freckle-mod1 .ace_marker-layer .ace_selection {
background: #ABD9E2;
}
.ace-freckle-mod1.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-freckle-mod1 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-freckle-mod1 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-freckle-mod1 .ace_marker-layer .ace_active-line {
background: #333435;
}
.ace-freckle-mod1 .ace_gutter-active-line {
background-color: #333435;
}
.ace-freckle-mod1 .ace_marker-layer .ace_selected-word {
border: 1px solid #ABD9E2;
}
.ace-freckle-mod1 .ace_fold {
background-color: bold;
border-color: #000000;
}
.ace-freckle-mod1 .ace_keyword{color:#E84480;}
.ace-freckle-mod1 .ace_constant{color:#3592A8;
background-color:#A7D9E2;}
.ace-freckle-mod1 .ace_constant.ace_language{color:#34B9D6;}
.ace-freckle-mod1 .ace_constant.ace_numeric{color:#3A3B38;}
.ace-freckle-mod1 .ace_constant.ace_character.ace_escape{color:#666961;}
.ace-freckle-mod1 .ace_support.ace_function{color:#E84480;}
.ace-freckle-mod1 .ace_support.ace_constant{color:#7ABC08;}
.ace-freckle-mod1 .ace_support.ace_type{color:#3592A8;}
.ace-freckle-mod1 .ace_storage{color:#E84480;}
.ace-freckle-mod1 .ace_invalid{color:#FFFFFF;
background-color:#FC1768;}
.ace-freckle-mod1 .ace_string{color:#666961;
background-color:#D4F09A;}
.ace-freckle-mod1 .ace_comment{font-style:italic;
color:#797C74;}
.ace-freckle-mod1 .ace_variable{font-weight:bold;
color:#3592A8;}
.ace-freckle-mod1 .ace_variable.ace_language{color:#3592A8;}
.ace-freckle-mod1 .ace_meta.ace_tag{color:#34B9D6;}
.ace-freckle-mod1 .ace_entity.ace_other.ace_attribute-name{color:#34B9D6;}
.ace-freckle-mod1 .ace_entity.ace_name.ace_function{font-weight:bold;
color:#3592A8;}
.ace-freckle-mod1 .ace_entity.ace_name{color:#34B9D6;}
.ace-freckle-mod1 .ace_entity.ace_name.ace_tag{color:#34B9D6;}
`;
ace.define("ace/theme/freckle-mod1-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/freckle-mod1", ["require", "exports", "module", "ace/theme/freckle-mod1-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-freckle-mod1";
exports.cssText = require("./freckle-mod1-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,94 @@
import * as ace from "ace-builds";
const cssText = `
.ace-freckle-mod2 .ace_gutter {
background: rgba(255, 255, 255, 0.94);
color: rgb(128, 128, 128);
}
.ace-freckle-mod2 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-freckle-mod2 {
background-color: rgba(255, 255, 255, 0.94);
color: #000000;
}
.ace-freckle-mod2 .ace_cursor {
color: #3592A8;
}
.ace-freckle-mod2 .ace_marker-layer .ace_selection {
background: #ABD9E2;
}
.ace-freckle-mod2.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(255, 255, 255, 0.94);
border-radius: 2px;
}
.ace-freckle-mod2 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-freckle-mod2 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-freckle-mod2 .ace_marker-layer .ace_active-line {
background: #B4B8BC;
}
.ace-freckle-mod2 .ace_gutter-active-line {
background-color: #B4B8BC;
}
.ace-freckle-mod2 .ace_marker-layer .ace_selected-word {
border: 1px solid #ABD9E2;
}
.ace-freckle-mod2 .ace_fold {
background-color: bold;
border-color: #000000;
}
.ace-freckle-mod2 .ace_keyword{color:#E84480;}
.ace-freckle-mod2 .ace_constant{color:#3592A8;
background-color:#A7D9E2;}
.ace-freckle-mod2 .ace_constant.ace_language{color:#34B9D6;}
.ace-freckle-mod2 .ace_constant.ace_numeric{color:#3A3B38;}
.ace-freckle-mod2 .ace_constant.ace_character.ace_escape{color:#666961;}
.ace-freckle-mod2 .ace_support.ace_function{color:#E84480;}
.ace-freckle-mod2 .ace_support.ace_constant{color:#7ABC08;}
.ace-freckle-mod2 .ace_support.ace_type{color:#3592A8;}
.ace-freckle-mod2 .ace_storage{color:#E84480;}
.ace-freckle-mod2 .ace_invalid{color:#FFFFFF;
background-color:#FC1768;}
.ace-freckle-mod2 .ace_string{color:#666961;
background-color:#D4F09A;}
.ace-freckle-mod2 .ace_comment{font-style:italic;
color:#797C74;}
.ace-freckle-mod2 .ace_variable{font-weight:bold;
color:#3592A8;}
.ace-freckle-mod2 .ace_variable.ace_language{color:#3592A8;}
.ace-freckle-mod2 .ace_meta.ace_tag{color:#34B9D6;}
.ace-freckle-mod2 .ace_entity.ace_other.ace_attribute-name{color:#34B9D6;}
.ace-freckle-mod2 .ace_entity.ace_name.ace_function{font-weight:bold;
color:#3592A8;}
.ace-freckle-mod2 .ace_entity.ace_name{color:#34B9D6;}
.ace-freckle-mod2 .ace_entity.ace_name.ace_tag{color:#34B9D6;}
`;
ace.define("ace/theme/freckle-mod2-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/freckle-mod2", ["require", "exports", "module", "ace/theme/freckle-mod2-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-freckle-mod2";
exports.cssText = require("./freckle-mod2-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,94 @@
import * as ace from "ace-builds";
const cssText = `
.ace-freckle .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-freckle .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-freckle {
background-color: #FFFFFF;
color: #000000;
}
.ace-freckle .ace_cursor {
color: #3592A8;
}
.ace-freckle .ace_marker-layer .ace_selection {
background: #ABD9E2;
}
.ace-freckle.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-freckle .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-freckle .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-freckle .ace_marker-layer .ace_active-line {
background: #333435;
}
.ace-freckle .ace_gutter-active-line {
background-color: #333435;
}
.ace-freckle .ace_marker-layer .ace_selected-word {
border: 1px solid #ABD9E2;
}
.ace-freckle .ace_fold {
background-color: bold;
border-color: #000000;
}
.ace-freckle .ace_keyword{color:#E84480;}
.ace-freckle .ace_constant{color:#3592A8;
background-color:#A7D9E2;}
.ace-freckle .ace_constant.ace_language{color:#34B9D6;}
.ace-freckle .ace_constant.ace_numeric{color:#3A3B38;}
.ace-freckle .ace_constant.ace_character.ace_escape{color:#666961;}
.ace-freckle .ace_support.ace_function{color:#E84480;}
.ace-freckle .ace_support.ace_constant{color:#7ABC08;}
.ace-freckle .ace_support.ace_type{color:#3592A8;}
.ace-freckle .ace_storage{color:#E84480;}
.ace-freckle .ace_invalid{color:#FFFFFF;
background-color:#FC1768;}
.ace-freckle .ace_string{color:#666961;
background-color:#D4F09A;}
.ace-freckle .ace_comment{font-style:italic;
color:#797C74;}
.ace-freckle .ace_variable{font-weight:bold;
color:#3592A8;}
.ace-freckle .ace_variable.ace_language{color:#3592A8;}
.ace-freckle .ace_meta.ace_tag{color:#34B9D6;}
.ace-freckle .ace_entity.ace_other.ace_attribute-name{color:#34B9D6;}
.ace-freckle .ace_entity.ace_name.ace_function{font-weight:bold;
color:#3592A8;}
.ace-freckle .ace_entity.ace_name{color:#34B9D6;}
.ace-freckle .ace_entity.ace_name.ace_tag{color:#34B9D6;}
`;
ace.define("ace/theme/freckle-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/freckle", ["require", "exports", "module", "ace/theme/freckle-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-freckle";
exports.cssText = require("./freckle-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,83 @@
import * as ace from "ace-builds";
const cssText = `
.ace-friendship-bracelet .ace_gutter {
background: #1F1F1F;
color: rgb(136, 136, 136);
}
.ace-friendship-bracelet .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-friendship-bracelet {
background-color: #1F1F1F;
color: #F1F1F1;
}
.ace-friendship-bracelet .ace_cursor {
color: #FFFFFF;
}
.ace-friendship-bracelet .ace_marker-layer .ace_selection {
background: rgba(115, 89, 126, 0.88);
}
.ace-friendship-bracelet.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #1F1F1F;
border-radius: 2px;
}
.ace-friendship-bracelet .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-friendship-bracelet .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #404040;
}
.ace-friendship-bracelet .ace_marker-layer .ace_active-line {
background: #404040;
}
.ace-friendship-bracelet .ace_gutter-active-line {
background-color: #404040;
}
.ace-friendship-bracelet .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(115, 89, 126, 0.88);
}
.ace-friendship-bracelet .ace_fold {
background-color: #389AD9;
border-color: #F1F1F1;
}
.ace-friendship-bracelet .ace_keyword{color:#FF8C56;}
.ace-friendship-bracelet .ace_constant{color:#389AD9;}
.ace-friendship-bracelet .ace_support.ace_function{color:#FF6666;}
.ace-friendship-bracelet .ace_string{color:#F3F99A;}
.ace-friendship-bracelet .ace_string.ace_regexp{color:#ECF5A7;}
.ace-friendship-bracelet .ace_comment{color:#8A8988;}
.ace-friendship-bracelet .ace_variable{color:#389AD9;}
.ace-friendship-bracelet .ace_variable.ace_language{color:#D4312C;}
.ace-friendship-bracelet .ace_variable.ace_parameter{font-style:italic;}
.ace-friendship-bracelet .ace_meta.ace_tag{color:#389AD9;}
.ace-friendship-bracelet .ace_entity.ace_other.ace_attribute-name{font-style:italic;
color:#389AD9;}
.ace-friendship-bracelet .ace_entity.ace_name.ace_function{color:#389AD9;}
.ace-friendship-bracelet .ace_entity.ace_name.ace_tag{color:#FC8C56;}
`;
ace.define("ace/theme/friendship-bracelet-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/friendship-bracelet", ["require", "exports", "module", "ace/theme/friendship-bracelet-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-friendship-bracelet";
exports.cssText = require("./friendship-bracelet-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-funky-dashboard .ace_gutter {
background: rgba(0, 0, 0, 0.85);
color: rgb(102, 102, 102);
}
.ace-funky-dashboard .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-funky-dashboard {
background-color: rgba(0, 0, 0, 0.85);
color: #CCCCCC;
}
.ace-funky-dashboard .ace_cursor {
color: #CC66FF;
}
.ace-funky-dashboard .ace_marker-layer .ace_selection {
background: rgba(51, 51, 51, 0.75);
}
.ace-funky-dashboard.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.85);
border-radius: 2px;
}
.ace-funky-dashboard .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-funky-dashboard .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(179, 179, 179, 0.96);
}
.ace-funky-dashboard .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.10);
}
.ace-funky-dashboard .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.10);
}
.ace-funky-dashboard .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(51, 51, 51, 0.75);
}
.ace-funky-dashboard .ace_fold {
background-color: #FFCC66;
border-color: #CCCCCC;
}
.ace-funky-dashboard .ace_keyword{color:#6666FF;}
.ace-funky-dashboard .ace_constant{color:#6782D3;}
.ace-funky-dashboard .ace_constant.ace_language{color:#FF66FF;}
.ace-funky-dashboard .ace_constant.ace_numeric{color:#FF6666;}
.ace-funky-dashboard .ace_support{font-weight:bold;
color:#6666FF;}
.ace-funky-dashboard .ace_support.ace_constant{color:#6782D3;}
.ace-funky-dashboard .ace_storage{font-weight:bold;
color:#CCCCCC;}
.ace-funky-dashboard .ace_invalid{color:#FF0080;
background-color:rgba(231, 26, 17, 0.30);}
.ace-funky-dashboard .ace_string{color:#66FF66;}
.ace-funky-dashboard .ace_string.ace_regexp{color:#66FFFF;}
.ace-funky-dashboard .ace_comment{font-style:italic;
color:#666666;}
.ace-funky-dashboard .ace_variable{color:#FFCC66;}
.ace-funky-dashboard .ace_variable.ace_parameter{font-style:italic;
color:#CCCCCC;}
.ace-funky-dashboard .ace_meta.ace_tag{color:#6666FF;}
.ace-funky-dashboard .ace_entity.ace_other.ace_attribute-name{font-style:italic;
color:#3366CC;}
.ace-funky-dashboard .ace_entity.ace_name.ace_function{color:#FFCC66;}
.ace-funky-dashboard .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#CCCCCC;}
`;
ace.define("ace/theme/funky_dashboard-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/funky_dashboard", ["require", "exports", "module", "ace/theme/funky_dashboard-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-funky-dashboard";
exports.cssText = require("./funky_dashboard-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,86 @@
import * as ace from "ace-builds";
const cssText = `
.ace-glitterbomb .ace_gutter {
background: #0B0A0A;
color: rgb(109, 109, 109);
}
.ace-glitterbomb .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-glitterbomb {
background-color: #0B0A0A;
color: #CFCFCF;
}
.ace-glitterbomb .ace_cursor {
color: #E2E9FF;
}
.ace-glitterbomb .ace_marker-layer .ace_selection {
background: rgba(255, 255, 255, 0.35);
}
.ace-glitterbomb.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #0B0A0A;
border-radius: 2px;
}
.ace-glitterbomb .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-glitterbomb .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #484848;
}
.ace-glitterbomb .ace_marker-layer .ace_active-line {
background: #F8F8F8;
}
.ace-glitterbomb .ace_gutter-active-line {
background-color: #F8F8F8;
}
.ace-glitterbomb .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(255, 255, 255, 0.35);
}
.ace-glitterbomb .ace_fold {
background-color: bold;
border-color: #CFCFCF;
}
.ace-glitterbomb .ace_keyword{font-weight:bold;
color:#DBB800;}
.ace-glitterbomb .ace_keyword.ace_operator{color:#988155;}
.ace-glitterbomb .ace_constant{color:#C0A368;}
.ace-glitterbomb .ace_constant.ace_numeric{color:#D3C788;}
.ace-glitterbomb .ace_support{color:#7D6C55;}
.ace-glitterbomb .ace_support.ace_function{color:#935E29;}
.ace-glitterbomb .ace_support.ace_constant{color:#EBAC47;}
.ace-glitterbomb .ace_storage{color:#F6F080;}
.ace-glitterbomb .ace_invalid{color:#F8F8F8;
background-color:rgba(216, 41, 13, 0.75);}
.ace-glitterbomb .ace_string{color:#4D6537;}
.ace-glitterbomb .ace_string.ace_regexp{color:#364627;}
.ace-glitterbomb .ace_comment{font-style:italic;
color:#44444E;}
.ace-glitterbomb .ace_variable{color:#AE5251;}
.ace-glitterbomb .ace_meta.ace_tag{color:#AAD7EF;}
`;
ace.define("ace/theme/glitterbomb-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/glitterbomb", ["require", "exports", "module", "ace/theme/glitterbomb-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-glitterbomb";
exports.cssText = require("./glitterbomb-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

109
src/service/themes/glow.ts Normal file
View file

@ -0,0 +1,109 @@
import * as ace from "ace-builds";
const cssText = `
.ace-glow .ace_gutter {
background: #000000;
color: rgb(102, 102, 102);
}
.ace-glow .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-glow {
background-color: #000000;
color: #CCCCCC;
}
.ace-glow .ace_cursor {
color: #FFFFFF;
}
.ace-glow .ace_marker-layer .ace_selection {
background: rgba(255, 255, 255, 0.20);
}
.ace-glow.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-glow .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-glow .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #808080;
}
.ace-glow .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 255, 0.10);
}
.ace-glow .ace_gutter-active-line {
background-color: rgba(255, 255, 255, 0.10);
}
.ace-glow .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(255, 255, 255, 0.20);
}
.ace-glow .ace_fold {
background-color: underline;
border-color: #CCCCCC;
}
.ace-glow .ace_keyword{font-weight:bold;
color:#FFFFFF;}
.ace-glow .ace_constant.ace_language{font-weight:bold;
color:#D0D071;}
.ace-glow .ace_constant.ace_numeric{font-weight:bold;
color:#7FD049;}
.ace-glow .ace_constant.ace_character{font-weight:bold;
color:#7FD049;}
.ace-glow .ace_constant.ace_character.ace_escape{font-weight:bold;
color:#7FD049;
background-color:#29311D;}
.ace-glow .ace_constant.ace_other{color:#7FD049;
background-color:#12140E;}
.ace-glow .ace_support.ace_function{text-decoration:underline;
font-weight:bold;}
.ace-glow .ace_support.ace_constant{color:#D0D071;
background-color:#13130F;}
.ace-glow .ace_support.ace_class{font-weight:bold;
color:#EB78BD;}
.ace-glow .ace_support.ace_type{font-weight:bold;
color:#74ACCF;}
.ace-glow .ace_storage.ace_type{font-weight:bold;
color:#74ACCF;}
.ace-glow .ace_invalid{font-style:italic;
font-weight:bold;
color:#CB4343;
background-color:#321B1B;}
.ace-glow .ace_string{color:#7FD049;
background-color:#12140E;}
.ace-glow .ace_comment{font-style:italic;
color:#808080;}
.ace-glow .ace_variable{text-decoration:underline;
font-weight:bold;}
.ace-glow .ace_variable.ace_language{font-weight:bold;}
.ace-glow .ace_entity.ace_other.ace_attribute-name{color:#74ACCF;
background-color:#0E1314;}
.ace-glow .ace_entity.ace_name.ace_function{text-decoration:underline;
font-weight:bold;}
.ace-glow .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#FFFFFF;}
`;
ace.define("ace/theme/glow-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/glow", ["require", "exports", "module", "ace/theme/glow-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-glow";
exports.cssText = require("./glow-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,129 @@
import * as ace from "ace-builds";
const cssText = `
.ace-happy-happy-joy-joy-2 .ace_gutter {
background: #E5E5E5;
color: rgb(136, 136, 136);
}
.ace-happy-happy-joy-joy-2 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-happy-happy-joy-joy-2 {
background-color: #E5E5E5;
color: #2A2A2A;
}
.ace-happy-happy-joy-joy-2 .ace_cursor {
color: #000000;
}
.ace-happy-happy-joy-joy-2 .ace_marker-layer .ace_selection {
background: rgba(240, 201, 54, 0.50);
}
.ace-happy-happy-joy-joy-2.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #E5E5E5;
border-radius: 2px;
}
.ace-happy-happy-joy-joy-2 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-happy-happy-joy-joy-2 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BBAEFF;
}
.ace-happy-happy-joy-joy-2 .ace_marker-layer .ace_active-line {
background: rgba(242, 248, 254, 0.45);
}
.ace-happy-happy-joy-joy-2 .ace_gutter-active-line {
background-color: rgba(242, 248, 254, 0.45);
}
.ace-happy-happy-joy-joy-2 .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(240, 201, 54, 0.50);
}
.ace-happy-happy-joy-joy-2 .ace_fold {
background-color: underline;
border-color: #2A2A2A;
}
.ace-happy-happy-joy-joy-2 .ace_keyword.ace_operator{color:#2060A0;}
.ace-happy-happy-joy-joy-2 .ace_keyword.ace_other.ace_unit{color:#3C8F93;}
.ace-happy-happy-joy-joy-2 .ace_constant{text-decoration:underline;
font-weight:bold;
color:#E12B1F;}
.ace-happy-happy-joy-joy-2 .ace_constant.ace_language{text-decoration:underline;
font-weight:bold;
color:#376FC3;}
.ace-happy-happy-joy-joy-2 .ace_constant.ace_numeric{text-decoration:underline;
font-weight:bold;
color:#4F9B00;}
.ace-happy-happy-joy-joy-2 .ace_constant.ace_character{text-decoration:underline;
font-weight:bold;
color:#AE81FF;}
.ace-happy-happy-joy-joy-2 .ace_constant.ace_character.ace_escape{font-weight:bold;
color:#000000;
background-color:rgba(251, 0, 22, 0.50);}
.ace-happy-happy-joy-joy-2 .ace_constant.ace_character.ace_entity{text-decoration:underline;
font-weight:bold;
color:#2A9A66;}
.ace-happy-happy-joy-joy-2 .ace_support.ace_function{font-weight:bold;}
.ace-happy-happy-joy-joy-2 .ace_support.ace_constant{text-decoration:underline;
font-weight:bold;
color:#E12B1F;}
.ace-happy-happy-joy-joy-2 .ace_support.ace_class{font-weight:bold;
color:#2970CA;}
.ace-happy-happy-joy-joy-2 .ace_support.ace_type{color:#A08000;}
.ace-happy-happy-joy-joy-2 .ace_storage.ace_type{color:#A08000;}
.ace-happy-happy-joy-joy-2 .ace_invalid{font-weight:bold;
color:#FFFFFF;
background-color:#990000;}
.ace-happy-happy-joy-joy-2 .ace_invalid.ace_illegal{font-weight:bold;
color:#FFFFFF;
background-color:#562D56;}
.ace-happy-happy-joy-joy-2 .ace_invalid.ace_deprecated{font-weight:bold;
color:#5B62B5;
background-color:#AE81FF;}
.ace-happy-happy-joy-joy-2 .ace_string{font-style:italic;
font-weight:bold;
color:#901A12;
background-color:#DFC8C7;}
.ace-happy-happy-joy-joy-2 .ace_string.ace_regexp{font-style:italic;
font-weight:bold;
color:#FFFFFF;
background-color:#CC3E37;}
.ace-happy-happy-joy-joy-2 .ace_comment{font-style:italic;
color:#858B7C;}
.ace-happy-happy-joy-joy-2 .ace_variable{font-weight:bold;
color:#54AC3B;}
.ace-happy-happy-joy-joy-2 .ace_entity.ace_other.ace_attribute-name{text-decoration:underline;
color:#D2261B;}
.ace-happy-happy-joy-joy-2 .ace_entity.ace_name.ace_function{text-decoration:underline;
font-weight:bold;
color:#5C3566;}
.ace-happy-happy-joy-joy-2 .ace_entity.ace_name.ace_tag{text-decoration:underline;
font-weight:bold;
color:#519A58;}
.ace-happy-happy-joy-joy-2 .ace_markup.ace_heading{font-weight:bold;
color:#4266A0;}
.ace-happy-happy-joy-joy-2 .ace_markup.ace_list{color:#B90690;}
`;
ace.define("ace/theme/happy-happy-joy-joy-2-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/happy-happy-joy-joy-2", ["require", "exports", "module", "ace/theme/happy-happy-joy-joy-2-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-happy-happy-joy-joy-2";
exports.cssText = require("./happy-happy-joy-joy-2-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,81 @@
import * as ace from "ace-builds";
const cssText = `
.ace-happydeluxe .ace_gutter {
background: #0E131E;
color: rgb(135, 137, 143);
}
.ace-happydeluxe .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-happydeluxe {
background-color: #0E131E;
color: #FFFFFF;
}
.ace-happydeluxe .ace_cursor {
color: #FFFFFF;
}
.ace-happydeluxe .ace_marker-layer .ace_selection {
background: #15285A;
}
.ace-happydeluxe.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #0E131E;
border-radius: 2px;
}
.ace-happydeluxe .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-happydeluxe .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #646871;
}
.ace-happydeluxe .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.47);
}
.ace-happydeluxe .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.47);
}
.ace-happydeluxe .ace_marker-layer .ace_selected-word {
border: 1px solid #15285A;
}
.ace-happydeluxe .ace_fold {
background-color: #FE9006;
border-color: #FFFFFF;
}
.ace-happydeluxe .ace_keyword{color:#FE9006;}
.ace-happydeluxe .ace_constant.ace_language{color:#14DED1;}
.ace-happydeluxe .ace_support.ace_function{color:#14DED1;}
.ace-happydeluxe .ace_support.ace_constant{color:#14DED1;}
.ace-happydeluxe .ace_support.ace_class{color:#14DED1;}
.ace-happydeluxe .ace_support.ace_type{color:#14DED1;}
.ace-happydeluxe .ace_storage{color:#FE9006;}
.ace-happydeluxe .ace_invalid{color:#FC2D07;}
.ace-happydeluxe .ace_string{color:#FD66F9;}
.ace-happydeluxe .ace_comment{color:#35497C;}
.ace-happydeluxe .ace_variable.ace_language{color:#FFFFFF;}
.ace-happydeluxe .ace_entity.ace_name.ace_tag{color:#14DED1;}
`;
ace.define("ace/theme/happydeluxe-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/happydeluxe", ["require", "exports", "module", "ace/theme/happydeluxe-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-happydeluxe";
exports.cssText = require("./happydeluxe-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,102 @@
import * as ace from "ace-builds";
const cssText = `
.ace-heroku .ace_gutter {
background: #000000;
color: rgb(128, 128, 128);
}
.ace-heroku .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-heroku {
background-color: #000000;
color: #FFFFFF;
}
.ace-heroku .ace_cursor {
color: #E6E6E6;
}
.ace-heroku .ace_marker-layer .ace_selection {
background: rgba(200, 227, 245, 0.56);
}
.ace-heroku.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-heroku .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-heroku .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #524993;
}
.ace-heroku .ace_marker-layer .ace_active-line {
background: #181818;
}
.ace-heroku .ace_gutter-active-line {
background-color: #181818;
}
.ace-heroku .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(200, 227, 245, 0.56);
}
.ace-heroku .ace_fold {
background-color: #BEB8E7;
border-color: #FFFFFF;
}
.ace-heroku .ace_keyword{font-weight:bold;
color:#8B7AF7;}
.ace-heroku .ace_keyword.ace_operator{color:#EEEEEE;}
.ace-heroku .ace_constant{color:#54A5FF;}
.ace-heroku .ace_constant.ace_language{color:#FF6C60;}
.ace-heroku .ace_constant.ace_numeric{color:#FF73FD;}
.ace-heroku .ace_constant.ace_character.ace_escape{color:#E2F6F2;}
.ace-heroku .ace_support.ace_function{color:#E1F5B1;}
.ace-heroku .ace_support.ace_constant{color:#B2D72C;}
.ace-heroku .ace_support.ace_class{font-weight:bold;
color:#FFF7B0;}
.ace-heroku .ace_support.ace_type{font-weight:bold;
color:#FFF7B0;}
.ace-heroku .ace_storage{font-weight:bold;
color:#8B7AF7;}
.ace-heroku .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-heroku .ace_string{color:#C5F610;}
.ace-heroku .ace_comment{font-style:italic;
font-weight:bold;
color:#626262;}
.ace-heroku .ace_variable{color:#54A5FF;}
.ace-heroku .ace_variable.ace_language{color:#FF6C60;}
.ace-heroku .ace_variable.ace_parameter{font-style:italic;}
.ace-heroku .ace_meta.ace_tag{font-style:italic;
font-weight:bold;
color:#8B7AF7;}
.ace-heroku .ace_entity.ace_other.ace_attribute-name{color:#E1F5B1;}
.ace-heroku .ace_entity.ace_name.ace_function{color:#BEB8E7;}
.ace-heroku .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#8B7AF7;}
.ace-heroku .ace_markup.ace_heading{color:#4266A0;}
.ace-heroku .ace_markup.ace_list{color:#B90690;}
`;
ace.define("ace/theme/heroku-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/heroku", ["require", "exports", "module", "ace/theme/heroku-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-heroku";
exports.cssText = require("./heroku-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,80 @@
import * as ace from "ace-builds";
const cssText = `
.ace-herokucodesamples .ace_gutter {
background: #39434B;
color: rgb(153, 158, 162);
}
.ace-herokucodesamples .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-herokucodesamples {
background-color: #39434B;
color: #F8F8F8;
}
.ace-herokucodesamples .ace_cursor {
color: #FFFFFF;
}
.ace-herokucodesamples .ace_marker-layer .ace_selection {
background: #A0CCFF;
}
.ace-herokucodesamples.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #39434B;
border-radius: 2px;
}
.ace-herokucodesamples .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-herokucodesamples .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-herokucodesamples .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-herokucodesamples .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-herokucodesamples .ace_marker-layer .ace_selected-word {
border: 1px solid #A0CCFF;
}
.ace-herokucodesamples .ace_fold {
background-color: #F7F7F7;
border-color: #F8F8F8;
}
.ace-herokucodesamples .ace_keyword{color:#FBDE2D;}
.ace-herokucodesamples .ace_constant.ace_language{color:#D8FA3C;}
.ace-herokucodesamples .ace_constant.ace_numeric{color:#D8FA3C;}
.ace-herokucodesamples .ace_constant.ace_character{color:#D8FA3C;}
.ace-herokucodesamples .ace_constant.ace_other{color:#D8FA3C;}
.ace-herokucodesamples .ace_string{color:#8DA6CE;}
.ace-herokucodesamples .ace_comment{color:#AEAEAE;}
.ace-herokucodesamples .ace_variable{color:#F7F7F7;}
.ace-herokucodesamples .ace_variable.ace_language{color:#D8FA3B;}
.ace-herokucodesamples .ace_variable.ace_parameter{color:#8DA6CE;}
.ace-herokucodesamples .ace_entity.ace_name.ace_function{color:#F7F7F7;}
`;
ace.define("ace/theme/herokucodesamples-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/herokucodesamples", ["require", "exports", "module", "ace/theme/herokucodesamples-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-herokucodesamples";
exports.cssText = require("./herokucodesamples-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,82 @@
import * as ace from "ace-builds";
const cssText = `
.ace-idle .ace_gutter {
background: #FFFFFF;
color: rgb(128, 128, 128);
}
.ace-idle .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-idle {
background-color: #FFFFFF;
color: #000000;
}
.ace-idle .ace_cursor {
color: #000000;
}
.ace-idle .ace_marker-layer .ace_selection {
background: #BAD6FD;
}
.ace-idle.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #FFFFFF;
border-radius: 2px;
}
.ace-idle .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-idle .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid #BFBFBF;
}
.ace-idle .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.071);
}
.ace-idle .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.071);
}
.ace-idle .ace_marker-layer .ace_selected-word {
border: 1px solid #BAD6FD;
}
.ace-idle .ace_fold {
background-color: #21439C;
border-color: #000000;
}
.ace-idle .ace_keyword{color:#FF5600;}
.ace-idle .ace_constant.ace_language{color:#A535AE;}
.ace-idle .ace_support.ace_function{color:#A535AE;}
.ace-idle .ace_support.ace_constant{color:#A535AE;}
.ace-idle .ace_support.ace_class{color:#A535AE;}
.ace-idle .ace_support.ace_type{color:#A535AE;}
.ace-idle .ace_storage{color:#FF5600;}
.ace-idle .ace_invalid{color:#FFFFFF;
background-color:#990000;}
.ace-idle .ace_string{color:#00A33F;}
.ace-idle .ace_comment{color:#919191;}
.ace-idle .ace_variable{color:#21439C;}
.ace-idle .ace_entity.ace_name.ace_function{color:#21439C;}
`;
ace.define("ace/theme/idle-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/idle", ["require", "exports", "module", "ace/theme/idle-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-idle";
exports.cssText = require("./idle-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,103 @@
import * as ace from "ace-builds";
const cssText = `
.ace-ilife-05 .ace_gutter {
background: rgba(255, 255, 255, 0.99);
color: rgb(153, 153, 153);
}
.ace-ilife-05 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-ilife-05 {
background-color: rgba(255, 255, 255, 0.99);
color: #333333;
}
.ace-ilife-05 .ace_cursor {
color: #A600F6;
}
.ace-ilife-05 .ace_marker-layer .ace_selection {
background: rgba(166, 0, 246, 0.25);
}
.ace-ilife-05.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(255, 255, 255, 0.99);
border-radius: 2px;
}
.ace-ilife-05 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-ilife-05 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(215, 106, 0, 0.30);
}
.ace-ilife-05 .ace_marker-layer .ace_active-line {
background: rgba(255, 255, 85, 0.10);
}
.ace-ilife-05 .ace_gutter-active-line {
background-color: rgba(255, 255, 85, 0.10);
}
.ace-ilife-05 .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(166, 0, 246, 0.25);
}
.ace-ilife-05 .ace_fold {
background-color: bold;
border-color: #333333;
}
.ace-ilife-05 .ace_keyword{font-weight:bold;
color:#000000;
background-color:rgba(252, 232, 236, 0.10);}
.ace-ilife-05 .ace_constant.ace_language{font-weight:bold;
color:#1C7A1F;}
.ace-ilife-05 .ace_constant.ace_numeric{font-weight:bold;
color:#69B200;}
.ace-ilife-05 .ace_constant.ace_character{color:#1C7A1F;
background-color:rgba(182, 212, 143, 0.15);}
.ace-ilife-05 .ace_constant.ace_other{color:#1C7A1F;
background-color:rgba(182, 212, 143, 0.15);}
.ace-ilife-05 .ace_support.ace_constant{color:#69B200;
background-color:rgba(182, 212, 143, 0.25);}
.ace-ilife-05 .ace_support.ace_class{color:#1C7A1F;
background-color:rgba(28, 122, 31, 0.051);}
.ace-ilife-05 .ace_storage{font-weight:bold;
color:#999999;
background-color:rgba(153, 153, 153, 0.10);}
.ace-ilife-05 .ace_string{color:#69B200;
background-color:rgba(255, 251, 188, 0.10);}
.ace-ilife-05 .ace_comment{font-style:italic;
color:#B35EED;
background-color:rgba(0, 0, 0, 0.031);}
.ace-ilife-05 .ace_variable{font-weight:bold;
color:#308095;}
.ace-ilife-05 .ace_variable.ace_language{font-weight:bold;
color:#308095;}
.ace-ilife-05 .ace_meta.ace_tag{color:#39A0BA;
background-color:rgba(57, 160, 186, 0.10);}
.ace-ilife-05 .ace_entity.ace_name.ace_function{font-weight:bold;
color:#FFFFFF;
background-color:#69B200;}
.ace-ilife-05 .ace_entity.ace_name.ace_tag{font-weight:bold;
color:#308095;}
`;
ace.define("ace/theme/ilife-05-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/ilife-05", ["require", "exports", "module", "ace/theme/ilife-05-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-ilife-05";
exports.cssText = require("./ilife-05-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,94 @@
import * as ace from "ace-builds";
const cssText = `
.ace-ilife-06 .ace_gutter {
background: rgba(255, 255, 255, 0.99);
color: rgb(153, 153, 153);
}
.ace-ilife-06 .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-ilife-06 {
background-color: rgba(255, 255, 255, 0.99);
color: #333333;
}
.ace-ilife-06 .ace_cursor {
color: #333333;
}
.ace-ilife-06 .ace_marker-layer .ace_selection {
background: rgba(255, 172, 227, 0.74);
}
.ace-ilife-06.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px rgba(255, 255, 255, 0.99);
border-radius: 2px;
}
.ace-ilife-06 .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-ilife-06 .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(215, 106, 0, 0.30);
}
.ace-ilife-06 .ace_marker-layer .ace_active-line {
background: rgba(199, 195, 162, 0.74);
}
.ace-ilife-06 .ace_gutter-active-line {
background-color: rgba(199, 195, 162, 0.74);
}
.ace-ilife-06 .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(255, 172, 227, 0.74);
}
.ace-ilife-06 .ace_fold {
background-color: #FFFFFF;
border-color: #333333;
}
.ace-ilife-06 .ace_keyword{color:#000000;
background-color:rgba(252, 232, 236, 0.10);}
.ace-ilife-06 .ace_constant.ace_language{color:#1C7A1F;}
.ace-ilife-06 .ace_constant.ace_numeric{color:#69B200;}
.ace-ilife-06 .ace_constant.ace_character{color:#1C7A1F;
background-color:rgba(182, 212, 143, 0.15);}
.ace-ilife-06 .ace_constant.ace_other{color:#1C7A1F;
background-color:rgba(182, 212, 143, 0.15);}
.ace-ilife-06 .ace_support.ace_constant{color:#69B200;
background-color:rgba(182, 212, 143, 0.25);}
.ace-ilife-06 .ace_support.ace_class{color:#1C7A1F;
background-color:rgba(28, 122, 31, 0.051);}
.ace-ilife-06 .ace_storage{color:#554B4B;
background-color:#FFFCD1;}
.ace-ilife-06 .ace_string{color:#69B200;
background-color:rgba(255, 251, 188, 0.10);}
.ace-ilife-06 .ace_comment{color:#FFFFFF;
background-color:#DE2B7F;}
.ace-ilife-06 .ace_variable{color:#308095;}
.ace-ilife-06 .ace_variable.ace_language{color:#308095;}
.ace-ilife-06 .ace_meta.ace_tag{color:#39A0BA;
background-color:rgba(57, 160, 186, 0.10);}
.ace-ilife-06 .ace_entity.ace_name.ace_function{color:#FFFFFF;
background-color:#69B200;}
.ace-ilife-06 .ace_entity.ace_name.ace_tag{color:#308095;}
`;
ace.define("ace/theme/ilife-06-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/ilife-06", ["require", "exports", "module", "ace/theme/ilife-06-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = false;
exports.cssClass = "ace-ilife-06";
exports.cssText = require("./ilife-06-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,91 @@
import * as ace from "ace-builds";
const cssText = `
.ace-imathis .ace_gutter {
background: #000000;
color: rgb(128, 128, 128);
}
.ace-imathis .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-imathis {
background-color: #000000;
color: #FFFFFF;
}
.ace-imathis .ace_cursor {
color: #ABABAB;
}
.ace-imathis .ace_marker-layer .ace_selection {
background: rgba(142, 186, 231, 0.65);
}
.ace-imathis.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #000000;
border-radius: 2px;
}
.ace-imathis .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-imathis .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(180, 180, 180, 0.62);
}
.ace-imathis .ace_marker-layer .ace_active-line {
background: rgba(186, 229, 28, 0.25);
}
.ace-imathis .ace_gutter-active-line {
background-color: rgba(186, 229, 28, 0.25);
}
.ace-imathis .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(142, 186, 231, 0.65);
}
.ace-imathis .ace_fold {
background-color: #6b72e6;
border-color: #FFFFFF;
}
.ace-imathis .ace_constant{color:#CD6839;}
.ace-imathis .ace_support{color:#104E8B;}
.ace-imathis .ace_support.ace_function{color:#E0D79A;}
.ace-imathis .ace_support.ace_constant{color:#CD643E;}
.ace-imathis .ace_storage{color:#A52A2A;}
.ace-imathis .ace_invalid.ace_illegal{color:#FD1224;
background-color:rgba(255, 6, 0, 0.15);}
.ace-imathis .ace_invalid.ace_deprecated{text-decoration:underline;
font-style:italic;
color:#FD1732;
background-color:rgba(232, 233, 232, 0.031);}
.ace-imathis .ace_string{color:#65B042;}
.ace-imathis .ace_string.ace_regexp{color:#417E00;
background-color:#C9D4BE;}
.ace-imathis .ace_comment{font-style:italic;
color:#BCBCBC;
background-color:rgba(220, 220, 220, 0.090);}
.ace-imathis .ace_variable{color:#549DE6;}
.ace-imathis .ace_meta.ace_tag{color:#51A2F9;}
.ace-imathis .ace_markup.ace_heading{color:#FEDCC5;
background-color:#632D04;}
.ace-imathis .ace_markup.ace_list{color:#8F5B26;}
`;
ace.define("ace/theme/imathis-css", ["require", "exports", "module"], function (require, exports, module) {
module.exports = cssText;
});
ace.define("ace/theme/imathis", ["require", "exports", "module", "ace/theme/imathis-css", "ace/lib/dom"], function (require, exports, module) {
exports.isDark = true;
exports.cssClass = "ace-imathis";
exports.cssText = require("./imathis-css");
const dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

Some files were not shown because too many files have changed in this diff Show more