Compare commits
12 Commits
v0.112.2-p
...
v0.107.2-p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df63290a32 | ||
|
|
6098f94dc1 | ||
|
|
6f4dee5b1d | ||
|
|
4ca2645a54 | ||
|
|
c41a3ec01b | ||
|
|
4edd0365a1 | ||
|
|
cc4fb1c1b5 | ||
|
|
fc3d754aea | ||
|
|
643f3db2b2 | ||
|
|
b90c04009f | ||
|
|
11f7a2cb0e | ||
|
|
8bdc59703a |
7
.github/pull_request_template.md
vendored
@@ -2,4 +2,11 @@
|
||||
|
||||
Release Notes:
|
||||
|
||||
- N/A
|
||||
|
||||
or
|
||||
|
||||
- (Added|Fixed|Improved) ... ([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
|
||||
|
||||
If the release notes are only intended for a specific release channel only, add `(<release_channel>-only)` to the end of the release note line.
|
||||
These will be removed by the person making the release.
|
||||
|
||||
42
.github/workflows/release_actions.yml
vendored
@@ -6,27 +6,23 @@ jobs:
|
||||
discord_release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get release URL
|
||||
id: get-release-url
|
||||
run: |
|
||||
if [ "${{ github.event.release.prerelease }}" == "true" ]; then
|
||||
URL="https://zed.dev/releases/preview/latest"
|
||||
else
|
||||
URL="https://zed.dev/releases/stable/latest"
|
||||
fi
|
||||
echo "::set-output name=URL::$URL"
|
||||
- name: Get content
|
||||
uses: 2428392/gh-truncate-string-action@v1.3.0
|
||||
id: get-content
|
||||
with:
|
||||
stringToTruncate: |
|
||||
📣 Zed [${{ github.event.release.tag_name }}](${{ steps.get-release-url.outputs.URL }}) was just released!
|
||||
- name: Get appropriate URL
|
||||
id: get-appropriate-url
|
||||
run: |
|
||||
if [ "${{ github.event.release.prerelease }}" == "true" ]; then
|
||||
URL="https://zed.dev/releases/preview/latest"
|
||||
else
|
||||
URL="https://zed.dev/releases/stable/latest"
|
||||
fi
|
||||
echo "::set-output name=URL::$URL"
|
||||
|
||||
${{ github.event.release.body }}
|
||||
maxLength: 2000
|
||||
truncationSymbol: "..."
|
||||
- name: Discord Webhook Action
|
||||
uses: tsickert/discord-webhook@v5.3.0
|
||||
with:
|
||||
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
content: ${{ steps.get-content.outputs.string }}
|
||||
- name: Discord Webhook Action
|
||||
uses: tsickert/discord-webhook@v5.3.0
|
||||
with:
|
||||
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
content: |
|
||||
📣 Zed ${{ github.event.release.tag_name }} was just released!
|
||||
|
||||
Restart your Zed or head to ${{ steps.get-appropriate-url.outputs.URL }} to grab it.
|
||||
|
||||
${{ github.event.release.body }}
|
||||
|
||||
1187
Cargo.lock
generated
40
Cargo.toml
@@ -4,16 +4,12 @@ members = [
|
||||
"crates/ai",
|
||||
"crates/assistant",
|
||||
"crates/audio",
|
||||
"crates/audio2",
|
||||
"crates/auto_update",
|
||||
"crates/breadcrumbs",
|
||||
"crates/call",
|
||||
"crates/call2",
|
||||
"crates/channel",
|
||||
"crates/channel2",
|
||||
"crates/cli",
|
||||
"crates/client",
|
||||
"crates/client2",
|
||||
"crates/clock",
|
||||
"crates/collab",
|
||||
"crates/collab_ui",
|
||||
@@ -22,91 +18,68 @@ members = [
|
||||
"crates/component_test",
|
||||
"crates/context_menu",
|
||||
"crates/copilot",
|
||||
"crates/copilot2",
|
||||
"crates/copilot_button",
|
||||
"crates/db",
|
||||
"crates/db2",
|
||||
"crates/refineable",
|
||||
"crates/refineable/derive_refineable",
|
||||
"crates/diagnostics",
|
||||
"crates/drag_and_drop",
|
||||
"crates/editor",
|
||||
"crates/feature_flags",
|
||||
"crates/feature_flags2",
|
||||
"crates/feedback",
|
||||
"crates/file_finder",
|
||||
"crates/fs",
|
||||
"crates/fs2",
|
||||
"crates/fsevent",
|
||||
"crates/fuzzy",
|
||||
"crates/fuzzy2",
|
||||
"crates/git",
|
||||
"crates/go_to_line",
|
||||
"crates/go_to_line2",
|
||||
"crates/gpui",
|
||||
"crates/gpui_macros",
|
||||
"crates/gpui2",
|
||||
"crates/gpui2_macros",
|
||||
"crates/install_cli",
|
||||
"crates/install_cli2",
|
||||
"crates/journal",
|
||||
"crates/journal2",
|
||||
"crates/language",
|
||||
"crates/language2",
|
||||
"crates/language_selector",
|
||||
"crates/language_tools",
|
||||
"crates/live_kit_client",
|
||||
"crates/live_kit_server",
|
||||
"crates/lsp",
|
||||
"crates/lsp2",
|
||||
"crates/media",
|
||||
"crates/menu",
|
||||
"crates/menu2",
|
||||
"crates/multi_buffer",
|
||||
"crates/multi_buffer2",
|
||||
"crates/node_runtime",
|
||||
"crates/notifications",
|
||||
"crates/outline",
|
||||
"crates/picker",
|
||||
"crates/plugin",
|
||||
"crates/plugin_macros",
|
||||
"crates/plugin_runtime",
|
||||
"crates/prettier",
|
||||
"crates/prettier2",
|
||||
"crates/project",
|
||||
"crates/project2",
|
||||
"crates/project_panel",
|
||||
"crates/project_symbols",
|
||||
"crates/recent_projects",
|
||||
"crates/rope",
|
||||
"crates/rpc",
|
||||
"crates/rpc2",
|
||||
"crates/search",
|
||||
"crates/settings",
|
||||
"crates/settings2",
|
||||
"crates/snippet",
|
||||
"crates/sqlez",
|
||||
"crates/sqlez_macros",
|
||||
"crates/feature_flags",
|
||||
"crates/rich_text",
|
||||
"crates/storybook2",
|
||||
"crates/storybook",
|
||||
"crates/sum_tree",
|
||||
"crates/terminal",
|
||||
"crates/terminal2",
|
||||
"crates/text",
|
||||
"crates/theme",
|
||||
"crates/theme2",
|
||||
"crates/theme_importer",
|
||||
"crates/theme_selector",
|
||||
"crates/ui2",
|
||||
"crates/ui",
|
||||
"crates/util",
|
||||
"crates/semantic_index",
|
||||
"crates/vim",
|
||||
"crates/vcs_menu",
|
||||
"crates/workspace2",
|
||||
"crates/workspace",
|
||||
"crates/welcome",
|
||||
"crates/xtask",
|
||||
"crates/zed",
|
||||
"crates/zed2",
|
||||
"crates/zed-actions"
|
||||
]
|
||||
default-members = ["crates/zed"]
|
||||
@@ -140,7 +113,6 @@ serde_derive = { version = "1.0", features = ["deserialize_in_place"] }
|
||||
serde_json = { version = "1.0", features = ["preserve_order", "raw_value"] }
|
||||
smallvec = { version = "1.6", features = ["union"] }
|
||||
smol = { version = "1.2" }
|
||||
strum = { version = "0.25.0", features = ["derive"] }
|
||||
sysinfo = "0.29.10"
|
||||
tempdir = { version = "0.3.7" }
|
||||
thiserror = { version = "1.0.29" }
|
||||
@@ -152,7 +124,7 @@ pretty_assertions = "1.3.0"
|
||||
git2 = { version = "0.15", default-features = false}
|
||||
uuid = { version = "1.1.2", features = ["v4"] }
|
||||
|
||||
tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "7331995b19b8f8aba2d5e26deb51d2195c18bc94" }
|
||||
tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "1b0321ee85701d5036c334a6f04761cdc672e64c" }
|
||||
tree-sitter-c = "0.20.1"
|
||||
tree-sitter-cpp = { git = "https://github.com/tree-sitter/tree-sitter-cpp", rev="f44509141e7e483323d2ec178f2d2e6c0fc041c1" }
|
||||
tree-sitter-css = { git = "https://github.com/tree-sitter/tree-sitter-css", rev = "769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" }
|
||||
@@ -178,7 +150,7 @@ tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml",
|
||||
tree-sitter-lua = "0.0.14"
|
||||
tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" }
|
||||
tree-sitter-nu = { git = "https://github.com/nushell/tree-sitter-nu", rev = "786689b0562b9799ce53e824cb45a1a2a04dc673"}
|
||||
tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58"}
|
||||
|
||||
[patch.crates-io]
|
||||
tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "35a6052fbcafc5e5fc0f9415b8652be7dcaf7222" }
|
||||
async-task = { git = "https://github.com/zed-industries/async-task", rev = "341b57d6de98cdfd7b418567b8de2022ca993a6e" }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# syntax = docker/dockerfile:1.2
|
||||
|
||||
FROM rust:1.73-bullseye as builder
|
||||
FROM rust:1.72-bullseye as builder
|
||||
WORKDIR app
|
||||
COPY . .
|
||||
|
||||
|
||||
2
Procfile
@@ -1,4 +1,4 @@
|
||||
web: cd ../zed.dev && PORT=3000 npm run dev
|
||||
collab: cd crates/collab && RUST_LOG=${RUST_LOG:-warn,collab=info} cargo run serve
|
||||
collab: cd crates/collab && RUST_LOG=${RUST_LOG:-collab=info} cargo run serve
|
||||
livekit: livekit-server --dev
|
||||
postgrest: postgrest crates/collab/admin_api.conf
|
||||
|
||||
@@ -83,7 +83,9 @@ foreman start
|
||||
If you want to run Zed pointed at the local servers, you can run:
|
||||
|
||||
```
|
||||
script/zed-local
|
||||
script/zed-with-local-servers
|
||||
# or...
|
||||
script/zed-with-local-servers --release
|
||||
```
|
||||
|
||||
### Dump element JSON
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-at-sign"><circle cx="12" cy="12" r="4"/><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"/></svg>
|
||||
|
Before Width: | Height: | Size: 300 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell-off"><path d="M8.7 3A6 6 0 0 1 18 8a21.3 21.3 0 0 0 .6 5"/><path d="M17 17H3s3-2 3-9a4.67 4.67 0 0 1 .3-1.7"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/><path d="m2 2 20 20"/></svg>
|
||||
|
Before Width: | Height: | Size: 387 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell-ring"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/><path d="M4 2C2.8 3.7 2 5.7 2 8"/><path d="M22 8c0-2.3-.8-4.3-2-6"/></svg>
|
||||
|
Before Width: | Height: | Size: 382 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></svg>
|
||||
|
Before Width: | Height: | Size: 309 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus"><path d="M5 12h14"/></svg>
|
||||
|
Before Width: | Height: | Size: 229 B |
@@ -1,3 +0,0 @@
|
||||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.51192 3.00541C9.18827 2.54594 10.0434 2.53694 10.6788 2.95419C10.823 3.04893 10.9771 3.1993 11.389 3.61119C11.8009 4.02307 11.9513 4.17714 12.046 4.32141C12.4632 4.95675 12.4542 5.81192 11.9948 6.48827C11.8899 6.64264 11.7276 6.80811 11.3006 7.23511L10.6819 7.85383C10.4866 8.04909 10.4866 8.36567 10.6819 8.56093C10.8772 8.7562 11.1937 8.7562 11.389 8.56093L12.0077 7.94221L12.0507 7.89929C12.4203 7.52976 12.6568 7.2933 12.822 7.0502C13.4972 6.05623 13.5321 4.76252 12.8819 3.77248C12.7233 3.53102 12.4922 3.30001 12.1408 2.94871L12.0961 2.90408L12.0515 2.85942C11.7002 2.508 11.4692 2.27689 11.2277 2.11832C10.2377 1.46813 8.94396 1.50299 7.94999 2.17822C7.70689 2.34336 7.47042 2.57991 7.10088 2.94955L7.05797 2.99247L6.43926 3.61119C6.24399 3.80645 6.24399 4.12303 6.43926 4.31829C6.63452 4.51355 6.9511 4.51355 7.14636 4.31829L7.76508 3.69957C8.19208 3.27257 8.35755 3.11027 8.51192 3.00541ZM4.31794 7.14672C4.5132 6.95146 4.5132 6.63487 4.31794 6.43961C4.12267 6.24435 3.80609 6.24435 3.61083 6.43961L2.99211 7.05833L2.9492 7.10124C2.57955 7.47077 2.34301 7.70724 2.17786 7.95035C1.50263 8.94432 1.46778 10.238 2.11797 11.2281C2.27654 11.4695 2.50764 11.7005 2.85908 12.0518L2.90372 12.0965L2.94835 12.1411C3.29965 12.4925 3.53066 12.7237 3.77212 12.8822C4.76217 13.5324 6.05587 13.4976 7.04984 12.8223C7.29294 12.6572 7.52941 12.4206 7.89894 12.051L7.89895 12.051L7.94186 12.0081L8.56058 11.3894C8.75584 11.1941 8.75584 10.8775 8.56058 10.6823C8.36531 10.487 8.04873 10.487 7.85347 10.6823L7.23475 11.301C6.80775 11.728 6.64228 11.8903 6.48792 11.9951C5.81156 12.4546 4.9564 12.4636 4.32105 12.0464C4.17679 11.9516 4.02272 11.8012 3.61083 11.3894C3.19894 10.9775 3.04858 10.8234 2.95383 10.6791C2.53659 10.0438 2.54558 9.18863 3.00505 8.51227C3.10991 8.35791 3.27222 8.19244 3.69922 7.76544L4.31794 7.14672ZM9.6217 6.08558C9.81696 5.89032 9.81696 5.57373 9.6217 5.37847C9.42644 5.18321 9.10986 5.18321 8.91459 5.37847L5.37906 8.91401C5.1838 9.10927 5.1838 9.42585 5.37906 9.62111C5.57432 9.81637 5.8909 9.81637 6.08617 9.62111L9.6217 6.08558Z" fill="black"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail-open"><path d="M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z"/><path d="m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10"/></svg>
|
||||
|
Before Width: | Height: | Size: 390 B |
@@ -1,3 +0,0 @@
|
||||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.74393 2.00204C3.41963 1.97524 3.13502 2.37572 3.10823 2.70001C3.08143 3.0243 3.32558 3.47321 3.64986 3.50001C7.99878 3.85934 11.1406 7.00122 11.5 11.3501C11.5267 11.6744 11.9756 12.0269 12.3 12C12.6243 11.9733 13.0247 11.5804 12.998 11.2561C12.5912 6.33295 8.66704 2.40882 3.74393 2.00204ZM2.9 6.00001C2.96411 5.68099 3.33084 5.29361 3.64986 5.35772C6.66377 5.96341 9.03654 8.33618 9.64223 11.3501C9.70634 11.6691 9.319 12.0359 8.99999 12.1C8.68097 12.1641 8.06411 11.819 7.99999 11.5C7.48788 8.95167 6.0483 7.51213 3.49999 7.00001C3.18097 6.9359 2.8359 6.31902 2.9 6.00001ZM2 9.20001C2.0641 8.88099 2.38635 8.65788 2.70537 8.722C4.50255 9.08317 5.91684 10.4975 6.27801 12.2946C6.34212 12.6137 6.13547 12.9242 5.81646 12.9883C5.49744 13.0525 4.86411 12.819 4.8 12.5C4.53239 11.1683 3.83158 10.4676 2.5 10.2C2.18098 10.1359 1.93588 9.51902 2 9.20001Z" fill="black"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1021 B |
@@ -1,8 +0,0 @@
|
||||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M1.90321 7.29677C1.90321 10.341 4.11041 12.4147 6.58893 12.8439C6.87255 12.893 7.06266 13.1627 7.01355 13.4464C6.96444 13.73 6.69471 13.9201 6.41109 13.871C3.49942 13.3668 0.86084 10.9127 0.86084 7.29677C0.860839 5.76009 1.55996 4.55245 2.37639 3.63377C2.96124 2.97568 3.63034 2.44135 4.16846 2.03202L2.53205 2.03202C2.25591 2.03202 2.03205 1.80816 2.03205 1.53202C2.03205 1.25588 2.25591 1.03202 2.53205 1.03202L5.53205 1.03202C5.80819 1.03202 6.03205 1.25588 6.03205 1.53202L6.03205 4.53202C6.03205 4.80816 5.80819 5.03202 5.53205 5.03202C5.25591 5.03202 5.03205 4.80816 5.03205 4.53202L5.03205 2.68645L5.03054 2.68759L5.03045 2.68766L5.03044 2.68767L5.03043 2.68767C4.45896 3.11868 3.76059 3.64538 3.15554 4.3262C2.44102 5.13021 1.90321 6.10154 1.90321 7.29677ZM13.0109 7.70321C13.0109 4.69115 10.8505 2.6296 8.40384 2.17029C8.12093 2.11718 7.93465 1.84479 7.98776 1.56188C8.04087 1.27898 8.31326 1.0927 8.59616 1.14581C11.4704 1.68541 14.0532 4.12605 14.0532 7.70321C14.0532 9.23988 13.3541 10.4475 12.5377 11.3662C11.9528 12.0243 11.2837 12.5586 10.7456 12.968L12.3821 12.968C12.6582 12.968 12.8821 13.1918 12.8821 13.468C12.8821 13.7441 12.6582 13.968 12.3821 13.968L9.38205 13.968C9.10591 13.968 8.88205 13.7441 8.88205 13.468L8.88205 10.468C8.88205 10.1918 9.10591 9.96796 9.38205 9.96796C9.65819 9.96796 9.88205 10.1918 9.88205 10.468L9.88205 12.3135L9.88362 12.3123C10.4551 11.8813 11.1535 11.3546 11.7585 10.6738C12.4731 9.86976 13.0109 8.89844 13.0109 7.70321Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -370,15 +370,42 @@
|
||||
{
|
||||
"context": "Pane",
|
||||
"bindings": {
|
||||
"ctrl-1": ["pane::ActivateItem", 0],
|
||||
"ctrl-2": ["pane::ActivateItem", 1],
|
||||
"ctrl-3": ["pane::ActivateItem", 2],
|
||||
"ctrl-4": ["pane::ActivateItem", 3],
|
||||
"ctrl-5": ["pane::ActivateItem", 4],
|
||||
"ctrl-6": ["pane::ActivateItem", 5],
|
||||
"ctrl-7": ["pane::ActivateItem", 6],
|
||||
"ctrl-8": ["pane::ActivateItem", 7],
|
||||
"ctrl-9": ["pane::ActivateItem", 8],
|
||||
"ctrl-1": [
|
||||
"pane::ActivateItem",
|
||||
0
|
||||
],
|
||||
"ctrl-2": [
|
||||
"pane::ActivateItem",
|
||||
1
|
||||
],
|
||||
"ctrl-3": [
|
||||
"pane::ActivateItem",
|
||||
2
|
||||
],
|
||||
"ctrl-4": [
|
||||
"pane::ActivateItem",
|
||||
3
|
||||
],
|
||||
"ctrl-5": [
|
||||
"pane::ActivateItem",
|
||||
4
|
||||
],
|
||||
"ctrl-6": [
|
||||
"pane::ActivateItem",
|
||||
5
|
||||
],
|
||||
"ctrl-7": [
|
||||
"pane::ActivateItem",
|
||||
6
|
||||
],
|
||||
"ctrl-8": [
|
||||
"pane::ActivateItem",
|
||||
7
|
||||
],
|
||||
"ctrl-9": [
|
||||
"pane::ActivateItem",
|
||||
8
|
||||
],
|
||||
"ctrl-0": "pane::ActivateLastItem",
|
||||
"ctrl--": "pane::GoBack",
|
||||
"ctrl-_": "pane::GoForward",
|
||||
@@ -389,15 +416,42 @@
|
||||
{
|
||||
"context": "Workspace",
|
||||
"bindings": {
|
||||
"cmd-1": ["workspace::ActivatePane", 0],
|
||||
"cmd-2": ["workspace::ActivatePane", 1],
|
||||
"cmd-3": ["workspace::ActivatePane", 2],
|
||||
"cmd-4": ["workspace::ActivatePane", 3],
|
||||
"cmd-5": ["workspace::ActivatePane", 4],
|
||||
"cmd-6": ["workspace::ActivatePane", 5],
|
||||
"cmd-7": ["workspace::ActivatePane", 6],
|
||||
"cmd-8": ["workspace::ActivatePane", 7],
|
||||
"cmd-9": ["workspace::ActivatePane", 8],
|
||||
"cmd-1": [
|
||||
"workspace::ActivatePane",
|
||||
0
|
||||
],
|
||||
"cmd-2": [
|
||||
"workspace::ActivatePane",
|
||||
1
|
||||
],
|
||||
"cmd-3": [
|
||||
"workspace::ActivatePane",
|
||||
2
|
||||
],
|
||||
"cmd-4": [
|
||||
"workspace::ActivatePane",
|
||||
3
|
||||
],
|
||||
"cmd-5": [
|
||||
"workspace::ActivatePane",
|
||||
4
|
||||
],
|
||||
"cmd-6": [
|
||||
"workspace::ActivatePane",
|
||||
5
|
||||
],
|
||||
"cmd-7": [
|
||||
"workspace::ActivatePane",
|
||||
6
|
||||
],
|
||||
"cmd-8": [
|
||||
"workspace::ActivatePane",
|
||||
7
|
||||
],
|
||||
"cmd-9": [
|
||||
"workspace::ActivatePane",
|
||||
8
|
||||
],
|
||||
"cmd-b": "workspace::ToggleLeftDock",
|
||||
"cmd-r": "workspace::ToggleRightDock",
|
||||
"cmd-j": "workspace::ToggleBottomDock",
|
||||
@@ -440,14 +494,38 @@
|
||||
},
|
||||
{
|
||||
"bindings": {
|
||||
"cmd-k cmd-left": ["workspace::ActivatePaneInDirection", "Left"],
|
||||
"cmd-k cmd-right": ["workspace::ActivatePaneInDirection", "Right"],
|
||||
"cmd-k cmd-up": ["workspace::ActivatePaneInDirection", "Up"],
|
||||
"cmd-k cmd-down": ["workspace::ActivatePaneInDirection", "Down"],
|
||||
"cmd-k shift-left": ["workspace::SwapPaneInDirection", "Left"],
|
||||
"cmd-k shift-right": ["workspace::SwapPaneInDirection", "Right"],
|
||||
"cmd-k shift-up": ["workspace::SwapPaneInDirection", "Up"],
|
||||
"cmd-k shift-down": ["workspace::SwapPaneInDirection", "Down"]
|
||||
"cmd-k cmd-left": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"cmd-k cmd-right": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"cmd-k cmd-up": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"cmd-k cmd-down": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Down"
|
||||
],
|
||||
"cmd-k shift-left": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"cmd-k shift-right": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"cmd-k shift-up": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"cmd-k shift-down": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Down"
|
||||
]
|
||||
}
|
||||
},
|
||||
// Bindings from Atom
|
||||
@@ -549,6 +627,14 @@
|
||||
"space": "collab_panel::InsertSpace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"context": "(CollabPanel && not_editing) > Editor",
|
||||
"bindings": {
|
||||
"cmd-c": "collab_panel::StartLinkChannel",
|
||||
"cmd-x": "collab_panel::StartMoveChannel",
|
||||
"cmd-v": "collab_panel::MoveOrLinkToSelected"
|
||||
}
|
||||
},
|
||||
{
|
||||
"context": "ChannelModal",
|
||||
"bindings": {
|
||||
@@ -569,21 +655,57 @@
|
||||
"cmd-v": "terminal::Paste",
|
||||
"cmd-k": "terminal::Clear",
|
||||
// Some nice conveniences
|
||||
"cmd-backspace": ["terminal::SendText", "\u0015"],
|
||||
"cmd-right": ["terminal::SendText", "\u0005"],
|
||||
"cmd-left": ["terminal::SendText", "\u0001"],
|
||||
"cmd-backspace": [
|
||||
"terminal::SendText",
|
||||
"\u0015"
|
||||
],
|
||||
"cmd-right": [
|
||||
"terminal::SendText",
|
||||
"\u0005"
|
||||
],
|
||||
"cmd-left": [
|
||||
"terminal::SendText",
|
||||
"\u0001"
|
||||
],
|
||||
// Terminal.app compatibility
|
||||
"alt-left": ["terminal::SendText", "\u001bb"],
|
||||
"alt-right": ["terminal::SendText", "\u001bf"],
|
||||
"alt-left": [
|
||||
"terminal::SendText",
|
||||
"\u001bb"
|
||||
],
|
||||
"alt-right": [
|
||||
"terminal::SendText",
|
||||
"\u001bf"
|
||||
],
|
||||
// There are conflicting bindings for these keys in the global context.
|
||||
// these bindings override them, remove at your own risk:
|
||||
"up": ["terminal::SendKeystroke", "up"],
|
||||
"pageup": ["terminal::SendKeystroke", "pageup"],
|
||||
"down": ["terminal::SendKeystroke", "down"],
|
||||
"pagedown": ["terminal::SendKeystroke", "pagedown"],
|
||||
"escape": ["terminal::SendKeystroke", "escape"],
|
||||
"enter": ["terminal::SendKeystroke", "enter"],
|
||||
"ctrl-c": ["terminal::SendKeystroke", "ctrl-c"]
|
||||
"up": [
|
||||
"terminal::SendKeystroke",
|
||||
"up"
|
||||
],
|
||||
"pageup": [
|
||||
"terminal::SendKeystroke",
|
||||
"pageup"
|
||||
],
|
||||
"down": [
|
||||
"terminal::SendKeystroke",
|
||||
"down"
|
||||
],
|
||||
"pagedown": [
|
||||
"terminal::SendKeystroke",
|
||||
"pagedown"
|
||||
],
|
||||
"escape": [
|
||||
"terminal::SendKeystroke",
|
||||
"escape"
|
||||
],
|
||||
"enter": [
|
||||
"terminal::SendKeystroke",
|
||||
"enter"
|
||||
],
|
||||
"ctrl-c": [
|
||||
"terminal::SendKeystroke",
|
||||
"ctrl-c"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
"w": "vim::NextWordStart",
|
||||
"{": "vim::StartOfParagraph",
|
||||
"}": "vim::EndOfParagraph",
|
||||
"|": "vim::GoToColumn",
|
||||
"shift-w": [
|
||||
"vim::NextWordStart",
|
||||
{
|
||||
@@ -98,8 +97,14 @@
|
||||
"ctrl-o": "pane::GoBack",
|
||||
"ctrl-i": "pane::GoForward",
|
||||
"ctrl-]": "editor::GoToDefinition",
|
||||
"escape": ["vim::SwitchMode", "Normal"],
|
||||
"ctrl+[": ["vim::SwitchMode", "Normal"],
|
||||
"escape": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
],
|
||||
"ctrl+[": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
],
|
||||
"v": "vim::ToggleVisual",
|
||||
"shift-v": "vim::ToggleVisualLine",
|
||||
"ctrl-v": "vim::ToggleVisualBlock",
|
||||
@@ -228,36 +233,123 @@
|
||||
}
|
||||
],
|
||||
// Count support
|
||||
"1": ["vim::Number", 1],
|
||||
"2": ["vim::Number", 2],
|
||||
"3": ["vim::Number", 3],
|
||||
"4": ["vim::Number", 4],
|
||||
"5": ["vim::Number", 5],
|
||||
"6": ["vim::Number", 6],
|
||||
"7": ["vim::Number", 7],
|
||||
"8": ["vim::Number", 8],
|
||||
"9": ["vim::Number", 9],
|
||||
"1": [
|
||||
"vim::Number",
|
||||
1
|
||||
],
|
||||
"2": [
|
||||
"vim::Number",
|
||||
2
|
||||
],
|
||||
"3": [
|
||||
"vim::Number",
|
||||
3
|
||||
],
|
||||
"4": [
|
||||
"vim::Number",
|
||||
4
|
||||
],
|
||||
"5": [
|
||||
"vim::Number",
|
||||
5
|
||||
],
|
||||
"6": [
|
||||
"vim::Number",
|
||||
6
|
||||
],
|
||||
"7": [
|
||||
"vim::Number",
|
||||
7
|
||||
],
|
||||
"8": [
|
||||
"vim::Number",
|
||||
8
|
||||
],
|
||||
"9": [
|
||||
"vim::Number",
|
||||
9
|
||||
],
|
||||
// window related commands (ctrl-w X)
|
||||
"ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"],
|
||||
"ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"],
|
||||
"ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"],
|
||||
"ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"],
|
||||
"ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"],
|
||||
"ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"],
|
||||
"ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"],
|
||||
"ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"],
|
||||
"ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
|
||||
"ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
|
||||
"ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
|
||||
"ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"],
|
||||
"ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"],
|
||||
"ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"],
|
||||
"ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"],
|
||||
"ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"],
|
||||
"ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"],
|
||||
"ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"],
|
||||
"ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"],
|
||||
"ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"],
|
||||
"ctrl-w left": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"ctrl-w right": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"ctrl-w up": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"ctrl-w down": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Down"
|
||||
],
|
||||
"ctrl-w h": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"ctrl-w l": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"ctrl-w k": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"ctrl-w j": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Down"
|
||||
],
|
||||
"ctrl-w ctrl-h": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"ctrl-w ctrl-l": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"ctrl-w ctrl-k": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"ctrl-w ctrl-j": [
|
||||
"workspace::ActivatePaneInDirection",
|
||||
"Down"
|
||||
],
|
||||
"ctrl-w shift-left": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"ctrl-w shift-right": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"ctrl-w shift-up": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"ctrl-w shift-down": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Down"
|
||||
],
|
||||
"ctrl-w shift-h": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Left"
|
||||
],
|
||||
"ctrl-w shift-l": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Right"
|
||||
],
|
||||
"ctrl-w shift-k": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Up"
|
||||
],
|
||||
"ctrl-w shift-j": [
|
||||
"workspace::SwapPaneInDirection",
|
||||
"Down"
|
||||
],
|
||||
"ctrl-w g t": "pane::ActivateNextItem",
|
||||
"ctrl-w ctrl-g t": "pane::ActivateNextItem",
|
||||
"ctrl-w g shift-t": "pane::ActivatePrevItem",
|
||||
@@ -279,8 +371,14 @@
|
||||
"ctrl-w ctrl-q": "pane::CloseAllItems",
|
||||
"ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
|
||||
"ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
|
||||
"ctrl-w n": ["workspace::NewFileInDirection", "Up"],
|
||||
"ctrl-w ctrl-n": ["workspace::NewFileInDirection", "Up"]
|
||||
"ctrl-w n": [
|
||||
"workspace::NewFileInDirection",
|
||||
"Up"
|
||||
],
|
||||
"ctrl-w ctrl-n": [
|
||||
"workspace::NewFileInDirection",
|
||||
"Up"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -295,13 +393,21 @@
|
||||
"context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
|
||||
"bindings": {
|
||||
".": "vim::Repeat",
|
||||
"c": ["vim::PushOperator", "Change"],
|
||||
"c": [
|
||||
"vim::PushOperator",
|
||||
"Change"
|
||||
],
|
||||
"shift-c": "vim::ChangeToEndOfLine",
|
||||
"d": ["vim::PushOperator", "Delete"],
|
||||
"d": [
|
||||
"vim::PushOperator",
|
||||
"Delete"
|
||||
],
|
||||
"shift-d": "vim::DeleteToEndOfLine",
|
||||
"shift-j": "vim::JoinLines",
|
||||
"y": ["vim::PushOperator", "Yank"],
|
||||
"shift-y": "vim::YankLine",
|
||||
"y": [
|
||||
"vim::PushOperator",
|
||||
"Yank"
|
||||
],
|
||||
"i": "vim::InsertBefore",
|
||||
"shift-i": "vim::InsertFirstNonWhitespace",
|
||||
"a": "vim::InsertAfter",
|
||||
@@ -336,7 +442,10 @@
|
||||
"backwards": true
|
||||
}
|
||||
],
|
||||
"r": ["vim::PushOperator", "Replace"],
|
||||
"r": [
|
||||
"vim::PushOperator",
|
||||
"Replace"
|
||||
],
|
||||
"s": "vim::Substitute",
|
||||
"shift-s": "vim::SubstituteLine",
|
||||
"> >": "editor::Indent",
|
||||
@@ -348,7 +457,10 @@
|
||||
{
|
||||
"context": "Editor && VimCount",
|
||||
"bindings": {
|
||||
"0": ["vim::Number", 0]
|
||||
"0": [
|
||||
"vim::Number",
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -384,15 +496,12 @@
|
||||
"'": "vim::Quotes",
|
||||
"`": "vim::BackQuotes",
|
||||
"\"": "vim::DoubleQuotes",
|
||||
"|": "vim::VerticalBars",
|
||||
"(": "vim::Parentheses",
|
||||
")": "vim::Parentheses",
|
||||
"b": "vim::Parentheses",
|
||||
"[": "vim::SquareBrackets",
|
||||
"]": "vim::SquareBrackets",
|
||||
"{": "vim::CurlyBrackets",
|
||||
"}": "vim::CurlyBrackets",
|
||||
"shift-b": "vim::CurlyBrackets",
|
||||
"<": "vim::AngleBrackets",
|
||||
">": "vim::AngleBrackets"
|
||||
}
|
||||
@@ -438,10 +547,22 @@
|
||||
"shift-i": "vim::InsertBefore",
|
||||
"shift-a": "vim::InsertAfter",
|
||||
"shift-j": "vim::JoinLines",
|
||||
"r": ["vim::PushOperator", "Replace"],
|
||||
"ctrl-c": ["vim::SwitchMode", "Normal"],
|
||||
"escape": ["vim::SwitchMode", "Normal"],
|
||||
"ctrl+[": ["vim::SwitchMode", "Normal"],
|
||||
"r": [
|
||||
"vim::PushOperator",
|
||||
"Replace"
|
||||
],
|
||||
"ctrl-c": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
],
|
||||
"escape": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
],
|
||||
"ctrl+[": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
],
|
||||
">": "editor::Indent",
|
||||
"<": "editor::Outdent",
|
||||
"i": [
|
||||
@@ -480,8 +601,14 @@
|
||||
"bindings": {
|
||||
"tab": "vim::Tab",
|
||||
"enter": "vim::Enter",
|
||||
"escape": ["vim::SwitchMode", "Normal"],
|
||||
"ctrl+[": ["vim::SwitchMode", "Normal"]
|
||||
"escape": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
],
|
||||
"ctrl+[": [
|
||||
"vim::SwitchMode",
|
||||
"Normal"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -50,9 +50,6 @@
|
||||
// Whether to pop the completions menu while typing in an editor without
|
||||
// explicitly requesting it.
|
||||
"show_completions_on_input": true,
|
||||
// Whether to display inline and alongside documentation for items in the
|
||||
// completions menu
|
||||
"show_completion_documentation": true,
|
||||
// Whether to show wrap guides in the editor. Setting this to true will
|
||||
// show a guide at the 'preferred_line_length' value if softwrap is set to
|
||||
// 'preferred_line_length', and will show any additional guides as specified
|
||||
@@ -79,7 +76,7 @@
|
||||
// Settings related to calls in Zed
|
||||
"calls": {
|
||||
// Join calls with the microphone muted by default
|
||||
"mute_on_join": false
|
||||
"mute_on_join": true
|
||||
},
|
||||
// Scrollbar related settings
|
||||
"scrollbar": {
|
||||
@@ -142,14 +139,6 @@
|
||||
// Default width of the channels panel.
|
||||
"default_width": 240
|
||||
},
|
||||
"notification_panel": {
|
||||
// Whether to show the collaboration panel button in the status bar.
|
||||
"button": true,
|
||||
// Where to dock channels panel. Can be 'left' or 'right'.
|
||||
"dock": "right",
|
||||
// Default width of the channels panel.
|
||||
"default_width": 380
|
||||
},
|
||||
"assistant": {
|
||||
// Whether to show the assistant panel button in the status bar.
|
||||
"button": true,
|
||||
@@ -210,12 +199,7 @@
|
||||
// "arguments": ["--stdin-filepath", "{buffer_path}"]
|
||||
// }
|
||||
// }
|
||||
// 3. Format code using Zed's Prettier integration:
|
||||
// "formatter": "prettier"
|
||||
// 4. Default. Format files using Zed's Prettier integration (if applicable),
|
||||
// or falling back to formatting via language server:
|
||||
// "formatter": "auto"
|
||||
"formatter": "auto",
|
||||
"formatter": "language_server",
|
||||
// How to soft-wrap long lines of text. This setting can take
|
||||
// three values:
|
||||
//
|
||||
@@ -445,16 +429,6 @@
|
||||
"tab_size": 2
|
||||
}
|
||||
},
|
||||
// Zed's Prettier integration settings.
|
||||
// If Prettier is enabled, Zed will use this its Prettier instance for any applicable file, if
|
||||
// project has no other Prettier installed.
|
||||
"prettier": {
|
||||
// Use regular Prettier json configuration:
|
||||
// "trailingComma": "es5",
|
||||
// "tabWidth": 4,
|
||||
// "semi": false,
|
||||
// "singleQuote": true
|
||||
},
|
||||
// LSP Specific settings.
|
||||
"lsp": {
|
||||
// Specify the LSP name as a key here.
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
Copyright (c) 2017 eliverlara@gmail.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,369 +0,0 @@
|
||||
{
|
||||
"name": "Andromeda Bordered",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"focusBorder": "#746f77",
|
||||
"foreground": "#D5CED9",
|
||||
"widget.shadow": "#14151A",
|
||||
"selection.background": "#746f77",
|
||||
"errorForeground": "#FC644D",
|
||||
|
||||
"button.background": "#00e8c5cc",
|
||||
"button.hoverBackground": "#07d4b6cc",
|
||||
|
||||
"dropdown.background": "#2b303b",
|
||||
"dropdown.border": "#363c49",
|
||||
|
||||
"input.background": "#2b303b",
|
||||
"input.placeholderForeground": "#746f77",
|
||||
"inputOption.activeBorder": "#C668BA",
|
||||
"inputValidation.errorBackground": "#D65343",
|
||||
"inputValidation.errorBorder": "#D65343",
|
||||
"inputValidation.infoBackground": "#3A6395",
|
||||
"inputValidation.infoBorder": "#3A6395",
|
||||
"inputValidation.warningBackground": "#DE9237",
|
||||
"inputValidation.warningBorder": "#DE9237",
|
||||
|
||||
"scrollbar.shadow": "#23262E",
|
||||
"scrollbarSlider.activeBackground": "#3A3F4CCC",
|
||||
"scrollbarSlider.background": "#3A3F4C77",
|
||||
"scrollbarSlider.hoverBackground": "#3A3F4CAA",
|
||||
|
||||
"badge.background": "#00b0ff",
|
||||
"badge.foreground": "#20232B",
|
||||
|
||||
"progressBar.background": "#C668BA",
|
||||
|
||||
"list.activeSelectionBackground": "#23262E",
|
||||
"list.activeSelectionForeground": "#00e8c6",
|
||||
"list.dropBackground": "#3a404e",
|
||||
"list.focusBackground": "#282b35",
|
||||
"list.focusForeground": "#eee",
|
||||
"list.hoverBackground": "#23262E",
|
||||
"list.hoverForeground": "#eee",
|
||||
"list.inactiveSelectionBackground": "#23262E",
|
||||
"list.inactiveSelectionForeground": "#00e8c6",
|
||||
|
||||
"activityBar.background": "#20232B",
|
||||
"activityBar.dropBackground": "#3a404e",
|
||||
"activityBar.foreground": "#BAAFC0",
|
||||
"activityBarBadge.background": "#00b0ff",
|
||||
"activityBarBadge.foreground": "#20232B",
|
||||
"activityBar.border": "#1B1D23",
|
||||
|
||||
"sideBar.background": "#23262E",
|
||||
"sideBarSectionHeader.background": "#23262E",
|
||||
"sideBarTitle.foreground": "#00e8c6",
|
||||
"sideBar.foreground": "#999999",
|
||||
"sideBar.border": "#1B1D23",
|
||||
|
||||
"editorGroup.background": "#23262E",
|
||||
"editorGroup.dropBackground": "#495061d7",
|
||||
"editorGroupHeader.tabsBackground": "#23262E",
|
||||
"tab.activeBackground": "#262A33",
|
||||
"tab.inactiveBackground": "#23262E",
|
||||
"tab.activeForeground": "#00e8c6",
|
||||
"tab.inactiveForeground": "#746f77",
|
||||
|
||||
"editor.background": "#262A33",
|
||||
"editor.foreground": "#D5CED9",
|
||||
"editorLineNumber.foreground": "#746f77",
|
||||
"editorCursor.foreground": "#FFF",
|
||||
"editor.selectionBackground": "#3D4352",
|
||||
"editor.selectionHighlightBackground": "#4F435580",
|
||||
"editor.wordHighlightBackground": "#4F4355",
|
||||
"editor.wordHighlightStrongBackground": "#db45a280",
|
||||
"editor.findMatchBackground": "#f39d1256",
|
||||
"editor.findMatchHighlightBackground": "#59b8b377",
|
||||
"editor.findMatchBorder": "#f39d12b6",
|
||||
"editor.hoverHighlightBackground": "#373941",
|
||||
"editor.lineHighlightBackground": "#2e323d",
|
||||
"editor.lineHighlightBorder": "#2e323d",
|
||||
"editorLink.activeForeground": "#3B79C7",
|
||||
"editor.rangeHighlightBackground": "#372F3C",
|
||||
"editorWhitespace.foreground": "#333844",
|
||||
"editorIndentGuide.background": "#333844",
|
||||
"editorIndentGuide.activeBackground": "#585C66",
|
||||
"editorRuler.foreground": "#4F4355",
|
||||
"editorCodeLens.foreground": "#746f77",
|
||||
"editorBracketMatch.background": "#746f77",
|
||||
"editorBracketMatch.border": "#746f77",
|
||||
"editorOverviewRuler.border": "#1B1D23",
|
||||
"editorError.foreground": "#FC644D",
|
||||
"editorWarning.foreground": "#FF9F2E",
|
||||
"editorGutter.modifiedBackground": "#5BC0EBBB",
|
||||
"editorGutter.addedBackground": "#9BC53DBB",
|
||||
"editorGutter.deletedBackground": "#FC644DBB",
|
||||
|
||||
"diffEditor.insertedTextBackground": "#29BF1220",
|
||||
"diffEditor.removedTextBackground": "#F21B3F20",
|
||||
|
||||
"editorWidget.background": "#20232A",
|
||||
"editorSuggestWidget.background": "#20232A",
|
||||
"editorSuggestWidget.border": "#372F3C",
|
||||
"editorSuggestWidget.selectedBackground": "#373941",
|
||||
"editorHoverWidget.background": "#373941",
|
||||
"editorHoverWidget.border": "#00e8c5cc",
|
||||
"debugExceptionWidget.background": "#FF9F2E60",
|
||||
"debugExceptionWidget.border": "#FF9F2E60",
|
||||
|
||||
"minimapSlider.background": "#58607460",
|
||||
"minimapSlider.hoverBackground": "#60698060",
|
||||
"minimapSlider.activeBackground": "#60698060",
|
||||
|
||||
"peekView.border": "#23262E",
|
||||
"peekViewEditor.background": "#1A1C22",
|
||||
"peekViewEditor.matchHighlightBackground": "#FF9F2E60",
|
||||
"peekViewResult.background": "#1A1C22",
|
||||
"peekViewResult.matchHighlightBackground": "#FF9F2E60",
|
||||
"peekViewResult.selectionBackground": "#23262E",
|
||||
"peekViewTitle.background": "#1A1C22",
|
||||
"peekViewTitleDescription.foreground": "#746f77",
|
||||
|
||||
"merge.currentHeaderBackground": "#F92672",
|
||||
"merge.currentContentBackground": "#F9267240",
|
||||
"merge.incomingHeaderBackground": "#3B79C7BB",
|
||||
"merge.incomingContentBackground": "#3B79C740",
|
||||
|
||||
"panel.background": "#23262E",
|
||||
"panel.border": "#1B1D23",
|
||||
"panelTitle.activeBorder": "#23262E",
|
||||
"panelTitle.inactiveForeground": "#746f77",
|
||||
|
||||
"statusBar.background": "#23262E",
|
||||
"statusBar.debuggingBackground": "#FC644D",
|
||||
"statusBar.noFolderBackground": "#23262E",
|
||||
"statusBarItem.activeBackground": "#00e8c5cc",
|
||||
"statusBarItem.hoverBackground": "#07d4b5b0",
|
||||
"statusBarItem.prominentBackground": "#07d4b5b0",
|
||||
"statusBarItem.prominentHoverBackground": "#00e8c5cc",
|
||||
|
||||
"terminal.ansiRed":"#ee5d43",
|
||||
"terminal.ansiGreen":"#96E072",
|
||||
"terminal.ansiYellow":"#FFE66D",
|
||||
"terminal.ansiBlue":"#7cb7ff",
|
||||
"terminal.ansiMagenta":"#ff00aa",
|
||||
"terminal.ansiCyan":"#00e8c6",
|
||||
"terminal.ansiBrightRed":"#ee5d43",
|
||||
"terminal.ansiBrightGreen":"#96E072",
|
||||
"terminal.ansiBrightYellow":"#FFE66D",
|
||||
"terminal.ansiBrightBlue":"#7cb7ff",
|
||||
"terminal.ansiBrightMagenta":"#ff00aa",
|
||||
"terminal.ansiBrightCyan":"#00e8c6",
|
||||
"terminalCursor.background": "#23262E",
|
||||
"terminalCursor.foreground": "#FFE66D",
|
||||
|
||||
"titleBar.activeBackground": "#23262E",
|
||||
|
||||
"notification.background": "#2d313b",
|
||||
"notification.buttonBackground": "#00e8c5cc",
|
||||
"notification.buttonHoverBackground": "#07d4b5b0",
|
||||
"notification.infoBackground": "#00b0ff",
|
||||
"notification.warningBackground": "#FF9F2E",
|
||||
"notification.errorBackground": "#FC644D",
|
||||
|
||||
"extensionButton.prominentBackground": "#07d4b6cc",
|
||||
"extensionButton.prominentHoverBackground": "#07d4b5b0",
|
||||
|
||||
"pickerGroup.border": "#4F4355",
|
||||
"pickerGroup.foreground": "#746f77",
|
||||
|
||||
"debugToolBar.background": "#20232A",
|
||||
|
||||
"walkThrough.embeddedEditorBackground": "#23262E",
|
||||
|
||||
"gitDecoration.ignoredResourceForeground": "#555555"
|
||||
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"foreground": "#D5CED9",
|
||||
"background": "#23262E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment color",
|
||||
"scope": [
|
||||
"comment",
|
||||
"markup.quote.markdown",
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#A0A1A7cc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Text Color",
|
||||
"scope": [
|
||||
"meta.template.expression.js",
|
||||
"constant.name.attribute.tag.jade",
|
||||
"punctuation.definition.metadata.markdown",
|
||||
"punctuation.definition.string.end.markdown",
|
||||
"punctuation.definition.string.begin.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D5CED9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Cyan",
|
||||
"scope": [
|
||||
"variable",
|
||||
"support.variable",
|
||||
"entity.name.tag.yaml",
|
||||
"constant.character.entity.html",
|
||||
"source.css entity.name.tag.reference",
|
||||
"beginning.punctuation.definition.list.markdown",
|
||||
"source.css entity.other.attribute-name.parent-selector",
|
||||
"meta.structure.dictionary.json support.type.property-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#00e8c6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Orange",
|
||||
"scope": [
|
||||
"markup.bold",
|
||||
"constant.numeric",
|
||||
"meta.group.regexp",
|
||||
"constant.other.php",
|
||||
"support.constant.ext.php",
|
||||
"constant.other.class.php",
|
||||
"support.constant.core.php",
|
||||
"fenced_code.block.language",
|
||||
"constant.other.caps.python",
|
||||
"entity.other.attribute-name",
|
||||
"support.type.exception.python",
|
||||
"source.css keyword.other.unit",
|
||||
"variable.other.object.property.js.jsx", "variable.other.object.js"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f39c12"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Yellow",
|
||||
"scope": [
|
||||
"markup.list",
|
||||
"text.xml string",
|
||||
"entity.name.type",
|
||||
"support.function",
|
||||
"entity.other.attribute-name",
|
||||
"meta.at-rule.extend",
|
||||
"entity.name.function",
|
||||
"entity.other.inherited-class",
|
||||
"entity.other.keyframe-offset.css",
|
||||
"text.html.markdown string.quoted",
|
||||
"meta.function-call.generic.python",
|
||||
"meta.at-rule.extend support.constant",
|
||||
"entity.other.attribute-name.class.jade",
|
||||
"source.css entity.other.attribute-name",
|
||||
"text.xml punctuation.definition.string"
|
||||
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFE66D"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pink",
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"variable.language.this.js",
|
||||
"variable.language.special.self.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff00aa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Hot Pink",
|
||||
"scope": [
|
||||
"punctuation.definition.interpolation",
|
||||
"punctuation.section.embedded.end.php",
|
||||
"punctuation.section.embedded.end.ruby",
|
||||
"punctuation.section.embedded.begin.php",
|
||||
"punctuation.section.embedded.begin.ruby",
|
||||
"punctuation.definition.template-expression",
|
||||
"entity.name.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Purple",
|
||||
"scope": [
|
||||
"storage",
|
||||
"keyword",
|
||||
"meta.link",
|
||||
"meta.image",
|
||||
"markup.italic",
|
||||
"source.js support.type"
|
||||
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#c74ded"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Blue",
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"markup.changed"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#7cb7ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Red",
|
||||
"scope": [
|
||||
"constant",
|
||||
"support.class",
|
||||
"keyword.operator",
|
||||
"support.constant",
|
||||
"text.html.markdown string",
|
||||
"source.css support.function",
|
||||
"source.php support.function",
|
||||
"support.function.magic.python",
|
||||
"entity.other.attribute-name.id",
|
||||
"markup.deleted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ee5d43"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Green",
|
||||
"scope": [
|
||||
"string",
|
||||
"text.html.php string",
|
||||
"markup.inline.raw",
|
||||
"markup.inserted",
|
||||
"punctuation.definition.string",
|
||||
"punctuation.definition.markdown",
|
||||
"text.html meta.embedded source.js string",
|
||||
"text.html.php punctuation.definition.string",
|
||||
"text.html meta.embedded source.js punctuation.definition.string",
|
||||
"text.html punctuation.definition.string",
|
||||
"text.html string"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#96E072"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Font Underline",
|
||||
"scope": [
|
||||
"entity.other.inherited-class"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,367 +0,0 @@
|
||||
{
|
||||
"name": "Andromeda",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"focusBorder": "#746f77",
|
||||
"foreground": "#D5CED9",
|
||||
"widget.shadow": "#14151A",
|
||||
"selection.background": "#746f77",
|
||||
"errorForeground": "#FC644D",
|
||||
|
||||
"button.background": "#00e8c5cc",
|
||||
"button.hoverBackground": "#07d4b6cc",
|
||||
|
||||
"dropdown.background": "#2b303b",
|
||||
"dropdown.border": "#363c49",
|
||||
|
||||
"input.background": "#2b303b",
|
||||
"input.placeholderForeground": "#746f77",
|
||||
"inputOption.activeBorder": "#C668BA",
|
||||
"inputValidation.errorBackground": "#D65343",
|
||||
"inputValidation.errorBorder": "#D65343",
|
||||
"inputValidation.infoBackground": "#3A6395",
|
||||
"inputValidation.infoBorder": "#3A6395",
|
||||
"inputValidation.warningBackground": "#DE9237",
|
||||
"inputValidation.warningBorder": "#DE9237",
|
||||
|
||||
"scrollbar.shadow": "#23262E",
|
||||
"scrollbarSlider.activeBackground": "#3A3F4CCC",
|
||||
"scrollbarSlider.background": "#3A3F4C77",
|
||||
"scrollbarSlider.hoverBackground": "#3A3F4CAA",
|
||||
|
||||
"badge.background": "#00b0ff",
|
||||
"badge.foreground": "#20232B",
|
||||
|
||||
"progressBar.background": "#C668BA",
|
||||
|
||||
"list.activeSelectionBackground": "#23262E",
|
||||
"list.activeSelectionForeground": "#00e8c6",
|
||||
"list.dropBackground": "#3a404e",
|
||||
"list.focusBackground": "#282b35",
|
||||
"list.focusForeground": "#eee",
|
||||
"list.hoverBackground": "#23262E",
|
||||
"list.hoverForeground": "#eee",
|
||||
"list.inactiveSelectionBackground": "#23262E",
|
||||
"list.inactiveSelectionForeground": "#00e8c6",
|
||||
|
||||
"activityBar.background": "#23262E",
|
||||
"activityBar.dropBackground": "#3a404e",
|
||||
"activityBar.foreground": "#BAAFC0",
|
||||
"activityBarBadge.background": "#00b0ff",
|
||||
"activityBarBadge.foreground": "#20232B",
|
||||
|
||||
"sideBar.background": "#23262E",
|
||||
"sideBarSectionHeader.background": "#23262E",
|
||||
"sideBarTitle.foreground": "#00e8c6",
|
||||
"sideBar.foreground": "#999999",
|
||||
|
||||
"editorGroup.background": "#23262E",
|
||||
"editorGroup.dropBackground": "#495061d7",
|
||||
"editorGroupHeader.tabsBackground": "#23262E",
|
||||
"tab.activeBackground": "#23262e",
|
||||
"tab.inactiveBackground": "#23262E",
|
||||
"tab.activeForeground": "#00e8c6",
|
||||
"tab.inactiveForeground": "#746f77",
|
||||
|
||||
"editor.background": "#23262E",
|
||||
"editor.foreground": "#D5CED9",
|
||||
"editorLineNumber.foreground": "#746f77",
|
||||
"editorCursor.foreground": "#FFF",
|
||||
"editor.selectionBackground": "#3D4352",
|
||||
"editor.selectionHighlightBackground": "#4F435580",
|
||||
"editor.wordHighlightBackground": "#4F4355",
|
||||
"editor.wordHighlightStrongBackground": "#db45a280",
|
||||
"editor.findMatchBackground": "#f39d1256",
|
||||
"editor.findMatchHighlightBackground": "#59b8b377",
|
||||
"editor.findMatchBorder": "#f39d12b6",
|
||||
"editor.hoverHighlightBackground": "#373941",
|
||||
"editor.lineHighlightBackground": "#2e323d",
|
||||
"editor.lineHighlightBorder": "#2e323d",
|
||||
"editorLink.activeForeground": "#3B79C7",
|
||||
"editor.rangeHighlightBackground": "#372F3C",
|
||||
"editorWhitespace.foreground": "#333844",
|
||||
"editorIndentGuide.background": "#333844",
|
||||
"editorIndentGuide.activeBackground": "#585C66",
|
||||
"editorRuler.foreground": "#4F4355",
|
||||
"editorCodeLens.foreground": "#746f77",
|
||||
"editorBracketMatch.background": "#746f77",
|
||||
"editorBracketMatch.border": "#746f77",
|
||||
"editorOverviewRuler.border": "#1B1D23",
|
||||
"editorError.foreground": "#FC644D",
|
||||
"editorWarning.foreground": "#FF9F2E",
|
||||
"editorGutter.modifiedBackground": "#5BC0EBBB",
|
||||
"editorGutter.addedBackground": "#9BC53DBB",
|
||||
"editorGutter.deletedBackground": "#FC644DBB",
|
||||
|
||||
"diffEditor.insertedTextBackground": "#29BF1220",
|
||||
"diffEditor.removedTextBackground": "#F21B3F20",
|
||||
|
||||
"editorWidget.background": "#20232A",
|
||||
"editorSuggestWidget.background": "#20232A",
|
||||
"editorSuggestWidget.border": "#372F3C",
|
||||
"editorSuggestWidget.selectedBackground": "#373941",
|
||||
"editorHoverWidget.background": "#373941",
|
||||
"editorHoverWidget.border": "#00e8c5cc",
|
||||
"debugExceptionWidget.background": "#FF9F2E60",
|
||||
"debugExceptionWidget.border": "#FF9F2E60",
|
||||
|
||||
"minimapSlider.background": "#58607460",
|
||||
"minimapSlider.hoverBackground": "#60698060",
|
||||
"minimapSlider.activeBackground": "#60698060",
|
||||
|
||||
"peekView.border": "#23262E",
|
||||
"peekViewEditor.background": "#1A1C22",
|
||||
"peekViewEditor.matchHighlightBackground": "#FF9F2E60",
|
||||
"peekViewResult.background": "#1A1C22",
|
||||
"peekViewResult.matchHighlightBackground": "#FF9F2E60",
|
||||
"peekViewResult.selectionBackground": "#23262E",
|
||||
"peekViewTitle.background": "#1A1C22",
|
||||
"peekViewTitleDescription.foreground": "#746f77",
|
||||
|
||||
"merge.currentHeaderBackground": "#F92672",
|
||||
"merge.currentContentBackground": "#F9267240",
|
||||
"merge.incomingHeaderBackground": "#3B79C7BB",
|
||||
"merge.incomingContentBackground": "#3B79C740",
|
||||
|
||||
"panel.background": "#23262E",
|
||||
"panel.border": "#1B1D23",
|
||||
"panelTitle.activeBorder": "#23262E",
|
||||
"panelTitle.inactiveForeground": "#746f77",
|
||||
|
||||
"statusBar.background": "#23262E",
|
||||
"statusBar.debuggingBackground": "#FC644D",
|
||||
"statusBar.noFolderBackground": "#23262E",
|
||||
"statusBarItem.activeBackground": "#00e8c5cc",
|
||||
"statusBarItem.hoverBackground": "#07d4b5b0",
|
||||
"statusBarItem.prominentBackground": "#07d4b5b0",
|
||||
"statusBarItem.prominentHoverBackground": "#00e8c5cc",
|
||||
|
||||
"terminal.ansiRed":"#ee5d43",
|
||||
"terminal.ansiGreen":"#96E072",
|
||||
"terminal.ansiYellow":"#FFE66D",
|
||||
"terminal.ansiBlue":"#7cb7ff",
|
||||
"terminal.ansiMagenta":"#ff00aa",
|
||||
"terminal.ansiCyan":"#00e8c6",
|
||||
"terminal.ansiBrightRed":"#ee5d43",
|
||||
"terminal.ansiBrightGreen":"#96E072",
|
||||
"terminal.ansiBrightYellow":"#FFE66D",
|
||||
"terminal.ansiBrightBlue":"#7cb7ff",
|
||||
"terminal.ansiBrightMagenta":"#ff00aa",
|
||||
"terminal.ansiBrightCyan":"#00e8c6",
|
||||
"terminalCursor.background": "#23262E",
|
||||
"terminalCursor.foreground": "#FFE66D",
|
||||
|
||||
"titleBar.activeBackground": "#23262E",
|
||||
|
||||
"notification.background": "#2d313b",
|
||||
"notification.buttonBackground": "#00e8c5cc",
|
||||
"notification.buttonHoverBackground": "#07d4b5b0",
|
||||
"notification.infoBackground": "#00b0ff",
|
||||
"notification.warningBackground": "#FF9F2E",
|
||||
"notification.errorBackground": "#FC644D",
|
||||
|
||||
"extensionButton.prominentBackground": "#07d4b6cc",
|
||||
"extensionButton.prominentHoverBackground": "#07d4b5b0",
|
||||
|
||||
"pickerGroup.border": "#4F4355",
|
||||
"pickerGroup.foreground": "#746f77",
|
||||
|
||||
"debugToolBar.background": "#20232A",
|
||||
|
||||
"walkThrough.embeddedEditorBackground": "#23262E",
|
||||
|
||||
"gitDecoration.ignoredResourceForeground": "#555555"
|
||||
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"foreground": "#D5CED9",
|
||||
"background": "#23262E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment color",
|
||||
"scope": [
|
||||
"comment",
|
||||
"markup.quote.markdown",
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#A0A1A7cc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Text Color",
|
||||
"scope": [
|
||||
"meta.template.expression.js",
|
||||
"constant.name.attribute.tag.jade",
|
||||
"punctuation.definition.metadata.markdown",
|
||||
"punctuation.definition.string.end.markdown",
|
||||
"punctuation.definition.string.begin.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D5CED9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Cyan",
|
||||
"scope": [
|
||||
"variable",
|
||||
"support.variable",
|
||||
"entity.name.tag.yaml",
|
||||
"constant.character.entity.html",
|
||||
"source.css entity.name.tag.reference",
|
||||
"beginning.punctuation.definition.list.markdown",
|
||||
"source.css entity.other.attribute-name.parent-selector",
|
||||
"meta.structure.dictionary.json support.type.property-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#00e8c6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Orange",
|
||||
"scope": [
|
||||
"markup.bold",
|
||||
"constant.numeric",
|
||||
"meta.group.regexp",
|
||||
"constant.other.php",
|
||||
"support.constant.ext.php",
|
||||
"constant.other.class.php",
|
||||
"support.constant.core.php",
|
||||
"fenced_code.block.language",
|
||||
"constant.other.caps.python",
|
||||
"entity.other.attribute-name",
|
||||
"support.type.exception.python",
|
||||
"source.css keyword.other.unit",
|
||||
"variable.other.object.property.js.jsx", "variable.other.object.js"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f39c12"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Yellow",
|
||||
"scope": [
|
||||
"markup.list",
|
||||
"text.xml string",
|
||||
"entity.name.type",
|
||||
"support.function",
|
||||
"entity.other.attribute-name",
|
||||
"meta.at-rule.extend",
|
||||
"entity.name.function",
|
||||
"entity.other.inherited-class",
|
||||
"entity.other.keyframe-offset.css",
|
||||
"text.html.markdown string.quoted",
|
||||
"meta.function-call.generic.python",
|
||||
"meta.at-rule.extend support.constant",
|
||||
"entity.other.attribute-name.class.jade",
|
||||
"source.css entity.other.attribute-name",
|
||||
"text.xml punctuation.definition.string"
|
||||
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFE66D"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pink",
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"variable.language.this.js",
|
||||
"variable.language.special.self.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff00aa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Hot Pink",
|
||||
"scope": [
|
||||
"punctuation.definition.interpolation",
|
||||
"punctuation.section.embedded.end.php",
|
||||
"punctuation.section.embedded.end.ruby",
|
||||
"punctuation.section.embedded.begin.php",
|
||||
"punctuation.section.embedded.begin.ruby",
|
||||
"punctuation.definition.template-expression",
|
||||
"entity.name.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f92672"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Purple",
|
||||
"scope": [
|
||||
"storage",
|
||||
"keyword",
|
||||
"meta.link",
|
||||
"meta.image",
|
||||
"markup.italic",
|
||||
"source.js support.type"
|
||||
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#c74ded"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Blue",
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"markup.changed"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#7cb7ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Red",
|
||||
"scope": [
|
||||
"constant",
|
||||
"support.class",
|
||||
"keyword.operator",
|
||||
"support.constant",
|
||||
"text.html.markdown string",
|
||||
"source.css support.function",
|
||||
"source.php support.function",
|
||||
"support.function.magic.python",
|
||||
"entity.other.attribute-name.id",
|
||||
"markup.deleted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ee5d43"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Green",
|
||||
"scope": [
|
||||
"string",
|
||||
"text.html.php string",
|
||||
"markup.inline.raw",
|
||||
"markup.inserted",
|
||||
"punctuation.definition.string",
|
||||
"punctuation.definition.markdown",
|
||||
"text.html meta.embedded source.js string",
|
||||
"text.html.php punctuation.definition.string",
|
||||
"text.html meta.embedded source.js punctuation.definition.string",
|
||||
"text.html punctuation.definition.string",
|
||||
"text.html string"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#96E072"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Font Underline",
|
||||
"scope": [
|
||||
"entity.other.inherited-class"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"name": "Andromeda",
|
||||
"author": "Eliver Lara (EliverLara)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Andromeda",
|
||||
"file_name": "andromeda.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Andromeda Bordered",
|
||||
"file_name": "andromeda-bordered.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016 Ike Ku
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,847 +0,0 @@
|
||||
{
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"focusBorder": "#e6b450b3",
|
||||
"foreground": "#565b66",
|
||||
"widget.shadow": "#00000080",
|
||||
"selection.background": "#409fff4d",
|
||||
"icon.foreground": "#565b66",
|
||||
"errorForeground": "#d95757",
|
||||
"descriptionForeground": "#565b66",
|
||||
"textBlockQuote.background": "#0f131a",
|
||||
"textLink.foreground": "#e6b450",
|
||||
"textLink.activeForeground": "#e6b450",
|
||||
"textPreformat.foreground": "#bfbdb6",
|
||||
"button.background": "#e6b450",
|
||||
"button.foreground": "#734d00",
|
||||
"button.hoverBackground": "#e1af4b",
|
||||
"button.secondaryBackground": "#565b6633",
|
||||
"button.secondaryForeground": "#bfbdb6",
|
||||
"button.secondaryHoverBackground": "#565b6680",
|
||||
"dropdown.background": "#0d1017",
|
||||
"dropdown.foreground": "#565b66",
|
||||
"dropdown.border": "#565b6645",
|
||||
"input.background": "#0d1017",
|
||||
"input.border": "#565b6645",
|
||||
"input.foreground": "#bfbdb6",
|
||||
"input.placeholderForeground": "#565b6680",
|
||||
"inputOption.activeBorder": "#e6b4504d",
|
||||
"inputOption.activeBackground": "#e6b45033",
|
||||
"inputOption.activeForeground": "#e6b450",
|
||||
"inputValidation.errorBackground": "#0d1017",
|
||||
"inputValidation.errorBorder": "#d95757",
|
||||
"inputValidation.infoBackground": "#0b0e14",
|
||||
"inputValidation.infoBorder": "#39bae6",
|
||||
"inputValidation.warningBackground": "#0b0e14",
|
||||
"inputValidation.warningBorder": "#ffb454",
|
||||
"scrollbar.shadow": "#1e232b00",
|
||||
"scrollbarSlider.background": "#565b6666",
|
||||
"scrollbarSlider.hoverBackground": "#565b6699",
|
||||
"scrollbarSlider.activeBackground": "#565b66b3",
|
||||
"badge.background": "#e6b45033",
|
||||
"badge.foreground": "#e6b450",
|
||||
"progressBar.background": "#e6b450",
|
||||
"list.activeSelectionBackground": "#47526640",
|
||||
"list.activeSelectionForeground": "#bfbdb6",
|
||||
"list.focusBackground": "#47526640",
|
||||
"list.focusForeground": "#bfbdb6",
|
||||
"list.focusOutline": "#47526640",
|
||||
"list.highlightForeground": "#e6b450",
|
||||
"list.deemphasizedForeground": "#d95757",
|
||||
"list.hoverBackground": "#47526640",
|
||||
"list.inactiveSelectionBackground": "#47526633",
|
||||
"list.inactiveSelectionForeground": "#565b66",
|
||||
"list.invalidItemForeground": "#565b664d",
|
||||
"list.errorForeground": "#d95757",
|
||||
"tree.indentGuidesStroke": "#6c738080",
|
||||
"listFilterWidget.background": "#0f131a",
|
||||
"listFilterWidget.outline": "#e6b450",
|
||||
"listFilterWidget.noMatchesOutline": "#d95757",
|
||||
"list.filterMatchBackground": "#5f4c7266",
|
||||
"list.filterMatchBorder": "#6c598066",
|
||||
"activityBar.background": "#0b0e14",
|
||||
"activityBar.foreground": "#565b66cc",
|
||||
"activityBar.inactiveForeground": "#565b6699",
|
||||
"activityBar.border": "#0b0e14",
|
||||
"activityBar.activeBorder": "#e6b450",
|
||||
"activityBarBadge.background": "#e6b450",
|
||||
"activityBarBadge.foreground": "#734d00",
|
||||
"sideBar.background": "#0b0e14",
|
||||
"sideBar.border": "#0b0e14",
|
||||
"sideBarTitle.foreground": "#565b66",
|
||||
"sideBarSectionHeader.background": "#0b0e14",
|
||||
"sideBarSectionHeader.foreground": "#565b66",
|
||||
"sideBarSectionHeader.border": "#0b0e14",
|
||||
"minimap.background": "#0b0e14",
|
||||
"minimap.selectionHighlight": "#409fff4d",
|
||||
"minimap.errorHighlight": "#d95757",
|
||||
"minimap.findMatchHighlight": "#6c5980",
|
||||
"minimapGutter.addedBackground": "#7fd962",
|
||||
"minimapGutter.modifiedBackground": "#73b8ff",
|
||||
"minimapGutter.deletedBackground": "#f26d78",
|
||||
"editorGroup.border": "#1e232b",
|
||||
"editorGroup.background": "#0f131a",
|
||||
"editorGroupHeader.noTabsBackground": "#0b0e14",
|
||||
"editorGroupHeader.tabsBackground": "#0b0e14",
|
||||
"editorGroupHeader.tabsBorder": "#0b0e14",
|
||||
"tab.activeBackground": "#0b0e14",
|
||||
"tab.activeForeground": "#bfbdb6",
|
||||
"tab.border": "#0b0e14",
|
||||
"tab.activeBorder": "#e6b450",
|
||||
"tab.unfocusedActiveBorder": "#565b66",
|
||||
"tab.inactiveBackground": "#0b0e14",
|
||||
"tab.inactiveForeground": "#565b66",
|
||||
"tab.unfocusedActiveForeground": "#565b66",
|
||||
"tab.unfocusedInactiveForeground": "#565b66",
|
||||
"editor.background": "#0b0e14",
|
||||
"editor.foreground": "#bfbdb6",
|
||||
"editorLineNumber.foreground": "#6c738099",
|
||||
"editorLineNumber.activeForeground": "#6c7380e6",
|
||||
"editorCursor.foreground": "#e6b450",
|
||||
"editor.inactiveSelectionBackground": "#409fff21",
|
||||
"editor.selectionBackground": "#409fff4d",
|
||||
"editor.selectionHighlightBackground": "#7fd96226",
|
||||
"editor.selectionHighlightBorder": "#7fd96200",
|
||||
"editor.wordHighlightBackground": "#73b8ff14",
|
||||
"editor.wordHighlightStrongBackground": "#7fd96214",
|
||||
"editor.wordHighlightBorder": "#73b8ff80",
|
||||
"editor.wordHighlightStrongBorder": "#7fd96280",
|
||||
"editor.findMatchBackground": "#6c5980",
|
||||
"editor.findMatchBorder": "#6c5980",
|
||||
"editor.findMatchHighlightBackground": "#6c598066",
|
||||
"editor.findMatchHighlightBorder": "#5f4c7266",
|
||||
"editor.findRangeHighlightBackground": "#6c598040",
|
||||
"editor.rangeHighlightBackground": "#6c598033",
|
||||
"editor.lineHighlightBackground": "#131721",
|
||||
"editorLink.activeForeground": "#e6b450",
|
||||
"editorWhitespace.foreground": "#6c738099",
|
||||
"editorIndentGuide.background": "#6c738033",
|
||||
"editorIndentGuide.activeBackground": "#6c738080",
|
||||
"editorRuler.foreground": "#6c738033",
|
||||
"editorCodeLens.foreground": "#acb6bf8c",
|
||||
"editorBracketMatch.background": "#6c73804d",
|
||||
"editorBracketMatch.border": "#6c73804d",
|
||||
"editor.snippetTabstopHighlightBackground": "#7fd96233",
|
||||
"editorOverviewRuler.border": "#1e232b",
|
||||
"editorOverviewRuler.modifiedForeground": "#73b8ff",
|
||||
"editorOverviewRuler.addedForeground": "#7fd962",
|
||||
"editorOverviewRuler.deletedForeground": "#f26d78",
|
||||
"editorOverviewRuler.errorForeground": "#d95757",
|
||||
"editorOverviewRuler.warningForeground": "#e6b450",
|
||||
"editorOverviewRuler.bracketMatchForeground": "#6c7380b3",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#73b8ff66",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#7fd96266",
|
||||
"editorOverviewRuler.findMatchForeground": "#6c5980",
|
||||
"editorError.foreground": "#d95757",
|
||||
"editorWarning.foreground": "#e6b450",
|
||||
"editorGutter.modifiedBackground": "#73b8ffcc",
|
||||
"editorGutter.addedBackground": "#7fd962cc",
|
||||
"editorGutter.deletedBackground": "#f26d78cc",
|
||||
"diffEditor.insertedTextBackground": "#7fd9621f",
|
||||
"diffEditor.removedTextBackground": "#f26d781f",
|
||||
"diffEditor.diagonalFill": "#1e232b",
|
||||
"editorWidget.background": "#0f131a",
|
||||
"editorWidget.border": "#1e232b",
|
||||
"editorHoverWidget.background": "#0f131a",
|
||||
"editorHoverWidget.border": "#1e232b",
|
||||
"editorSuggestWidget.background": "#0f131a",
|
||||
"editorSuggestWidget.border": "#1e232b",
|
||||
"editorSuggestWidget.highlightForeground": "#e6b450",
|
||||
"editorSuggestWidget.selectedBackground": "#47526640",
|
||||
"debugExceptionWidget.border": "#1e232b",
|
||||
"debugExceptionWidget.background": "#0f131a",
|
||||
"editorMarkerNavigation.background": "#0f131a",
|
||||
"peekView.border": "#47526640",
|
||||
"peekViewTitle.background": "#47526640",
|
||||
"peekViewTitleDescription.foreground": "#565b66",
|
||||
"peekViewTitleLabel.foreground": "#bfbdb6",
|
||||
"peekViewEditor.background": "#0f131a",
|
||||
"peekViewEditor.matchHighlightBackground": "#6c598066",
|
||||
"peekViewEditor.matchHighlightBorder": "#5f4c7266",
|
||||
"peekViewResult.background": "#0f131a",
|
||||
"peekViewResult.fileForeground": "#bfbdb6",
|
||||
"peekViewResult.lineForeground": "#565b66",
|
||||
"peekViewResult.matchHighlightBackground": "#6c598066",
|
||||
"peekViewResult.selectionBackground": "#47526640",
|
||||
"panel.background": "#0b0e14",
|
||||
"panel.border": "#1e232b",
|
||||
"panelTitle.activeBorder": "#e6b450",
|
||||
"panelTitle.activeForeground": "#bfbdb6",
|
||||
"panelTitle.inactiveForeground": "#565b66",
|
||||
"statusBar.background": "#0b0e14",
|
||||
"statusBar.foreground": "#565b66",
|
||||
"statusBar.border": "#0b0e14",
|
||||
"statusBar.debuggingBackground": "#f29668",
|
||||
"statusBar.debuggingForeground": "#0d1017",
|
||||
"statusBar.noFolderBackground": "#0f131a",
|
||||
"statusBarItem.activeBackground": "#565b6633",
|
||||
"statusBarItem.hoverBackground": "#565b6633",
|
||||
"statusBarItem.prominentBackground": "#1e232b",
|
||||
"statusBarItem.prominentHoverBackground": "#00000030",
|
||||
"statusBarItem.remoteBackground": "#e6b450",
|
||||
"statusBarItem.remoteForeground": "#734d00",
|
||||
"titleBar.activeBackground": "#0b0e14",
|
||||
"titleBar.activeForeground": "#bfbdb6",
|
||||
"titleBar.inactiveBackground": "#0b0e14",
|
||||
"titleBar.inactiveForeground": "#565b66",
|
||||
"titleBar.border": "#0b0e14",
|
||||
"extensionButton.prominentForeground": "#734d00",
|
||||
"extensionButton.prominentBackground": "#e6b450",
|
||||
"extensionButton.prominentHoverBackground": "#e1af4b",
|
||||
"pickerGroup.border": "#1e232b",
|
||||
"pickerGroup.foreground": "#565b6680",
|
||||
"debugToolBar.background": "#0f131a",
|
||||
"debugIcon.breakpointForeground": "#f29668",
|
||||
"debugIcon.breakpointDisabledForeground": "#f2966880",
|
||||
"debugConsoleInputIcon.foreground": "#e6b450",
|
||||
"welcomePage.tileBackground": "#0b0e14",
|
||||
"welcomePage.tileShadow": "#00000080",
|
||||
"welcomePage.progress.background": "#131721",
|
||||
"welcomePage.buttonBackground": "#e6b45066",
|
||||
"walkThrough.embeddedEditorBackground": "#0f131a",
|
||||
"gitDecoration.modifiedResourceForeground": "#73b8ffb3",
|
||||
"gitDecoration.deletedResourceForeground": "#f26d78b3",
|
||||
"gitDecoration.untrackedResourceForeground": "#7fd962b3",
|
||||
"gitDecoration.ignoredResourceForeground": "#565b6680",
|
||||
"gitDecoration.conflictingResourceForeground": "",
|
||||
"gitDecoration.submoduleResourceForeground": "#d2a6ffb3",
|
||||
"settings.headerForeground": "#bfbdb6",
|
||||
"settings.modifiedItemIndicator": "#73b8ff",
|
||||
"keybindingLabel.background": "#565b661a",
|
||||
"keybindingLabel.foreground": "#bfbdb6",
|
||||
"keybindingLabel.border": "#bfbdb61a",
|
||||
"keybindingLabel.bottomBorder": "#bfbdb61a",
|
||||
"terminal.background": "#0b0e14",
|
||||
"terminal.foreground": "#bfbdb6",
|
||||
"terminal.ansiBlack": "#1e232b",
|
||||
"terminal.ansiRed": "#ea6c73",
|
||||
"terminal.ansiGreen": "#7fd962",
|
||||
"terminal.ansiYellow": "#f9af4f",
|
||||
"terminal.ansiBlue": "#53bdfa",
|
||||
"terminal.ansiMagenta": "#cda1fa",
|
||||
"terminal.ansiCyan": "#90e1c6",
|
||||
"terminal.ansiWhite": "#c7c7c7",
|
||||
"terminal.ansiBrightBlack": "#686868",
|
||||
"terminal.ansiBrightRed": "#f07178",
|
||||
"terminal.ansiBrightGreen": "#aad94c",
|
||||
"terminal.ansiBrightYellow": "#ffb454",
|
||||
"terminal.ansiBrightBlue": "#59c2ff",
|
||||
"terminal.ansiBrightMagenta": "#d2a6ff",
|
||||
"terminal.ansiBrightCyan": "#95e6cb",
|
||||
"terminal.ansiBrightWhite": "#ffffff"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"background": "#0b0e14",
|
||||
"foreground": "#bfbdb6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": [
|
||||
"comment"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#acb6bf8c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": [
|
||||
"string",
|
||||
"constant.other.symbol"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#aad94c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regular Expressions and Escape Characters",
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"constant.character",
|
||||
"constant.other"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#95e6cb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": [
|
||||
"constant.numeric"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d2a6ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constants",
|
||||
"scope": [
|
||||
"constant.language"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d2a6ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": [
|
||||
"variable",
|
||||
"variable.parameter.function-call"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#bfbdb6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Member Variable",
|
||||
"scope": [
|
||||
"variable.member"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f07178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Language variable",
|
||||
"scope": [
|
||||
"variable.language"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": [
|
||||
"storage"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff8f40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": [
|
||||
"keyword"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff8f40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Operators",
|
||||
"scope": [
|
||||
"keyword.operator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f29668"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Separators like ; or ,",
|
||||
"scope": [
|
||||
"punctuation.separator",
|
||||
"punctuation.terminator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#bfbdb6b3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Punctuation",
|
||||
"scope": [
|
||||
"punctuation.section"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#bfbdb6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Accessor",
|
||||
"scope": [
|
||||
"punctuation.accessor"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f29668"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JavaScript/TypeScript interpolation punctuation",
|
||||
"scope": [
|
||||
"punctuation.definition.template-expression"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff8f40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Ruby interpolation punctuation",
|
||||
"scope": [
|
||||
"punctuation.section.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff8f40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Interpolation text",
|
||||
"scope": [
|
||||
"meta.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#bfbdb6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Types fixes",
|
||||
"scope": [
|
||||
"source.java storage.type",
|
||||
"source.haskell storage.type",
|
||||
"source.c storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#59c2ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class type",
|
||||
"scope": [
|
||||
"entity.other.inherited-class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Lambda arrow",
|
||||
"scope": [
|
||||
"storage.type.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff8f40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Java primitive variable types",
|
||||
"scope": [
|
||||
"source.java storage.type.primitive"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": [
|
||||
"entity.name.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffb454"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function arguments",
|
||||
"scope": [
|
||||
"variable.parameter",
|
||||
"meta.parameter"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d2a6ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function call",
|
||||
"scope": [
|
||||
"variable.function",
|
||||
"variable.annotation",
|
||||
"meta.function-call.generic",
|
||||
"support.function.go"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffb454"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": [
|
||||
"support.function",
|
||||
"support.macro"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f07178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Imports and packages",
|
||||
"scope": [
|
||||
"entity.name.import",
|
||||
"entity.name.package"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#aad94c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Entity name",
|
||||
"scope": [
|
||||
"entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#59c2ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag",
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"meta.tag.sgml"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JSX Component",
|
||||
"scope": [
|
||||
"support.class.component"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#59c2ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag start/end",
|
||||
"scope": [
|
||||
"punctuation.definition.tag.end",
|
||||
"punctuation.definition.tag.begin",
|
||||
"punctuation.definition.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#39bae680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": [
|
||||
"entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffb454"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": [
|
||||
"support.constant"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#f29668"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": [
|
||||
"support.type",
|
||||
"support.class",
|
||||
"source.go storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Decorators/annotation",
|
||||
"scope": [
|
||||
"meta.decorator variable.other",
|
||||
"meta.decorator punctuation.decorator",
|
||||
"storage.type.annotation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e6b673"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": [
|
||||
"invalid"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d95757"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.header",
|
||||
"scope": [
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#c594c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Ruby class methods",
|
||||
"scope": [
|
||||
"source.ruby variable.other.readwrite"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffb454"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS tag names",
|
||||
"scope": [
|
||||
"source.css entity.name.tag",
|
||||
"source.sass entity.name.tag",
|
||||
"source.scss entity.name.tag",
|
||||
"source.less entity.name.tag",
|
||||
"source.stylus entity.name.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#59c2ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS browser prefix",
|
||||
"scope": [
|
||||
"source.css support.type",
|
||||
"source.sass support.type",
|
||||
"source.scss support.type",
|
||||
"source.less support.type",
|
||||
"source.stylus support.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#acb6bf8c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS Properties",
|
||||
"scope": [
|
||||
"support.type.property-name"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "normal",
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Numbers",
|
||||
"scope": [
|
||||
"constant.numeric.line-number.find-in-files - match"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#acb6bf8c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Match Numbers",
|
||||
"scope": [
|
||||
"constant.numeric.line-number.match"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff8f40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Lines",
|
||||
"scope": [
|
||||
"entity.name.filename.find-in-files"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#aad94c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"message.error"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d95757"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup heading",
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"markup.heading entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#aad94c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup links",
|
||||
"scope": [
|
||||
"markup.underline.link",
|
||||
"string.other.link"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Italic",
|
||||
"scope": [
|
||||
"markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#f07178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Bold",
|
||||
"scope": [
|
||||
"markup.bold"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#f07178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Bold/italic",
|
||||
"scope": [
|
||||
"markup.italic markup.bold",
|
||||
"markup.bold markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Code",
|
||||
"scope": [
|
||||
"markup.raw"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#bfbdb605"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Code Inline",
|
||||
"scope": [
|
||||
"markup.raw.inline"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#bfbdb60f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Separator",
|
||||
"scope": [
|
||||
"meta.separator"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"background": "#bfbdb60f",
|
||||
"foreground": "#acb6bf8c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Blockquote",
|
||||
"scope": [
|
||||
"markup.quote"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#95e6cb",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup List Bullet",
|
||||
"scope": [
|
||||
"markup.list punctuation.definition.list.begin"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffb454"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup added",
|
||||
"scope": [
|
||||
"markup.inserted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#7fd962"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup modified",
|
||||
"scope": [
|
||||
"markup.changed"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#73b8ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup removed",
|
||||
"scope": [
|
||||
"markup.deleted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f26d78"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Strike",
|
||||
"scope": [
|
||||
"markup.strike"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e6b673"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Table",
|
||||
"scope": [
|
||||
"markup.table"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#bfbdb60f",
|
||||
"foreground": "#39bae6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Raw Inline",
|
||||
"scope": [
|
||||
"text.html.markdown markup.inline.raw"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f29668"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown - Line Break",
|
||||
"scope": [
|
||||
"text.html.markdown meta.dummy.line-break"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#acb6bf8c",
|
||||
"foreground": "#acb6bf8c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown - Raw Block Fenced",
|
||||
"scope": [
|
||||
"punctuation.definition.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#bfbdb6",
|
||||
"foreground": "#acb6bf8c"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true,
|
||||
"semanticTokenColors": {
|
||||
"parameter.label": "#bfbdb6"
|
||||
}
|
||||
}
|
||||
@@ -1,847 +0,0 @@
|
||||
{
|
||||
"type": "light",
|
||||
"colors": {
|
||||
"focusBorder": "#ffaa33b3",
|
||||
"foreground": "#8a9199",
|
||||
"widget.shadow": "#00000026",
|
||||
"selection.background": "#035bd626",
|
||||
"icon.foreground": "#8a9199",
|
||||
"errorForeground": "#e65050",
|
||||
"descriptionForeground": "#8a9199",
|
||||
"textBlockQuote.background": "#f3f4f5",
|
||||
"textLink.foreground": "#ffaa33",
|
||||
"textLink.activeForeground": "#ffaa33",
|
||||
"textPreformat.foreground": "#5c6166",
|
||||
"button.background": "#ffaa33",
|
||||
"button.foreground": "#804a00",
|
||||
"button.hoverBackground": "#f9a52e",
|
||||
"button.secondaryBackground": "#8a919933",
|
||||
"button.secondaryForeground": "#5c6166",
|
||||
"button.secondaryHoverBackground": "#8a919980",
|
||||
"dropdown.background": "#fcfcfc",
|
||||
"dropdown.foreground": "#8a9199",
|
||||
"dropdown.border": "#8a919945",
|
||||
"input.background": "#fcfcfc",
|
||||
"input.border": "#8a919945",
|
||||
"input.foreground": "#5c6166",
|
||||
"input.placeholderForeground": "#8a919980",
|
||||
"inputOption.activeBorder": "#f4a0284d",
|
||||
"inputOption.activeBackground": "#ffaa3333",
|
||||
"inputOption.activeForeground": "#f4a028",
|
||||
"inputValidation.errorBackground": "#fcfcfc",
|
||||
"inputValidation.errorBorder": "#e65050",
|
||||
"inputValidation.infoBackground": "#f8f9fa",
|
||||
"inputValidation.infoBorder": "#55b4d4",
|
||||
"inputValidation.warningBackground": "#f8f9fa",
|
||||
"inputValidation.warningBorder": "#f2ae49",
|
||||
"scrollbar.shadow": "#6b7d8f00",
|
||||
"scrollbarSlider.background": "#8a919966",
|
||||
"scrollbarSlider.hoverBackground": "#8a919999",
|
||||
"scrollbarSlider.activeBackground": "#8a9199b3",
|
||||
"badge.background": "#ffaa3333",
|
||||
"badge.foreground": "#f4a028",
|
||||
"progressBar.background": "#ffaa33",
|
||||
"list.activeSelectionBackground": "#56728f1f",
|
||||
"list.activeSelectionForeground": "#5c6166",
|
||||
"list.focusBackground": "#56728f1f",
|
||||
"list.focusForeground": "#5c6166",
|
||||
"list.focusOutline": "#56728f1f",
|
||||
"list.highlightForeground": "#ffaa33",
|
||||
"list.deemphasizedForeground": "#e65050",
|
||||
"list.hoverBackground": "#56728f1f",
|
||||
"list.inactiveSelectionBackground": "#6b7d8f1f",
|
||||
"list.inactiveSelectionForeground": "#8a9199",
|
||||
"list.invalidItemForeground": "#8a91994d",
|
||||
"list.errorForeground": "#e65050",
|
||||
"tree.indentGuidesStroke": "#8a919959",
|
||||
"listFilterWidget.background": "#f3f4f5",
|
||||
"listFilterWidget.outline": "#ffaa33",
|
||||
"listFilterWidget.noMatchesOutline": "#e65050",
|
||||
"list.filterMatchBackground": "#ddcaef73",
|
||||
"list.filterMatchBorder": "#ecd9ff73",
|
||||
"activityBar.background": "#f8f9fa",
|
||||
"activityBar.foreground": "#8a9199cc",
|
||||
"activityBar.inactiveForeground": "#8a919999",
|
||||
"activityBar.border": "#f8f9fa",
|
||||
"activityBar.activeBorder": "#ffaa33",
|
||||
"activityBarBadge.background": "#ffaa33",
|
||||
"activityBarBadge.foreground": "#f8f9fa",
|
||||
"sideBar.background": "#f8f9fa",
|
||||
"sideBar.border": "#f8f9fa",
|
||||
"sideBarTitle.foreground": "#8a9199",
|
||||
"sideBarSectionHeader.background": "#f8f9fa",
|
||||
"sideBarSectionHeader.foreground": "#8a9199",
|
||||
"sideBarSectionHeader.border": "#f8f9fa",
|
||||
"minimap.background": "#f8f9fa",
|
||||
"minimap.selectionHighlight": "#035bd626",
|
||||
"minimap.errorHighlight": "#e65050",
|
||||
"minimap.findMatchHighlight": "#ecd9ff",
|
||||
"minimapGutter.addedBackground": "#6cbf43",
|
||||
"minimapGutter.modifiedBackground": "#478acc",
|
||||
"minimapGutter.deletedBackground": "#ff7383",
|
||||
"editorGroup.border": "#6b7d8f1f",
|
||||
"editorGroup.background": "#f3f4f5",
|
||||
"editorGroupHeader.noTabsBackground": "#f8f9fa",
|
||||
"editorGroupHeader.tabsBackground": "#f8f9fa",
|
||||
"editorGroupHeader.tabsBorder": "#f8f9fa",
|
||||
"tab.activeBackground": "#f8f9fa",
|
||||
"tab.activeForeground": "#5c6166",
|
||||
"tab.border": "#f8f9fa",
|
||||
"tab.activeBorder": "#ffaa33",
|
||||
"tab.unfocusedActiveBorder": "#8a9199",
|
||||
"tab.inactiveBackground": "#f8f9fa",
|
||||
"tab.inactiveForeground": "#8a9199",
|
||||
"tab.unfocusedActiveForeground": "#8a9199",
|
||||
"tab.unfocusedInactiveForeground": "#8a9199",
|
||||
"editor.background": "#f8f9fa",
|
||||
"editor.foreground": "#5c6166",
|
||||
"editorLineNumber.foreground": "#8a919966",
|
||||
"editorLineNumber.activeForeground": "#8a9199cc",
|
||||
"editorCursor.foreground": "#ffaa33",
|
||||
"editor.inactiveSelectionBackground": "#035bd612",
|
||||
"editor.selectionBackground": "#035bd626",
|
||||
"editor.selectionHighlightBackground": "#6cbf4326",
|
||||
"editor.selectionHighlightBorder": "#6cbf4300",
|
||||
"editor.wordHighlightBackground": "#478acc14",
|
||||
"editor.wordHighlightStrongBackground": "#6cbf4314",
|
||||
"editor.wordHighlightBorder": "#478acc80",
|
||||
"editor.wordHighlightStrongBorder": "#6cbf4380",
|
||||
"editor.findMatchBackground": "#ecd9ff",
|
||||
"editor.findMatchBorder": "#ecd9ff",
|
||||
"editor.findMatchHighlightBackground": "#ecd9ff73",
|
||||
"editor.findMatchHighlightBorder": "#ddcaef73",
|
||||
"editor.findRangeHighlightBackground": "#ecd9ff40",
|
||||
"editor.rangeHighlightBackground": "#ecd9ff33",
|
||||
"editor.lineHighlightBackground": "#8a91991a",
|
||||
"editorLink.activeForeground": "#ffaa33",
|
||||
"editorWhitespace.foreground": "#8a919966",
|
||||
"editorIndentGuide.background": "#8a91992e",
|
||||
"editorIndentGuide.activeBackground": "#8a919959",
|
||||
"editorRuler.foreground": "#8a91992e",
|
||||
"editorCodeLens.foreground": "#787b8099",
|
||||
"editorBracketMatch.background": "#8a91994d",
|
||||
"editorBracketMatch.border": "#8a91994d",
|
||||
"editor.snippetTabstopHighlightBackground": "#6cbf4333",
|
||||
"editorOverviewRuler.border": "#6b7d8f1f",
|
||||
"editorOverviewRuler.modifiedForeground": "#478acc",
|
||||
"editorOverviewRuler.addedForeground": "#6cbf43",
|
||||
"editorOverviewRuler.deletedForeground": "#ff7383",
|
||||
"editorOverviewRuler.errorForeground": "#e65050",
|
||||
"editorOverviewRuler.warningForeground": "#ffaa33",
|
||||
"editorOverviewRuler.bracketMatchForeground": "#8a9199b3",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#478acc66",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#6cbf4366",
|
||||
"editorOverviewRuler.findMatchForeground": "#ecd9ff",
|
||||
"editorError.foreground": "#e65050",
|
||||
"editorWarning.foreground": "#ffaa33",
|
||||
"editorGutter.modifiedBackground": "#478acccc",
|
||||
"editorGutter.addedBackground": "#6cbf43cc",
|
||||
"editorGutter.deletedBackground": "#ff7383cc",
|
||||
"diffEditor.insertedTextBackground": "#6cbf431f",
|
||||
"diffEditor.removedTextBackground": "#ff73831f",
|
||||
"diffEditor.diagonalFill": "#6b7d8f1f",
|
||||
"editorWidget.background": "#f3f4f5",
|
||||
"editorWidget.border": "#6b7d8f1f",
|
||||
"editorHoverWidget.background": "#f3f4f5",
|
||||
"editorHoverWidget.border": "#6b7d8f1f",
|
||||
"editorSuggestWidget.background": "#f3f4f5",
|
||||
"editorSuggestWidget.border": "#6b7d8f1f",
|
||||
"editorSuggestWidget.highlightForeground": "#ffaa33",
|
||||
"editorSuggestWidget.selectedBackground": "#56728f1f",
|
||||
"debugExceptionWidget.border": "#6b7d8f1f",
|
||||
"debugExceptionWidget.background": "#f3f4f5",
|
||||
"editorMarkerNavigation.background": "#f3f4f5",
|
||||
"peekView.border": "#56728f1f",
|
||||
"peekViewTitle.background": "#56728f1f",
|
||||
"peekViewTitleDescription.foreground": "#8a9199",
|
||||
"peekViewTitleLabel.foreground": "#5c6166",
|
||||
"peekViewEditor.background": "#f3f4f5",
|
||||
"peekViewEditor.matchHighlightBackground": "#ecd9ff73",
|
||||
"peekViewEditor.matchHighlightBorder": "#ddcaef73",
|
||||
"peekViewResult.background": "#f3f4f5",
|
||||
"peekViewResult.fileForeground": "#5c6166",
|
||||
"peekViewResult.lineForeground": "#8a9199",
|
||||
"peekViewResult.matchHighlightBackground": "#ecd9ff73",
|
||||
"peekViewResult.selectionBackground": "#56728f1f",
|
||||
"panel.background": "#f8f9fa",
|
||||
"panel.border": "#6b7d8f1f",
|
||||
"panelTitle.activeBorder": "#ffaa33",
|
||||
"panelTitle.activeForeground": "#5c6166",
|
||||
"panelTitle.inactiveForeground": "#8a9199",
|
||||
"statusBar.background": "#f8f9fa",
|
||||
"statusBar.foreground": "#8a9199",
|
||||
"statusBar.border": "#f8f9fa",
|
||||
"statusBar.debuggingBackground": "#ed9366",
|
||||
"statusBar.debuggingForeground": "#fcfcfc",
|
||||
"statusBar.noFolderBackground": "#f3f4f5",
|
||||
"statusBarItem.activeBackground": "#8a919933",
|
||||
"statusBarItem.hoverBackground": "#8a919933",
|
||||
"statusBarItem.prominentBackground": "#6b7d8f1f",
|
||||
"statusBarItem.prominentHoverBackground": "#00000030",
|
||||
"statusBarItem.remoteBackground": "#ffaa33",
|
||||
"statusBarItem.remoteForeground": "#804a00",
|
||||
"titleBar.activeBackground": "#f8f9fa",
|
||||
"titleBar.activeForeground": "#5c6166",
|
||||
"titleBar.inactiveBackground": "#f8f9fa",
|
||||
"titleBar.inactiveForeground": "#8a9199",
|
||||
"titleBar.border": "#f8f9fa",
|
||||
"extensionButton.prominentForeground": "#804a00",
|
||||
"extensionButton.prominentBackground": "#ffaa33",
|
||||
"extensionButton.prominentHoverBackground": "#f9a52e",
|
||||
"pickerGroup.border": "#6b7d8f1f",
|
||||
"pickerGroup.foreground": "#8a919980",
|
||||
"debugToolBar.background": "#f3f4f5",
|
||||
"debugIcon.breakpointForeground": "#ed9366",
|
||||
"debugIcon.breakpointDisabledForeground": "#ed936680",
|
||||
"debugConsoleInputIcon.foreground": "#ffaa33",
|
||||
"welcomePage.tileBackground": "#f8f9fa",
|
||||
"welcomePage.tileShadow": "#00000026",
|
||||
"welcomePage.progress.background": "#8a91991a",
|
||||
"welcomePage.buttonBackground": "#ffaa3366",
|
||||
"walkThrough.embeddedEditorBackground": "#f3f4f5",
|
||||
"gitDecoration.modifiedResourceForeground": "#478accb3",
|
||||
"gitDecoration.deletedResourceForeground": "#ff7383b3",
|
||||
"gitDecoration.untrackedResourceForeground": "#6cbf43b3",
|
||||
"gitDecoration.ignoredResourceForeground": "#8a919980",
|
||||
"gitDecoration.conflictingResourceForeground": "",
|
||||
"gitDecoration.submoduleResourceForeground": "#a37accb3",
|
||||
"settings.headerForeground": "#5c6166",
|
||||
"settings.modifiedItemIndicator": "#478acc",
|
||||
"keybindingLabel.background": "#8a91991a",
|
||||
"keybindingLabel.foreground": "#5c6166",
|
||||
"keybindingLabel.border": "#5c61661a",
|
||||
"keybindingLabel.bottomBorder": "#5c61661a",
|
||||
"terminal.background": "#f8f9fa",
|
||||
"terminal.foreground": "#5c6166",
|
||||
"terminal.ansiBlack": "#000000",
|
||||
"terminal.ansiRed": "#ea6c6d",
|
||||
"terminal.ansiGreen": "#6cbf43",
|
||||
"terminal.ansiYellow": "#eca944",
|
||||
"terminal.ansiBlue": "#3199e1",
|
||||
"terminal.ansiMagenta": "#9e75c7",
|
||||
"terminal.ansiCyan": "#46ba94",
|
||||
"terminal.ansiWhite": "#c7c7c7",
|
||||
"terminal.ansiBrightBlack": "#686868",
|
||||
"terminal.ansiBrightRed": "#f07171",
|
||||
"terminal.ansiBrightGreen": "#86b300",
|
||||
"terminal.ansiBrightYellow": "#f2ae49",
|
||||
"terminal.ansiBrightBlue": "#399ee6",
|
||||
"terminal.ansiBrightMagenta": "#a37acc",
|
||||
"terminal.ansiBrightCyan": "#4cbf99",
|
||||
"terminal.ansiBrightWhite": "#d1d1d1"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"background": "#f8f9fa",
|
||||
"foreground": "#5c6166"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": [
|
||||
"comment"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#787b8099"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": [
|
||||
"string",
|
||||
"constant.other.symbol"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#86b300"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regular Expressions and Escape Characters",
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"constant.character",
|
||||
"constant.other"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#4cbf99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": [
|
||||
"constant.numeric"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a37acc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constants",
|
||||
"scope": [
|
||||
"constant.language"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a37acc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": [
|
||||
"variable",
|
||||
"variable.parameter.function-call"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5c6166"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Member Variable",
|
||||
"scope": [
|
||||
"variable.member"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f07171"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Language variable",
|
||||
"scope": [
|
||||
"variable.language"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": [
|
||||
"storage"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fa8d3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": [
|
||||
"keyword"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fa8d3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Operators",
|
||||
"scope": [
|
||||
"keyword.operator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ed9366"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Separators like ; or ,",
|
||||
"scope": [
|
||||
"punctuation.separator",
|
||||
"punctuation.terminator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5c6166b3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Punctuation",
|
||||
"scope": [
|
||||
"punctuation.section"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5c6166"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Accessor",
|
||||
"scope": [
|
||||
"punctuation.accessor"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ed9366"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JavaScript/TypeScript interpolation punctuation",
|
||||
"scope": [
|
||||
"punctuation.definition.template-expression"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fa8d3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Ruby interpolation punctuation",
|
||||
"scope": [
|
||||
"punctuation.section.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fa8d3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Interpolation text",
|
||||
"scope": [
|
||||
"meta.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5c6166"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Types fixes",
|
||||
"scope": [
|
||||
"source.java storage.type",
|
||||
"source.haskell storage.type",
|
||||
"source.c storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#399ee6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class type",
|
||||
"scope": [
|
||||
"entity.other.inherited-class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Lambda arrow",
|
||||
"scope": [
|
||||
"storage.type.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fa8d3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Java primitive variable types",
|
||||
"scope": [
|
||||
"source.java storage.type.primitive"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": [
|
||||
"entity.name.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f2ae49"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function arguments",
|
||||
"scope": [
|
||||
"variable.parameter",
|
||||
"meta.parameter"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#a37acc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function call",
|
||||
"scope": [
|
||||
"variable.function",
|
||||
"variable.annotation",
|
||||
"meta.function-call.generic",
|
||||
"support.function.go"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f2ae49"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": [
|
||||
"support.function",
|
||||
"support.macro"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f07171"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Imports and packages",
|
||||
"scope": [
|
||||
"entity.name.import",
|
||||
"entity.name.package"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#86b300"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Entity name",
|
||||
"scope": [
|
||||
"entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#399ee6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag",
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"meta.tag.sgml"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JSX Component",
|
||||
"scope": [
|
||||
"support.class.component"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#399ee6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag start/end",
|
||||
"scope": [
|
||||
"punctuation.definition.tag.end",
|
||||
"punctuation.definition.tag.begin",
|
||||
"punctuation.definition.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#55b4d480"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": [
|
||||
"entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f2ae49"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": [
|
||||
"support.constant"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#ed9366"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": [
|
||||
"support.type",
|
||||
"support.class",
|
||||
"source.go storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Decorators/annotation",
|
||||
"scope": [
|
||||
"meta.decorator variable.other",
|
||||
"meta.decorator punctuation.decorator",
|
||||
"storage.type.annotation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e6ba7e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": [
|
||||
"invalid"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e65050"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.header",
|
||||
"scope": [
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#c594c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Ruby class methods",
|
||||
"scope": [
|
||||
"source.ruby variable.other.readwrite"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f2ae49"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS tag names",
|
||||
"scope": [
|
||||
"source.css entity.name.tag",
|
||||
"source.sass entity.name.tag",
|
||||
"source.scss entity.name.tag",
|
||||
"source.less entity.name.tag",
|
||||
"source.stylus entity.name.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#399ee6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS browser prefix",
|
||||
"scope": [
|
||||
"source.css support.type",
|
||||
"source.sass support.type",
|
||||
"source.scss support.type",
|
||||
"source.less support.type",
|
||||
"source.stylus support.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#787b8099"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS Properties",
|
||||
"scope": [
|
||||
"support.type.property-name"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "normal",
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Numbers",
|
||||
"scope": [
|
||||
"constant.numeric.line-number.find-in-files - match"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#787b8099"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Match Numbers",
|
||||
"scope": [
|
||||
"constant.numeric.line-number.match"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fa8d3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Lines",
|
||||
"scope": [
|
||||
"entity.name.filename.find-in-files"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#86b300"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"message.error"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e65050"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup heading",
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"markup.heading entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#86b300"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup links",
|
||||
"scope": [
|
||||
"markup.underline.link",
|
||||
"string.other.link"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Italic",
|
||||
"scope": [
|
||||
"markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#f07171"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Bold",
|
||||
"scope": [
|
||||
"markup.bold"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#f07171"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Bold/italic",
|
||||
"scope": [
|
||||
"markup.italic markup.bold",
|
||||
"markup.bold markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Code",
|
||||
"scope": [
|
||||
"markup.raw"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#5c616605"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Code Inline",
|
||||
"scope": [
|
||||
"markup.raw.inline"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#5c61660f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Separator",
|
||||
"scope": [
|
||||
"meta.separator"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"background": "#5c61660f",
|
||||
"foreground": "#787b8099"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Blockquote",
|
||||
"scope": [
|
||||
"markup.quote"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#4cbf99",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup List Bullet",
|
||||
"scope": [
|
||||
"markup.list punctuation.definition.list.begin"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f2ae49"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup added",
|
||||
"scope": [
|
||||
"markup.inserted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#6cbf43"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup modified",
|
||||
"scope": [
|
||||
"markup.changed"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#478acc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup removed",
|
||||
"scope": [
|
||||
"markup.deleted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff7383"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Strike",
|
||||
"scope": [
|
||||
"markup.strike"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e6ba7e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Table",
|
||||
"scope": [
|
||||
"markup.table"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#5c61660f",
|
||||
"foreground": "#55b4d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Raw Inline",
|
||||
"scope": [
|
||||
"text.html.markdown markup.inline.raw"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ed9366"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown - Line Break",
|
||||
"scope": [
|
||||
"text.html.markdown meta.dummy.line-break"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#787b8099",
|
||||
"foreground": "#787b8099"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown - Raw Block Fenced",
|
||||
"scope": [
|
||||
"punctuation.definition.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#5c6166",
|
||||
"foreground": "#787b8099"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true,
|
||||
"semanticTokenColors": {
|
||||
"parameter.label": "#5c6166"
|
||||
}
|
||||
}
|
||||
@@ -1,847 +0,0 @@
|
||||
{
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"focusBorder": "#ffcc66b3",
|
||||
"foreground": "#707a8c",
|
||||
"widget.shadow": "#12151cb3",
|
||||
"selection.background": "#409fff40",
|
||||
"icon.foreground": "#707a8c",
|
||||
"errorForeground": "#ff6666",
|
||||
"descriptionForeground": "#707a8c",
|
||||
"textBlockQuote.background": "#1c212b",
|
||||
"textLink.foreground": "#ffcc66",
|
||||
"textLink.activeForeground": "#ffcc66",
|
||||
"textPreformat.foreground": "#cccac2",
|
||||
"button.background": "#ffcc66",
|
||||
"button.foreground": "#805500",
|
||||
"button.hoverBackground": "#fac761",
|
||||
"button.secondaryBackground": "#707a8c33",
|
||||
"button.secondaryForeground": "#cccac2",
|
||||
"button.secondaryHoverBackground": "#707a8c80",
|
||||
"dropdown.background": "#242936",
|
||||
"dropdown.foreground": "#707a8c",
|
||||
"dropdown.border": "#707a8c45",
|
||||
"input.background": "#242936",
|
||||
"input.border": "#707a8c45",
|
||||
"input.foreground": "#cccac2",
|
||||
"input.placeholderForeground": "#707a8c80",
|
||||
"inputOption.activeBorder": "#ffcc664d",
|
||||
"inputOption.activeBackground": "#ffcc6633",
|
||||
"inputOption.activeForeground": "#ffcc66",
|
||||
"inputValidation.errorBackground": "#242936",
|
||||
"inputValidation.errorBorder": "#ff6666",
|
||||
"inputValidation.infoBackground": "#1f2430",
|
||||
"inputValidation.infoBorder": "#5ccfe6",
|
||||
"inputValidation.warningBackground": "#1f2430",
|
||||
"inputValidation.warningBorder": "#ffd173",
|
||||
"scrollbar.shadow": "#171b2400",
|
||||
"scrollbarSlider.background": "#707a8c66",
|
||||
"scrollbarSlider.hoverBackground": "#707a8c99",
|
||||
"scrollbarSlider.activeBackground": "#707a8cb3",
|
||||
"badge.background": "#ffcc6633",
|
||||
"badge.foreground": "#ffcc66",
|
||||
"progressBar.background": "#ffcc66",
|
||||
"list.activeSelectionBackground": "#63759926",
|
||||
"list.activeSelectionForeground": "#cccac2",
|
||||
"list.focusBackground": "#63759926",
|
||||
"list.focusForeground": "#cccac2",
|
||||
"list.focusOutline": "#63759926",
|
||||
"list.highlightForeground": "#ffcc66",
|
||||
"list.deemphasizedForeground": "#ff6666",
|
||||
"list.hoverBackground": "#63759926",
|
||||
"list.inactiveSelectionBackground": "#69758c1f",
|
||||
"list.inactiveSelectionForeground": "#707a8c",
|
||||
"list.invalidItemForeground": "#707a8c4d",
|
||||
"list.errorForeground": "#ff6666",
|
||||
"tree.indentGuidesStroke": "#8a919959",
|
||||
"listFilterWidget.background": "#1c212b",
|
||||
"listFilterWidget.outline": "#ffcc66",
|
||||
"listFilterWidget.noMatchesOutline": "#ff6666",
|
||||
"list.filterMatchBackground": "#5c467266",
|
||||
"list.filterMatchBorder": "#69538066",
|
||||
"activityBar.background": "#1f2430",
|
||||
"activityBar.foreground": "#707a8ccc",
|
||||
"activityBar.inactiveForeground": "#707a8c99",
|
||||
"activityBar.border": "#1f2430",
|
||||
"activityBar.activeBorder": "#ffcc66",
|
||||
"activityBarBadge.background": "#ffcc66",
|
||||
"activityBarBadge.foreground": "#805500",
|
||||
"sideBar.background": "#1f2430",
|
||||
"sideBar.border": "#1f2430",
|
||||
"sideBarTitle.foreground": "#707a8c",
|
||||
"sideBarSectionHeader.background": "#1f2430",
|
||||
"sideBarSectionHeader.foreground": "#707a8c",
|
||||
"sideBarSectionHeader.border": "#1f2430",
|
||||
"minimap.background": "#1f2430",
|
||||
"minimap.selectionHighlight": "#409fff40",
|
||||
"minimap.errorHighlight": "#ff6666",
|
||||
"minimap.findMatchHighlight": "#695380",
|
||||
"minimapGutter.addedBackground": "#87d96c",
|
||||
"minimapGutter.modifiedBackground": "#80bfff",
|
||||
"minimapGutter.deletedBackground": "#f27983",
|
||||
"editorGroup.border": "#171b24",
|
||||
"editorGroup.background": "#1c212b",
|
||||
"editorGroupHeader.noTabsBackground": "#1f2430",
|
||||
"editorGroupHeader.tabsBackground": "#1f2430",
|
||||
"editorGroupHeader.tabsBorder": "#1f2430",
|
||||
"tab.activeBackground": "#1f2430",
|
||||
"tab.activeForeground": "#cccac2",
|
||||
"tab.border": "#1f2430",
|
||||
"tab.activeBorder": "#ffcc66",
|
||||
"tab.unfocusedActiveBorder": "#707a8c",
|
||||
"tab.inactiveBackground": "#1f2430",
|
||||
"tab.inactiveForeground": "#707a8c",
|
||||
"tab.unfocusedActiveForeground": "#707a8c",
|
||||
"tab.unfocusedInactiveForeground": "#707a8c",
|
||||
"editor.background": "#1f2430",
|
||||
"editor.foreground": "#cccac2",
|
||||
"editorLineNumber.foreground": "#8a919966",
|
||||
"editorLineNumber.activeForeground": "#8a9199cc",
|
||||
"editorCursor.foreground": "#ffcc66",
|
||||
"editor.inactiveSelectionBackground": "#409fff21",
|
||||
"editor.selectionBackground": "#409fff40",
|
||||
"editor.selectionHighlightBackground": "#87d96c26",
|
||||
"editor.selectionHighlightBorder": "#87d96c00",
|
||||
"editor.wordHighlightBackground": "#80bfff14",
|
||||
"editor.wordHighlightStrongBackground": "#87d96c14",
|
||||
"editor.wordHighlightBorder": "#80bfff80",
|
||||
"editor.wordHighlightStrongBorder": "#87d96c80",
|
||||
"editor.findMatchBackground": "#695380",
|
||||
"editor.findMatchBorder": "#695380",
|
||||
"editor.findMatchHighlightBackground": "#69538066",
|
||||
"editor.findMatchHighlightBorder": "#5c467266",
|
||||
"editor.findRangeHighlightBackground": "#69538040",
|
||||
"editor.rangeHighlightBackground": "#69538033",
|
||||
"editor.lineHighlightBackground": "#1a1f29",
|
||||
"editorLink.activeForeground": "#ffcc66",
|
||||
"editorWhitespace.foreground": "#8a919966",
|
||||
"editorIndentGuide.background": "#8a91992e",
|
||||
"editorIndentGuide.activeBackground": "#8a919959",
|
||||
"editorRuler.foreground": "#8a91992e",
|
||||
"editorCodeLens.foreground": "#b8cfe680",
|
||||
"editorBracketMatch.background": "#8a91994d",
|
||||
"editorBracketMatch.border": "#8a91994d",
|
||||
"editor.snippetTabstopHighlightBackground": "#87d96c33",
|
||||
"editorOverviewRuler.border": "#171b24",
|
||||
"editorOverviewRuler.modifiedForeground": "#80bfff",
|
||||
"editorOverviewRuler.addedForeground": "#87d96c",
|
||||
"editorOverviewRuler.deletedForeground": "#f27983",
|
||||
"editorOverviewRuler.errorForeground": "#ff6666",
|
||||
"editorOverviewRuler.warningForeground": "#ffcc66",
|
||||
"editorOverviewRuler.bracketMatchForeground": "#8a9199b3",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#80bfff66",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#87d96c66",
|
||||
"editorOverviewRuler.findMatchForeground": "#695380",
|
||||
"editorError.foreground": "#ff6666",
|
||||
"editorWarning.foreground": "#ffcc66",
|
||||
"editorGutter.modifiedBackground": "#80bfffcc",
|
||||
"editorGutter.addedBackground": "#87d96ccc",
|
||||
"editorGutter.deletedBackground": "#f27983cc",
|
||||
"diffEditor.insertedTextBackground": "#87d96c1f",
|
||||
"diffEditor.removedTextBackground": "#f279831f",
|
||||
"diffEditor.diagonalFill": "#171b24",
|
||||
"editorWidget.background": "#1c212b",
|
||||
"editorWidget.border": "#171b24",
|
||||
"editorHoverWidget.background": "#1c212b",
|
||||
"editorHoverWidget.border": "#171b24",
|
||||
"editorSuggestWidget.background": "#1c212b",
|
||||
"editorSuggestWidget.border": "#171b24",
|
||||
"editorSuggestWidget.highlightForeground": "#ffcc66",
|
||||
"editorSuggestWidget.selectedBackground": "#63759926",
|
||||
"debugExceptionWidget.border": "#171b24",
|
||||
"debugExceptionWidget.background": "#1c212b",
|
||||
"editorMarkerNavigation.background": "#1c212b",
|
||||
"peekView.border": "#63759926",
|
||||
"peekViewTitle.background": "#63759926",
|
||||
"peekViewTitleDescription.foreground": "#707a8c",
|
||||
"peekViewTitleLabel.foreground": "#cccac2",
|
||||
"peekViewEditor.background": "#1c212b",
|
||||
"peekViewEditor.matchHighlightBackground": "#69538066",
|
||||
"peekViewEditor.matchHighlightBorder": "#5c467266",
|
||||
"peekViewResult.background": "#1c212b",
|
||||
"peekViewResult.fileForeground": "#cccac2",
|
||||
"peekViewResult.lineForeground": "#707a8c",
|
||||
"peekViewResult.matchHighlightBackground": "#69538066",
|
||||
"peekViewResult.selectionBackground": "#63759926",
|
||||
"panel.background": "#1f2430",
|
||||
"panel.border": "#171b24",
|
||||
"panelTitle.activeBorder": "#ffcc66",
|
||||
"panelTitle.activeForeground": "#cccac2",
|
||||
"panelTitle.inactiveForeground": "#707a8c",
|
||||
"statusBar.background": "#1f2430",
|
||||
"statusBar.foreground": "#707a8c",
|
||||
"statusBar.border": "#1f2430",
|
||||
"statusBar.debuggingBackground": "#f29e74",
|
||||
"statusBar.debuggingForeground": "#242936",
|
||||
"statusBar.noFolderBackground": "#1c212b",
|
||||
"statusBarItem.activeBackground": "#707a8c33",
|
||||
"statusBarItem.hoverBackground": "#707a8c33",
|
||||
"statusBarItem.prominentBackground": "#171b24",
|
||||
"statusBarItem.prominentHoverBackground": "#00000030",
|
||||
"statusBarItem.remoteBackground": "#ffcc66",
|
||||
"statusBarItem.remoteForeground": "#805500",
|
||||
"titleBar.activeBackground": "#1f2430",
|
||||
"titleBar.activeForeground": "#cccac2",
|
||||
"titleBar.inactiveBackground": "#1f2430",
|
||||
"titleBar.inactiveForeground": "#707a8c",
|
||||
"titleBar.border": "#1f2430",
|
||||
"extensionButton.prominentForeground": "#805500",
|
||||
"extensionButton.prominentBackground": "#ffcc66",
|
||||
"extensionButton.prominentHoverBackground": "#fac761",
|
||||
"pickerGroup.border": "#171b24",
|
||||
"pickerGroup.foreground": "#707a8c80",
|
||||
"debugToolBar.background": "#1c212b",
|
||||
"debugIcon.breakpointForeground": "#f29e74",
|
||||
"debugIcon.breakpointDisabledForeground": "#f29e7480",
|
||||
"debugConsoleInputIcon.foreground": "#ffcc66",
|
||||
"welcomePage.tileBackground": "#1f2430",
|
||||
"welcomePage.tileShadow": "#12151cb3",
|
||||
"welcomePage.progress.background": "#1a1f29",
|
||||
"welcomePage.buttonBackground": "#ffcc6666",
|
||||
"walkThrough.embeddedEditorBackground": "#1c212b",
|
||||
"gitDecoration.modifiedResourceForeground": "#80bfffb3",
|
||||
"gitDecoration.deletedResourceForeground": "#f27983b3",
|
||||
"gitDecoration.untrackedResourceForeground": "#87d96cb3",
|
||||
"gitDecoration.ignoredResourceForeground": "#707a8c80",
|
||||
"gitDecoration.conflictingResourceForeground": "",
|
||||
"gitDecoration.submoduleResourceForeground": "#dfbfffb3",
|
||||
"settings.headerForeground": "#cccac2",
|
||||
"settings.modifiedItemIndicator": "#80bfff",
|
||||
"keybindingLabel.background": "#707a8c1a",
|
||||
"keybindingLabel.foreground": "#cccac2",
|
||||
"keybindingLabel.border": "#cccac21a",
|
||||
"keybindingLabel.bottomBorder": "#cccac21a",
|
||||
"terminal.background": "#1f2430",
|
||||
"terminal.foreground": "#cccac2",
|
||||
"terminal.ansiBlack": "#171b24",
|
||||
"terminal.ansiRed": "#ed8274",
|
||||
"terminal.ansiGreen": "#87d96c",
|
||||
"terminal.ansiYellow": "#facc6e",
|
||||
"terminal.ansiBlue": "#6dcbfa",
|
||||
"terminal.ansiMagenta": "#dabafa",
|
||||
"terminal.ansiCyan": "#90e1c6",
|
||||
"terminal.ansiWhite": "#c7c7c7",
|
||||
"terminal.ansiBrightBlack": "#686868",
|
||||
"terminal.ansiBrightRed": "#f28779",
|
||||
"terminal.ansiBrightGreen": "#d5ff80",
|
||||
"terminal.ansiBrightYellow": "#ffd173",
|
||||
"terminal.ansiBrightBlue": "#73d0ff",
|
||||
"terminal.ansiBrightMagenta": "#dfbfff",
|
||||
"terminal.ansiBrightCyan": "#95e6cb",
|
||||
"terminal.ansiBrightWhite": "#ffffff"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"background": "#1f2430",
|
||||
"foreground": "#cccac2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": [
|
||||
"comment"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#b8cfe680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": [
|
||||
"string",
|
||||
"constant.other.symbol"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d5ff80"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regular Expressions and Escape Characters",
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"constant.character",
|
||||
"constant.other"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#95e6cb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": [
|
||||
"constant.numeric"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#dfbfff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constants",
|
||||
"scope": [
|
||||
"constant.language"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#dfbfff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": [
|
||||
"variable",
|
||||
"variable.parameter.function-call"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#cccac2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Member Variable",
|
||||
"scope": [
|
||||
"variable.member"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f28779"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Language variable",
|
||||
"scope": [
|
||||
"variable.language"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": [
|
||||
"storage"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffad66"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": [
|
||||
"keyword"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffad66"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Operators",
|
||||
"scope": [
|
||||
"keyword.operator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f29e74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Separators like ; or ,",
|
||||
"scope": [
|
||||
"punctuation.separator",
|
||||
"punctuation.terminator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#cccac2b3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Punctuation",
|
||||
"scope": [
|
||||
"punctuation.section"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#cccac2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Accessor",
|
||||
"scope": [
|
||||
"punctuation.accessor"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f29e74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JavaScript/TypeScript interpolation punctuation",
|
||||
"scope": [
|
||||
"punctuation.definition.template-expression"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffad66"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Ruby interpolation punctuation",
|
||||
"scope": [
|
||||
"punctuation.section.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffad66"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Interpolation text",
|
||||
"scope": [
|
||||
"meta.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#cccac2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Types fixes",
|
||||
"scope": [
|
||||
"source.java storage.type",
|
||||
"source.haskell storage.type",
|
||||
"source.c storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#73d0ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class type",
|
||||
"scope": [
|
||||
"entity.other.inherited-class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Lambda arrow",
|
||||
"scope": [
|
||||
"storage.type.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffad66"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Java primitive variable types",
|
||||
"scope": [
|
||||
"source.java storage.type.primitive"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": [
|
||||
"entity.name.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffd173"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function arguments",
|
||||
"scope": [
|
||||
"variable.parameter",
|
||||
"meta.parameter"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#dfbfff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function call",
|
||||
"scope": [
|
||||
"variable.function",
|
||||
"variable.annotation",
|
||||
"meta.function-call.generic",
|
||||
"support.function.go"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffd173"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": [
|
||||
"support.function",
|
||||
"support.macro"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f28779"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Imports and packages",
|
||||
"scope": [
|
||||
"entity.name.import",
|
||||
"entity.name.package"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d5ff80"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Entity name",
|
||||
"scope": [
|
||||
"entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#73d0ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag",
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"meta.tag.sgml"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JSX Component",
|
||||
"scope": [
|
||||
"support.class.component"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#73d0ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag start/end",
|
||||
"scope": [
|
||||
"punctuation.definition.tag.end",
|
||||
"punctuation.definition.tag.begin",
|
||||
"punctuation.definition.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5ccfe680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": [
|
||||
"entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffd173"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": [
|
||||
"support.constant"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#f29e74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": [
|
||||
"support.type",
|
||||
"support.class",
|
||||
"source.go storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Decorators/annotation",
|
||||
"scope": [
|
||||
"meta.decorator variable.other",
|
||||
"meta.decorator punctuation.decorator",
|
||||
"storage.type.annotation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffdfb3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": [
|
||||
"invalid"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff6666"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff.header",
|
||||
"scope": [
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#c594c5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Ruby class methods",
|
||||
"scope": [
|
||||
"source.ruby variable.other.readwrite"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffd173"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS tag names",
|
||||
"scope": [
|
||||
"source.css entity.name.tag",
|
||||
"source.sass entity.name.tag",
|
||||
"source.scss entity.name.tag",
|
||||
"source.less entity.name.tag",
|
||||
"source.stylus entity.name.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#73d0ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS browser prefix",
|
||||
"scope": [
|
||||
"source.css support.type",
|
||||
"source.sass support.type",
|
||||
"source.scss support.type",
|
||||
"source.less support.type",
|
||||
"source.stylus support.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#b8cfe680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS Properties",
|
||||
"scope": [
|
||||
"support.type.property-name"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "normal",
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Numbers",
|
||||
"scope": [
|
||||
"constant.numeric.line-number.find-in-files - match"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#b8cfe680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Match Numbers",
|
||||
"scope": [
|
||||
"constant.numeric.line-number.match"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffad66"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search Results Lines",
|
||||
"scope": [
|
||||
"entity.name.filename.find-in-files"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d5ff80"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"message.error"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff6666"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup heading",
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"markup.heading entity.name"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#d5ff80"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup links",
|
||||
"scope": [
|
||||
"markup.underline.link",
|
||||
"string.other.link"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Italic",
|
||||
"scope": [
|
||||
"markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#f28779"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Bold",
|
||||
"scope": [
|
||||
"markup.bold"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#f28779"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Bold/italic",
|
||||
"scope": [
|
||||
"markup.italic markup.bold",
|
||||
"markup.bold markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Code",
|
||||
"scope": [
|
||||
"markup.raw"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#cccac205"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Code Inline",
|
||||
"scope": [
|
||||
"markup.raw.inline"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#cccac20f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown Separator",
|
||||
"scope": [
|
||||
"meta.separator"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"background": "#cccac20f",
|
||||
"foreground": "#b8cfe680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Blockquote",
|
||||
"scope": [
|
||||
"markup.quote"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#95e6cb",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup List Bullet",
|
||||
"scope": [
|
||||
"markup.list punctuation.definition.list.begin"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffd173"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup added",
|
||||
"scope": [
|
||||
"markup.inserted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#87d96c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup modified",
|
||||
"scope": [
|
||||
"markup.changed"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#80bfff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup removed",
|
||||
"scope": [
|
||||
"markup.deleted"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f27983"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Strike",
|
||||
"scope": [
|
||||
"markup.strike"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ffdfb3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Table",
|
||||
"scope": [
|
||||
"markup.table"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#cccac20f",
|
||||
"foreground": "#5ccfe6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Raw Inline",
|
||||
"scope": [
|
||||
"text.html.markdown markup.inline.raw"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#f29e74"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown - Line Break",
|
||||
"scope": [
|
||||
"text.html.markdown meta.dummy.line-break"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#b8cfe680",
|
||||
"foreground": "#b8cfe680"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown - Raw Block Fenced",
|
||||
"scope": [
|
||||
"punctuation.definition.markdown"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#cccac2",
|
||||
"foreground": "#b8cfe680"
|
||||
}
|
||||
}
|
||||
],
|
||||
"semanticHighlighting": true,
|
||||
"semanticTokenColors": {
|
||||
"parameter.label": "#cccac2"
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"name": "Ayu",
|
||||
"author": "dempfi (Ike Ku)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Ayu Light",
|
||||
"file_name": "ayu-light.json",
|
||||
"appearance": "light"
|
||||
},
|
||||
{
|
||||
"name": "Ayu Mirage",
|
||||
"file_name": "ayu-mirage.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Ayu Dark",
|
||||
"file_name": "ayu-dark.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Dracula Theme
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"name": "Dracula",
|
||||
"author": "Zeno Rocha",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Dracula",
|
||||
"file_name": "dracula.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
MIT/X11
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"name": "Gruvbox",
|
||||
"author": "morhetz",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Gruvbox Dark Hard",
|
||||
"file_name": "gruvbox-dark-hard.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Gruvbox Dark Medium",
|
||||
"file_name": "gruvbox-dark-medium.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Gruvbox Dark Soft",
|
||||
"file_name": "gruvbox-dark-soft.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Gruvbox Light Hard",
|
||||
"file_name": "gruvbox-light-hard.json",
|
||||
"appearance": "light"
|
||||
},
|
||||
{
|
||||
"name": "Gruvbox Light Medium",
|
||||
"file_name": "gruvbox-light-medium.json",
|
||||
"appearance": "light"
|
||||
},
|
||||
{
|
||||
"name": "Gruvbox Light Soft",
|
||||
"file_name": "gruvbox-light-soft.json",
|
||||
"appearance": "light"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Sarah Drasner
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"name": "Night Owl",
|
||||
"author": "Sarah Drasner (sdras)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Night Owl",
|
||||
"file_name": "night-owl.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Night Owl Light",
|
||||
"file_name": "night-owl-light.json",
|
||||
"appearance": "light"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Liviu Schera
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,61 +0,0 @@
|
||||
{
|
||||
"name": "Notctis",
|
||||
"author": "Liviu Schera (liviuschera)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Noctis Azureus",
|
||||
"file_name": "azureus.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Bordo",
|
||||
"file_name": "bordo.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctus Hibernus",
|
||||
"file_name": "hibernus.json",
|
||||
"appearance": "light"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Lilac",
|
||||
"file_name": "lilac.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Lux",
|
||||
"file_name": "lux.json",
|
||||
"appearance": "light"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Minimus",
|
||||
"file_name": "minimus.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis",
|
||||
"file_name": "noctis.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Obscuro",
|
||||
"file_name": "obscuro.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Sereno",
|
||||
"file_name": "obscuro.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Uva",
|
||||
"file_name": "uva.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Noctis Viola",
|
||||
"file_name": "viola.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016-present Sven Greb <development@svengreb.de> (https://www.svengreb.de)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"name": "Nord",
|
||||
"author": "Sven Greb (svengreb)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Nord",
|
||||
"file_name": "nord.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
Copyright (c) 2017-present Olaolu Olawuyi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"name": "Palenight",
|
||||
"author": "Olaolu Olawuyi (whizkydee)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Palenight",
|
||||
"file_name": "palenight.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Palenight Operator",
|
||||
"file_name": "palenight-operator.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Palenight (Mild Contrast)",
|
||||
"file_name": "palenight-mild-contrast.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Rosé Pine
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"name": "Rose Pine",
|
||||
"author": "Rosé Pine",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Rose Pine",
|
||||
"file_name": "rose-pine.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Rose Moon",
|
||||
"file_name": "rose-pine-moon.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Rose Pine Dawn",
|
||||
"file_name": "rose-pine-dawn.json",
|
||||
"appearance": "light"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,680 +0,0 @@
|
||||
{
|
||||
"name": "Rosé Pine Dawn",
|
||||
"type": "light",
|
||||
"colors": {
|
||||
"activityBar.activeBorder": "#575279",
|
||||
"activityBar.background": "#faf4ed",
|
||||
"activityBar.dropBorder": "#f2e9e1",
|
||||
"activityBar.foreground": "#575279",
|
||||
"activityBar.inactiveForeground": "#797593",
|
||||
"activityBarBadge.background": "#d7827e",
|
||||
"activityBarBadge.foreground": "#faf4ed",
|
||||
"badge.background": "#d7827e",
|
||||
"badge.foreground": "#faf4ed",
|
||||
"banner.background": "#fffaf3",
|
||||
"banner.foreground": "#575279",
|
||||
"banner.iconForeground": "#797593",
|
||||
"breadcrumb.activeSelectionForeground": "#d7827e",
|
||||
"breadcrumb.background": "#faf4ed",
|
||||
"breadcrumb.focusForeground": "#797593",
|
||||
"breadcrumb.foreground": "#9893a5",
|
||||
"breadcrumbPicker.background": "#fffaf3",
|
||||
"button.background": "#d7827e",
|
||||
"button.foreground": "#faf4ed",
|
||||
"button.hoverBackground": "#d7827ee6",
|
||||
"button.secondaryBackground": "#fffaf3",
|
||||
"button.secondaryForeground": "#575279",
|
||||
"button.secondaryHoverBackground": "#f2e9e1",
|
||||
"charts.blue": "#56949f",
|
||||
"charts.foreground": "#575279",
|
||||
"charts.green": "#286983",
|
||||
"charts.lines": "#797593",
|
||||
"charts.orange": "#d7827e",
|
||||
"charts.purple": "#907aa9",
|
||||
"charts.red": "#b4637a",
|
||||
"charts.yellow": "#ea9d34",
|
||||
"checkbox.background": "#fffaf3",
|
||||
"checkbox.border": "#6e6a8614",
|
||||
"checkbox.foreground": "#575279",
|
||||
"debugExceptionWidget.background": "#fffaf3",
|
||||
"debugExceptionWidget.border": "#6e6a8614",
|
||||
"debugIcon.breakpointCurrentStackframeForeground": "#797593",
|
||||
"debugIcon.breakpointDisabledForeground": "#797593",
|
||||
"debugIcon.breakpointForeground": "#797593",
|
||||
"debugIcon.breakpointStackframeForeground": "#797593",
|
||||
"debugIcon.breakpointUnverifiedForeground": "#797593",
|
||||
"debugIcon.continueForeground": "#797593",
|
||||
"debugIcon.disconnectForeground": "#797593",
|
||||
"debugIcon.pauseForeground": "#797593",
|
||||
"debugIcon.restartForeground": "#797593",
|
||||
"debugIcon.startForeground": "#797593",
|
||||
"debugIcon.stepBackForeground": "#797593",
|
||||
"debugIcon.stepIntoForeground": "#797593",
|
||||
"debugIcon.stepOutForeground": "#797593",
|
||||
"debugIcon.stepOverForeground": "#797593",
|
||||
"debugIcon.stopForeground": "#b4637a",
|
||||
"debugToolBar.background": "#fffaf3",
|
||||
"debugToolBar.border": "#f2e9e1",
|
||||
"descriptionForeground": "#797593",
|
||||
"diffEditor.border": "#f2e9e1",
|
||||
"diffEditor.diagonalFill": "#6e6a8626",
|
||||
"diffEditor.insertedLineBackground": "#56949f26",
|
||||
"diffEditor.insertedTextBackground": "#56949f26",
|
||||
"diffEditor.removedLineBackground": "#b4637a26",
|
||||
"diffEditor.removedTextBackground": "#b4637a26",
|
||||
"diffEditorOverview.insertedForeground": "#56949f80",
|
||||
"diffEditorOverview.removedForeground": "#b4637a80",
|
||||
"dropdown.background": "#fffaf3",
|
||||
"dropdown.border": "#6e6a8614",
|
||||
"dropdown.foreground": "#575279",
|
||||
"dropdown.listBackground": "#fffaf3",
|
||||
"editor.background": "#faf4ed",
|
||||
"editor.findMatchBackground": "#6e6a8626",
|
||||
"editor.findMatchHighlightBackground": "#6e6a8626",
|
||||
"editor.findRangeHighlightBackground": "#6e6a8626",
|
||||
"editor.findRangeHighlightBorder": "#000000",
|
||||
"editor.focusedStackFrameHighlightBackground": "#6e6a8614",
|
||||
"editor.foldBackground": "#fffaf3",
|
||||
"editor.foreground": "#575279",
|
||||
"editor.hoverHighlightBackground": "#000000",
|
||||
"editor.inactiveSelectionBackground": "#6e6a860d",
|
||||
"editor.inlineValuesBackground": "#000000",
|
||||
"editor.inlineValuesForeground": "#797593",
|
||||
"editor.lineHighlightBackground": "#6e6a860d",
|
||||
"editor.lineHighlightBorder": "#000000",
|
||||
"editor.linkedEditingBackground": "#fffaf3",
|
||||
"editor.rangeHighlightBackground": "#6e6a860d",
|
||||
"editor.selectionBackground": "#6e6a8614",
|
||||
"editor.selectionForeground": "#575279",
|
||||
"editor.selectionHighlightBackground": "#6e6a8614",
|
||||
"editor.selectionHighlightBorder": "#faf4ed",
|
||||
"editor.snippetFinalTabstopHighlightBackground": "#6e6a8614",
|
||||
"editor.snippetFinalTabstopHighlightBorder": "#fffaf3",
|
||||
"editor.snippetTabstopHighlightBackground": "#6e6a8614",
|
||||
"editor.snippetTabstopHighlightBorder": "#fffaf3",
|
||||
"editor.stackFrameHighlightBackground": "#6e6a8614",
|
||||
"editor.symbolHighlightBackground": "#6e6a8614",
|
||||
"editor.symbolHighlightBorder": "#000000",
|
||||
"editor.wordHighlightBackground": "#6e6a8614",
|
||||
"editor.wordHighlightBorder": "#000000",
|
||||
"editor.wordHighlightStrongBackground": "#6e6a8614",
|
||||
"editor.wordHighlightStrongBorder": "#6e6a8614",
|
||||
"editorBracketHighlight.foreground1": "#b4637a80",
|
||||
"editorBracketHighlight.foreground2": "#28698380",
|
||||
"editorBracketHighlight.foreground3": "#ea9d3480",
|
||||
"editorBracketHighlight.foreground4": "#56949f80",
|
||||
"editorBracketHighlight.foreground5": "#d7827e80",
|
||||
"editorBracketHighlight.foreground6": "#907aa980",
|
||||
"editorBracketMatch.background": "#000000",
|
||||
"editorBracketMatch.border": "#797593",
|
||||
"editorBracketPairGuide.activeBackground1": "#286983",
|
||||
"editorBracketPairGuide.activeBackground2": "#d7827e",
|
||||
"editorBracketPairGuide.activeBackground3": "#907aa9",
|
||||
"editorBracketPairGuide.activeBackground4": "#56949f",
|
||||
"editorBracketPairGuide.activeBackground5": "#ea9d34",
|
||||
"editorBracketPairGuide.activeBackground6": "#b4637a",
|
||||
"editorBracketPairGuide.background1": "#28698380",
|
||||
"editorBracketPairGuide.background2": "#d7827e80",
|
||||
"editorBracketPairGuide.background3": "#907aa980",
|
||||
"editorBracketPairGuide.background4": "#56949f80",
|
||||
"editorBracketPairGuide.background5": "#ea9d3480",
|
||||
"editorBracketPairGuide.background6": "#b4637a80",
|
||||
"editorCodeLens.foreground": "#d7827e",
|
||||
"editorCursor.background": "#575279",
|
||||
"editorCursor.foreground": "#9893a5",
|
||||
"editorError.border": "#000000",
|
||||
"editorError.foreground": "#b4637a",
|
||||
"editorGhostText.foreground": "#797593",
|
||||
"editorGroup.border": "#000000",
|
||||
"editorGroup.dropBackground": "#fffaf3",
|
||||
"editorGroup.emptyBackground": "#000000",
|
||||
"editorGroup.focusedEmptyBorder": "#000000",
|
||||
"editorGroupHeader.noTabsBackground": "#000000",
|
||||
"editorGroupHeader.tabsBackground": "#000000",
|
||||
"editorGroupHeader.tabsBorder": "#000000",
|
||||
"editorGutter.addedBackground": "#56949f",
|
||||
"editorGutter.background": "#faf4ed",
|
||||
"editorGutter.commentRangeForeground": "#797593",
|
||||
"editorGutter.deletedBackground": "#b4637a",
|
||||
"editorGutter.foldingControlForeground": "#907aa9",
|
||||
"editorGutter.modifiedBackground": "#d7827e",
|
||||
"editorHint.border": "#000000",
|
||||
"editorHint.foreground": "#797593",
|
||||
"editorHoverWidget.background": "#fffaf3",
|
||||
"editorHoverWidget.border": "#9893a580",
|
||||
"editorHoverWidget.foreground": "#797593",
|
||||
"editorHoverWidget.highlightForeground": "#575279",
|
||||
"editorHoverWidget.statusBarBackground": "#000000",
|
||||
"editorIndentGuide.activeBackground": "#9893a5",
|
||||
"editorIndentGuide.background": "#6e6a8626",
|
||||
"editorInfo.border": "#f2e9e1",
|
||||
"editorInfo.foreground": "#56949f",
|
||||
"editorInlayHint.background": "#f2e9e1",
|
||||
"editorInlayHint.foreground": "#797593",
|
||||
"editorInlayHint.parameterBackground": "#f2e9e1",
|
||||
"editorInlayHint.parameterForeground": "#907aa9",
|
||||
"editorInlayHint.typeBackground": "#f2e9e1",
|
||||
"editorInlayHint.typeForeground": "#56949f",
|
||||
"editorLightBulb.foreground": "#286983",
|
||||
"editorLightBulbAutoFix.foreground": "#d7827e",
|
||||
"editorLineNumber.activeForeground": "#575279",
|
||||
"editorLineNumber.foreground": "#797593",
|
||||
"editorLink.activeForeground": "#d7827e",
|
||||
"editorMarkerNavigation.background": "#fffaf3",
|
||||
"editorMarkerNavigationError.background": "#fffaf3",
|
||||
"editorMarkerNavigationInfo.background": "#fffaf3",
|
||||
"editorMarkerNavigationWarning.background": "#fffaf3",
|
||||
"editorOverviewRuler.addedForeground": "#56949f80",
|
||||
"editorOverviewRuler.background": "#faf4ed",
|
||||
"editorOverviewRuler.border": "#6e6a8626",
|
||||
"editorOverviewRuler.bracketMatchForeground": "#797593",
|
||||
"editorOverviewRuler.commonContentForeground": "#6e6a860d",
|
||||
"editorOverviewRuler.currentContentForeground": "#6e6a8614",
|
||||
"editorOverviewRuler.deletedForeground": "#b4637a80",
|
||||
"editorOverviewRuler.errorForeground": "#b4637a80",
|
||||
"editorOverviewRuler.findMatchForeground": "#6e6a8626",
|
||||
"editorOverviewRuler.incomingContentForeground": "#907aa980",
|
||||
"editorOverviewRuler.infoForeground": "#56949f80",
|
||||
"editorOverviewRuler.modifiedForeground": "#d7827e80",
|
||||
"editorOverviewRuler.rangeHighlightForeground": "#6e6a8626",
|
||||
"editorOverviewRuler.selectionHighlightForeground": "#6e6a8626",
|
||||
"editorOverviewRuler.warningForeground": "#ea9d3480",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#6e6a8614",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8626",
|
||||
"editorPane.background": "#000000",
|
||||
"editorRuler.foreground": "#6e6a8626",
|
||||
"editorSuggestWidget.background": "#fffaf3",
|
||||
"editorSuggestWidget.border": "#000000",
|
||||
"editorSuggestWidget.focusHighlightForeground": "#d7827e",
|
||||
"editorSuggestWidget.foreground": "#797593",
|
||||
"editorSuggestWidget.highlightForeground": "#d7827e",
|
||||
"editorSuggestWidget.selectedBackground": "#6e6a8614",
|
||||
"editorSuggestWidget.selectedForeground": "#575279",
|
||||
"editorSuggestWidget.selectedIconForeground": "#575279",
|
||||
"editorUnnecessaryCode.border": "#000000",
|
||||
"editorUnnecessaryCode.opacity": "#57527980",
|
||||
"editorWarning.border": "#000000",
|
||||
"editorWarning.foreground": "#ea9d34",
|
||||
"editorWhitespace.foreground": "#9893a5",
|
||||
"editorWidget.background": "#fffaf3",
|
||||
"editorWidget.border": "#f2e9e1",
|
||||
"editorWidget.foreground": "#797593",
|
||||
"editorWidget.resizeBorder": "#9893a5",
|
||||
"errorForeground": "#b4637a",
|
||||
"extensionBadge.remoteBackground": "#907aa9",
|
||||
"extensionBadge.remoteForeground": "#faf4ed",
|
||||
"extensionButton.prominentBackground": "#d7827e",
|
||||
"extensionButton.prominentForeground": "#faf4ed",
|
||||
"extensionButton.prominentHoverBackground": "#d7827ee6",
|
||||
"extensionIcon.preReleaseForeground": "#286983",
|
||||
"extensionIcon.starForeground": "#d7827e",
|
||||
"extensionIcon.verifiedForeground": "#907aa9",
|
||||
"focusBorder": "#6e6a8614",
|
||||
"foreground": "#575279",
|
||||
"gitDecoration.addedResourceForeground": "#56949f",
|
||||
"gitDecoration.conflictingResourceForeground": "#b4637a",
|
||||
"gitDecoration.deletedResourceForeground": "#797593",
|
||||
"gitDecoration.ignoredResourceForeground": "#9893a5",
|
||||
"gitDecoration.modifiedResourceForeground": "#d7827e",
|
||||
"gitDecoration.renamedResourceForeground": "#286983",
|
||||
"gitDecoration.stageDeletedResourceForeground": "#b4637a",
|
||||
"gitDecoration.stageModifiedResourceForeground": "#907aa9",
|
||||
"gitDecoration.submoduleResourceForeground": "#ea9d34",
|
||||
"gitDecoration.untrackedResourceForeground": "#ea9d34",
|
||||
"icon.foreground": "#797593",
|
||||
"input.background": "#f2e9e180",
|
||||
"input.border": "#6e6a8614",
|
||||
"input.foreground": "#575279",
|
||||
"input.placeholderForeground": "#797593",
|
||||
"inputOption.activeBackground": "#d7827e26",
|
||||
"inputOption.activeForeground": "#d7827e",
|
||||
"inputValidation.errorBackground": "#fffaf3",
|
||||
"inputValidation.errorBorder": "#6e6a8626",
|
||||
"inputValidation.errorForeground": "#b4637a",
|
||||
"inputValidation.infoBackground": "#fffaf3",
|
||||
"inputValidation.infoBorder": "#6e6a8626",
|
||||
"inputValidation.infoForeground": "#56949f",
|
||||
"inputValidation.warningBackground": "#fffaf3",
|
||||
"inputValidation.warningBorder": "#6e6a8626",
|
||||
"inputValidation.warningForeground": "#56949f80",
|
||||
"keybindingLabel.background": "#f2e9e1",
|
||||
"keybindingLabel.border": "#6e6a8626",
|
||||
"keybindingLabel.bottomBorder": "#6e6a8626",
|
||||
"keybindingLabel.foreground": "#907aa9",
|
||||
"keybindingTable.headerBackground": "#f2e9e1",
|
||||
"keybindingTable.rowsBackground": "#fffaf3",
|
||||
"list.activeSelectionBackground": "#6e6a8614",
|
||||
"list.activeSelectionForeground": "#575279",
|
||||
"list.deemphasizedForeground": "#797593",
|
||||
"list.dropBackground": "#fffaf3",
|
||||
"list.errorForeground": "#b4637a",
|
||||
"list.filterMatchBackground": "#fffaf3",
|
||||
"list.filterMatchBorder": "#d7827e",
|
||||
"list.focusBackground": "#6e6a8626",
|
||||
"list.focusForeground": "#575279",
|
||||
"list.focusOutline": "#6e6a8614",
|
||||
"list.highlightForeground": "#d7827e",
|
||||
"list.hoverBackground": "#6e6a860d",
|
||||
"list.hoverForeground": "#575279",
|
||||
"list.inactiveFocusBackground": "#6e6a860d",
|
||||
"list.inactiveSelectionBackground": "#fffaf3",
|
||||
"list.inactiveSelectionForeground": "#575279",
|
||||
"list.invalidItemForeground": "#b4637a",
|
||||
"list.warningForeground": "#ea9d34",
|
||||
"listFilterWidget.background": "#fffaf3",
|
||||
"listFilterWidget.noMatchesOutline": "#b4637a",
|
||||
"listFilterWidget.outline": "#f2e9e1",
|
||||
"menu.background": "#fffaf3",
|
||||
"menu.border": "#6e6a860d",
|
||||
"menu.foreground": "#575279",
|
||||
"menu.selectionBackground": "#6e6a8614",
|
||||
"menu.selectionBorder": "#f2e9e1",
|
||||
"menu.selectionForeground": "#575279",
|
||||
"menu.separatorBackground": "#6e6a8626",
|
||||
"menubar.selectionBackground": "#6e6a8614",
|
||||
"menubar.selectionBorder": "#6e6a860d",
|
||||
"menubar.selectionForeground": "#575279",
|
||||
"merge.border": "#f2e9e1",
|
||||
"merge.commonContentBackground": "#6e6a8614",
|
||||
"merge.commonHeaderBackground": "#6e6a8614",
|
||||
"merge.currentContentBackground": "#ea9d3480",
|
||||
"merge.currentHeaderBackground": "#ea9d3480",
|
||||
"merge.incomingContentBackground": "#56949f80",
|
||||
"merge.incomingHeaderBackground": "#56949f80",
|
||||
"minimap.background": "#fffaf3",
|
||||
"minimap.errorHighlight": "#b4637a80",
|
||||
"minimap.findMatchHighlight": "#6e6a8614",
|
||||
"minimap.selectionHighlight": "#6e6a8614",
|
||||
"minimap.warningHighlight": "#ea9d3480",
|
||||
"minimapGutter.addedBackground": "#56949f",
|
||||
"minimapGutter.deletedBackground": "#b4637a",
|
||||
"minimapGutter.modifiedBackground": "#d7827e",
|
||||
"minimapSlider.activeBackground": "#6e6a8626",
|
||||
"minimapSlider.background": "#6e6a8614",
|
||||
"minimapSlider.hoverBackground": "#6e6a8614",
|
||||
"notebook.cellBorderColor": "#56949f80",
|
||||
"notebook.cellEditorBackground": "#fffaf3",
|
||||
"notebook.cellHoverBackground": "#f2e9e180",
|
||||
"notebook.focusedCellBackground": "#6e6a860d",
|
||||
"notebook.focusedCellBorder": "#56949f",
|
||||
"notebook.outputContainerBackgroundColor": "#6e6a860d",
|
||||
"notificationCenter.border": "#6e6a8614",
|
||||
"notificationCenterHeader.background": "#fffaf3",
|
||||
"notificationCenterHeader.foreground": "#797593",
|
||||
"notificationLink.foreground": "#907aa9",
|
||||
"notifications.background": "#fffaf3",
|
||||
"notifications.border": "#6e6a8614",
|
||||
"notifications.foreground": "#575279",
|
||||
"notificationsErrorIcon.foreground": "#b4637a",
|
||||
"notificationsInfoIcon.foreground": "#56949f",
|
||||
"notificationsWarningIcon.foreground": "#ea9d34",
|
||||
"notificationToast.border": "#6e6a8614",
|
||||
"panel.background": "#fffaf3",
|
||||
"panel.border": "#000000",
|
||||
"panel.dropBorder": "#f2e9e1",
|
||||
"panelInput.border": "#fffaf3",
|
||||
"panelSection.dropBackground": "#6e6a8614",
|
||||
"panelSectionHeader.background": "#fffaf3",
|
||||
"panelSectionHeader.foreground": "#575279",
|
||||
"panelTitle.activeBorder": "#6e6a8626",
|
||||
"panelTitle.activeForeground": "#575279",
|
||||
"panelTitle.inactiveForeground": "#797593",
|
||||
"peekView.border": "#f2e9e1",
|
||||
"peekViewEditor.background": "#fffaf3",
|
||||
"peekViewEditor.matchHighlightBackground": "#6e6a8626",
|
||||
"peekViewResult.background": "#fffaf3",
|
||||
"peekViewResult.fileForeground": "#797593",
|
||||
"peekViewResult.lineForeground": "#797593",
|
||||
"peekViewResult.matchHighlightBackground": "#6e6a8626",
|
||||
"peekViewResult.selectionBackground": "#6e6a8614",
|
||||
"peekViewResult.selectionForeground": "#575279",
|
||||
"peekViewTitle.background": "#f2e9e1",
|
||||
"peekViewTitleDescription.foreground": "#797593",
|
||||
"pickerGroup.border": "#6e6a8626",
|
||||
"pickerGroup.foreground": "#907aa9",
|
||||
"ports.iconRunningProcessForeground": "#d7827e",
|
||||
"problemsErrorIcon.foreground": "#b4637a",
|
||||
"problemsInfoIcon.foreground": "#56949f",
|
||||
"problemsWarningIcon.foreground": "#ea9d34",
|
||||
"progressBar.background": "#d7827e",
|
||||
"quickInput.background": "#fffaf3",
|
||||
"quickInput.foreground": "#797593",
|
||||
"quickInputList.focusBackground": "#6e6a8614",
|
||||
"quickInputList.focusForeground": "#575279",
|
||||
"quickInputList.focusIconForeground": "#575279",
|
||||
"scrollbar.shadow": "#fffaf34d",
|
||||
"scrollbarSlider.activeBackground": "#28698380",
|
||||
"scrollbarSlider.background": "#6e6a8614",
|
||||
"scrollbarSlider.hoverBackground": "#6e6a8626",
|
||||
"searchEditor.findMatchBackground": "#6e6a8614",
|
||||
"selection.background": "#6e6a8626",
|
||||
"settings.focusedRowBackground": "#fffaf3",
|
||||
"settings.headerForeground": "#575279",
|
||||
"settings.modifiedItemIndicator": "#d7827e",
|
||||
"settings.focusedRowBorder": "#6e6a8614",
|
||||
"settings.rowHoverBackground": "#fffaf3",
|
||||
"sideBar.background": "#faf4ed",
|
||||
"sideBar.dropBackground": "#fffaf3",
|
||||
"sideBar.foreground": "#797593",
|
||||
"sideBarSectionHeader.background": "#000000",
|
||||
"sideBarSectionHeader.border": "#6e6a8614",
|
||||
"statusBar.background": "#faf4ed",
|
||||
"statusBar.debuggingBackground": "#907aa9",
|
||||
"statusBar.debuggingForeground": "#faf4ed",
|
||||
"statusBar.foreground": "#797593",
|
||||
"statusBar.noFolderBackground": "#faf4ed",
|
||||
"statusBar.noFolderForeground": "#797593",
|
||||
"statusBarItem.activeBackground": "#6e6a8626",
|
||||
"statusBarItem.hoverBackground": "#6e6a8614",
|
||||
"statusBarItem.prominentBackground": "#f2e9e1",
|
||||
"statusBarItem.prominentForeground": "#575279",
|
||||
"statusBarItem.prominentHoverBackground": "#6e6a8614",
|
||||
"statusBarItem.remoteBackground": "#faf4ed",
|
||||
"statusBarItem.remoteForeground": "#ea9d34",
|
||||
"statusBarItem.errorBackground": "#faf4ed",
|
||||
"statusBarItem.errorForeground": "#b4637a",
|
||||
"symbolIcon.arrayForeground": "#797593",
|
||||
"symbolIcon.classForeground": "#797593",
|
||||
"symbolIcon.colorForeground": "#797593",
|
||||
"symbolIcon.constantForeground": "#797593",
|
||||
"symbolIcon.constructorForeground": "#797593",
|
||||
"symbolIcon.enumeratorForeground": "#797593",
|
||||
"symbolIcon.enumeratorMemberForeground": "#797593",
|
||||
"symbolIcon.eventForeground": "#797593",
|
||||
"symbolIcon.fieldForeground": "#797593",
|
||||
"symbolIcon.fileForeground": "#797593",
|
||||
"symbolIcon.folderForeground": "#797593",
|
||||
"symbolIcon.functionForeground": "#797593",
|
||||
"symbolIcon.interfaceForeground": "#797593",
|
||||
"symbolIcon.keyForeground": "#797593",
|
||||
"symbolIcon.keywordForeground": "#797593",
|
||||
"symbolIcon.methodForeground": "#797593",
|
||||
"symbolIcon.moduleForeground": "#797593",
|
||||
"symbolIcon.namespaceForeground": "#797593",
|
||||
"symbolIcon.nullForeground": "#797593",
|
||||
"symbolIcon.numberForeground": "#797593",
|
||||
"symbolIcon.objectForeground": "#797593",
|
||||
"symbolIcon.operatorForeground": "#797593",
|
||||
"symbolIcon.packageForeground": "#797593",
|
||||
"symbolIcon.propertyForeground": "#797593",
|
||||
"symbolIcon.referenceForeground": "#797593",
|
||||
"symbolIcon.snippetForeground": "#797593",
|
||||
"symbolIcon.stringForeground": "#797593",
|
||||
"symbolIcon.structForeground": "#797593",
|
||||
"symbolIcon.textForeground": "#797593",
|
||||
"symbolIcon.typeParameterForeground": "#797593",
|
||||
"symbolIcon.unitForeground": "#797593",
|
||||
"symbolIcon.variableForeground": "#797593",
|
||||
"tab.activeBackground": "#6e6a860d",
|
||||
"tab.activeForeground": "#575279",
|
||||
"tab.activeModifiedBorder": "#56949f",
|
||||
"tab.border": "#000000",
|
||||
"tab.hoverBackground": "#6e6a8614",
|
||||
"tab.inactiveBackground": "#000000",
|
||||
"tab.inactiveForeground": "#797593",
|
||||
"tab.inactiveModifiedBorder": "#56949f80",
|
||||
"tab.lastPinnedBorder": "#9893a5",
|
||||
"tab.unfocusedActiveBackground": "#000000",
|
||||
"tab.unfocusedHoverBackground": "#000000",
|
||||
"tab.unfocusedInactiveBackground": "#000000",
|
||||
"tab.unfocusedInactiveModifiedBorder": "#56949f80",
|
||||
"terminal.ansiBlack": "#f2e9e1",
|
||||
"terminal.ansiBlue": "#56949f",
|
||||
"terminal.ansiBrightBlack": "#797593",
|
||||
"terminal.ansiBrightBlue": "#56949f",
|
||||
"terminal.ansiBrightCyan": "#d7827e",
|
||||
"terminal.ansiBrightGreen": "#286983",
|
||||
"terminal.ansiBrightMagenta": "#907aa9",
|
||||
"terminal.ansiBrightRed": "#b4637a",
|
||||
"terminal.ansiBrightWhite": "#575279",
|
||||
"terminal.ansiBrightYellow": "#ea9d34",
|
||||
"terminal.ansiCyan": "#d7827e",
|
||||
"terminal.ansiGreen": "#286983",
|
||||
"terminal.ansiMagenta": "#907aa9",
|
||||
"terminal.ansiRed": "#b4637a",
|
||||
"terminal.ansiWhite": "#575279",
|
||||
"terminal.ansiYellow": "#ea9d34",
|
||||
"terminal.dropBackground": "#6e6a8614",
|
||||
"terminal.foreground": "#575279",
|
||||
"terminal.selectionBackground": "#6e6a8614",
|
||||
"terminal.tab.activeBorder": "#575279",
|
||||
"terminalCursor.background": "#575279",
|
||||
"terminalCursor.foreground": "#9893a5",
|
||||
"textBlockQuote.background": "#fffaf3",
|
||||
"textBlockQuote.border": "#6e6a8614",
|
||||
"textCodeBlock.background": "#fffaf3",
|
||||
"textLink.activeForeground": "#907aa9e6",
|
||||
"textLink.foreground": "#907aa9",
|
||||
"textPreformat.foreground": "#ea9d34",
|
||||
"textSeparator.foreground": "#797593",
|
||||
"titleBar.activeBackground": "#faf4ed",
|
||||
"titleBar.activeForeground": "#797593",
|
||||
"titleBar.inactiveBackground": "#fffaf3",
|
||||
"titleBar.inactiveForeground": "#797593",
|
||||
"toolbar.activeBackground": "#6e6a8626",
|
||||
"toolbar.hoverBackground": "#6e6a8614",
|
||||
"tree.indentGuidesStroke": "#797593",
|
||||
"walkThrough.embeddedEditorBackground": "#faf4ed",
|
||||
"welcomePage.background": "#faf4ed",
|
||||
"welcomePage.buttonBackground": "#fffaf3",
|
||||
"welcomePage.buttonHoverBackground": "#f2e9e1",
|
||||
"widget.shadow": "#fffaf34d",
|
||||
"window.activeBorder": "#fffaf3",
|
||||
"window.inactiveBorder": "#fffaf3"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": ["comment"],
|
||||
"settings": {
|
||||
"foreground": "#9893a5",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant"],
|
||||
"settings": {
|
||||
"foreground": "#286983"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant.numeric", "constant.language"],
|
||||
"settings": {
|
||||
"foreground": "#d7827e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.name"],
|
||||
"settings": {
|
||||
"foreground": "#d7827e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.section",
|
||||
"entity.name.tag",
|
||||
"entity.name.namespace",
|
||||
"entity.name.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#56949f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.other.attribute-name", "entity.other.inherited-class"],
|
||||
"settings": {
|
||||
"foreground": "#907aa9",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["invalid"],
|
||||
"settings": {
|
||||
"foreground": "#b4637a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["invalid.deprecated"],
|
||||
"settings": {
|
||||
"foreground": "#797593"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["keyword"],
|
||||
"settings": {
|
||||
"foreground": "#286983"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.inserted.diff"],
|
||||
"settings": {
|
||||
"foreground": "#56949f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.deleted.diff"],
|
||||
"settings": {
|
||||
"foreground": "#b4637a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.diff.range"],
|
||||
"settings": {
|
||||
"foreground": "#907aa9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.tag", "meta.brace"],
|
||||
"settings": {
|
||||
"foreground": "#575279"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.import", "meta.export"],
|
||||
"settings": {
|
||||
"foreground": "#286983"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.directive.vue",
|
||||
"settings": {
|
||||
"foreground": "#907aa9",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-name.css",
|
||||
"settings": {
|
||||
"foreground": "#56949f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-value.css",
|
||||
"settings": {
|
||||
"foreground": "#ea9d34"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.tag.other.html",
|
||||
"settings": {
|
||||
"foreground": "#797593"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation"],
|
||||
"settings": {
|
||||
"foreground": "#797593"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.accessor"],
|
||||
"settings": {
|
||||
"foreground": "#286983"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.definition.string"],
|
||||
"settings": {
|
||||
"foreground": "#ea9d34"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.definition.tag"],
|
||||
"settings": {
|
||||
"foreground": "#9893a5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage.type", "storage.modifier"],
|
||||
"settings": {
|
||||
"foreground": "#286983"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["string"],
|
||||
"settings": {
|
||||
"foreground": "#ea9d34"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support"],
|
||||
"settings": {
|
||||
"foreground": "#56949f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.constant"],
|
||||
"settings": {
|
||||
"foreground": "#ea9d34"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.function"],
|
||||
"settings": {
|
||||
"foreground": "#b4637a",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable"],
|
||||
"settings": {
|
||||
"foreground": "#d7827e",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other",
|
||||
"variable.language",
|
||||
"variable.function",
|
||||
"variable.argument"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#575279"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable.parameter"],
|
||||
"settings": {
|
||||
"foreground": "#907aa9"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,680 +0,0 @@
|
||||
{
|
||||
"name": "Rosé Pine Moon",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"activityBar.activeBorder": "#e0def4",
|
||||
"activityBar.background": "#232136",
|
||||
"activityBar.dropBorder": "#393552",
|
||||
"activityBar.foreground": "#e0def4",
|
||||
"activityBar.inactiveForeground": "#908caa",
|
||||
"activityBarBadge.background": "#ea9a97",
|
||||
"activityBarBadge.foreground": "#232136",
|
||||
"badge.background": "#ea9a97",
|
||||
"badge.foreground": "#232136",
|
||||
"banner.background": "#2a273f",
|
||||
"banner.foreground": "#e0def4",
|
||||
"banner.iconForeground": "#908caa",
|
||||
"breadcrumb.activeSelectionForeground": "#ea9a97",
|
||||
"breadcrumb.background": "#232136",
|
||||
"breadcrumb.focusForeground": "#908caa",
|
||||
"breadcrumb.foreground": "#6e6a86",
|
||||
"breadcrumbPicker.background": "#2a273f",
|
||||
"button.background": "#ea9a97",
|
||||
"button.foreground": "#232136",
|
||||
"button.hoverBackground": "#ea9a97e6",
|
||||
"button.secondaryBackground": "#2a273f",
|
||||
"button.secondaryForeground": "#e0def4",
|
||||
"button.secondaryHoverBackground": "#393552",
|
||||
"charts.blue": "#9ccfd8",
|
||||
"charts.foreground": "#e0def4",
|
||||
"charts.green": "#3e8fb0",
|
||||
"charts.lines": "#908caa",
|
||||
"charts.orange": "#ea9a97",
|
||||
"charts.purple": "#c4a7e7",
|
||||
"charts.red": "#eb6f92",
|
||||
"charts.yellow": "#f6c177",
|
||||
"checkbox.background": "#2a273f",
|
||||
"checkbox.border": "#817c9c26",
|
||||
"checkbox.foreground": "#e0def4",
|
||||
"debugExceptionWidget.background": "#2a273f",
|
||||
"debugExceptionWidget.border": "#817c9c26",
|
||||
"debugIcon.breakpointCurrentStackframeForeground": "#908caa",
|
||||
"debugIcon.breakpointDisabledForeground": "#908caa",
|
||||
"debugIcon.breakpointForeground": "#908caa",
|
||||
"debugIcon.breakpointStackframeForeground": "#908caa",
|
||||
"debugIcon.breakpointUnverifiedForeground": "#908caa",
|
||||
"debugIcon.continueForeground": "#908caa",
|
||||
"debugIcon.disconnectForeground": "#908caa",
|
||||
"debugIcon.pauseForeground": "#908caa",
|
||||
"debugIcon.restartForeground": "#908caa",
|
||||
"debugIcon.startForeground": "#908caa",
|
||||
"debugIcon.stepBackForeground": "#908caa",
|
||||
"debugIcon.stepIntoForeground": "#908caa",
|
||||
"debugIcon.stepOutForeground": "#908caa",
|
||||
"debugIcon.stepOverForeground": "#908caa",
|
||||
"debugIcon.stopForeground": "#eb6f92",
|
||||
"debugToolBar.background": "#2a273f",
|
||||
"debugToolBar.border": "#393552",
|
||||
"descriptionForeground": "#908caa",
|
||||
"diffEditor.border": "#393552",
|
||||
"diffEditor.diagonalFill": "#817c9c4d",
|
||||
"diffEditor.insertedLineBackground": "#9ccfd826",
|
||||
"diffEditor.insertedTextBackground": "#9ccfd826",
|
||||
"diffEditor.removedLineBackground": "#eb6f9226",
|
||||
"diffEditor.removedTextBackground": "#eb6f9226",
|
||||
"diffEditorOverview.insertedForeground": "#9ccfd880",
|
||||
"diffEditorOverview.removedForeground": "#eb6f9280",
|
||||
"dropdown.background": "#2a273f",
|
||||
"dropdown.border": "#817c9c26",
|
||||
"dropdown.foreground": "#e0def4",
|
||||
"dropdown.listBackground": "#2a273f",
|
||||
"editor.background": "#232136",
|
||||
"editor.findMatchBackground": "#817c9c4d",
|
||||
"editor.findMatchHighlightBackground": "#817c9c4d",
|
||||
"editor.findRangeHighlightBackground": "#817c9c4d",
|
||||
"editor.findRangeHighlightBorder": "#000000",
|
||||
"editor.focusedStackFrameHighlightBackground": "#817c9c26",
|
||||
"editor.foldBackground": "#2a273f",
|
||||
"editor.foreground": "#e0def4",
|
||||
"editor.hoverHighlightBackground": "#000000",
|
||||
"editor.inactiveSelectionBackground": "#817c9c14",
|
||||
"editor.inlineValuesBackground": "#000000",
|
||||
"editor.inlineValuesForeground": "#908caa",
|
||||
"editor.lineHighlightBackground": "#817c9c14",
|
||||
"editor.lineHighlightBorder": "#000000",
|
||||
"editor.linkedEditingBackground": "#2a273f",
|
||||
"editor.rangeHighlightBackground": "#817c9c14",
|
||||
"editor.selectionBackground": "#817c9c26",
|
||||
"editor.selectionForeground": "#e0def4",
|
||||
"editor.selectionHighlightBackground": "#817c9c26",
|
||||
"editor.selectionHighlightBorder": "#232136",
|
||||
"editor.snippetFinalTabstopHighlightBackground": "#817c9c26",
|
||||
"editor.snippetFinalTabstopHighlightBorder": "#2a273f",
|
||||
"editor.snippetTabstopHighlightBackground": "#817c9c26",
|
||||
"editor.snippetTabstopHighlightBorder": "#2a273f",
|
||||
"editor.stackFrameHighlightBackground": "#817c9c26",
|
||||
"editor.symbolHighlightBackground": "#817c9c26",
|
||||
"editor.symbolHighlightBorder": "#000000",
|
||||
"editor.wordHighlightBackground": "#817c9c26",
|
||||
"editor.wordHighlightBorder": "#000000",
|
||||
"editor.wordHighlightStrongBackground": "#817c9c26",
|
||||
"editor.wordHighlightStrongBorder": "#817c9c26",
|
||||
"editorBracketHighlight.foreground1": "#eb6f9280",
|
||||
"editorBracketHighlight.foreground2": "#3e8fb080",
|
||||
"editorBracketHighlight.foreground3": "#f6c17780",
|
||||
"editorBracketHighlight.foreground4": "#9ccfd880",
|
||||
"editorBracketHighlight.foreground5": "#ea9a9780",
|
||||
"editorBracketHighlight.foreground6": "#c4a7e780",
|
||||
"editorBracketMatch.background": "#000000",
|
||||
"editorBracketMatch.border": "#908caa",
|
||||
"editorBracketPairGuide.activeBackground1": "#3e8fb0",
|
||||
"editorBracketPairGuide.activeBackground2": "#ea9a97",
|
||||
"editorBracketPairGuide.activeBackground3": "#c4a7e7",
|
||||
"editorBracketPairGuide.activeBackground4": "#9ccfd8",
|
||||
"editorBracketPairGuide.activeBackground5": "#f6c177",
|
||||
"editorBracketPairGuide.activeBackground6": "#eb6f92",
|
||||
"editorBracketPairGuide.background1": "#3e8fb080",
|
||||
"editorBracketPairGuide.background2": "#ea9a9780",
|
||||
"editorBracketPairGuide.background3": "#c4a7e780",
|
||||
"editorBracketPairGuide.background4": "#9ccfd880",
|
||||
"editorBracketPairGuide.background5": "#f6c17780",
|
||||
"editorBracketPairGuide.background6": "#eb6f9280",
|
||||
"editorCodeLens.foreground": "#ea9a97",
|
||||
"editorCursor.background": "#e0def4",
|
||||
"editorCursor.foreground": "#6e6a86",
|
||||
"editorError.border": "#000000",
|
||||
"editorError.foreground": "#eb6f92",
|
||||
"editorGhostText.foreground": "#908caa",
|
||||
"editorGroup.border": "#000000",
|
||||
"editorGroup.dropBackground": "#2a273f",
|
||||
"editorGroup.emptyBackground": "#000000",
|
||||
"editorGroup.focusedEmptyBorder": "#000000",
|
||||
"editorGroupHeader.noTabsBackground": "#000000",
|
||||
"editorGroupHeader.tabsBackground": "#000000",
|
||||
"editorGroupHeader.tabsBorder": "#000000",
|
||||
"editorGutter.addedBackground": "#9ccfd8",
|
||||
"editorGutter.background": "#232136",
|
||||
"editorGutter.commentRangeForeground": "#908caa",
|
||||
"editorGutter.deletedBackground": "#eb6f92",
|
||||
"editorGutter.foldingControlForeground": "#c4a7e7",
|
||||
"editorGutter.modifiedBackground": "#ea9a97",
|
||||
"editorHint.border": "#000000",
|
||||
"editorHint.foreground": "#908caa",
|
||||
"editorHoverWidget.background": "#2a273f",
|
||||
"editorHoverWidget.border": "#6e6a8680",
|
||||
"editorHoverWidget.foreground": "#908caa",
|
||||
"editorHoverWidget.highlightForeground": "#e0def4",
|
||||
"editorHoverWidget.statusBarBackground": "#000000",
|
||||
"editorIndentGuide.activeBackground": "#6e6a86",
|
||||
"editorIndentGuide.background": "#817c9c4d",
|
||||
"editorInfo.border": "#393552",
|
||||
"editorInfo.foreground": "#9ccfd8",
|
||||
"editorInlayHint.background": "#393552",
|
||||
"editorInlayHint.foreground": "#908caa",
|
||||
"editorInlayHint.parameterBackground": "#393552",
|
||||
"editorInlayHint.parameterForeground": "#c4a7e7",
|
||||
"editorInlayHint.typeBackground": "#393552",
|
||||
"editorInlayHint.typeForeground": "#9ccfd8",
|
||||
"editorLightBulb.foreground": "#3e8fb0",
|
||||
"editorLightBulbAutoFix.foreground": "#ea9a97",
|
||||
"editorLineNumber.activeForeground": "#e0def4",
|
||||
"editorLineNumber.foreground": "#908caa",
|
||||
"editorLink.activeForeground": "#ea9a97",
|
||||
"editorMarkerNavigation.background": "#2a273f",
|
||||
"editorMarkerNavigationError.background": "#2a273f",
|
||||
"editorMarkerNavigationInfo.background": "#2a273f",
|
||||
"editorMarkerNavigationWarning.background": "#2a273f",
|
||||
"editorOverviewRuler.addedForeground": "#9ccfd880",
|
||||
"editorOverviewRuler.background": "#232136",
|
||||
"editorOverviewRuler.border": "#817c9c4d",
|
||||
"editorOverviewRuler.bracketMatchForeground": "#908caa",
|
||||
"editorOverviewRuler.commonContentForeground": "#817c9c14",
|
||||
"editorOverviewRuler.currentContentForeground": "#817c9c26",
|
||||
"editorOverviewRuler.deletedForeground": "#eb6f9280",
|
||||
"editorOverviewRuler.errorForeground": "#eb6f9280",
|
||||
"editorOverviewRuler.findMatchForeground": "#817c9c4d",
|
||||
"editorOverviewRuler.incomingContentForeground": "#c4a7e780",
|
||||
"editorOverviewRuler.infoForeground": "#9ccfd880",
|
||||
"editorOverviewRuler.modifiedForeground": "#ea9a9780",
|
||||
"editorOverviewRuler.rangeHighlightForeground": "#817c9c4d",
|
||||
"editorOverviewRuler.selectionHighlightForeground": "#817c9c4d",
|
||||
"editorOverviewRuler.warningForeground": "#f6c17780",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#817c9c26",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#817c9c4d",
|
||||
"editorPane.background": "#000000",
|
||||
"editorRuler.foreground": "#817c9c4d",
|
||||
"editorSuggestWidget.background": "#2a273f",
|
||||
"editorSuggestWidget.border": "#000000",
|
||||
"editorSuggestWidget.focusHighlightForeground": "#ea9a97",
|
||||
"editorSuggestWidget.foreground": "#908caa",
|
||||
"editorSuggestWidget.highlightForeground": "#ea9a97",
|
||||
"editorSuggestWidget.selectedBackground": "#817c9c26",
|
||||
"editorSuggestWidget.selectedForeground": "#e0def4",
|
||||
"editorSuggestWidget.selectedIconForeground": "#e0def4",
|
||||
"editorUnnecessaryCode.border": "#000000",
|
||||
"editorUnnecessaryCode.opacity": "#e0def480",
|
||||
"editorWarning.border": "#000000",
|
||||
"editorWarning.foreground": "#f6c177",
|
||||
"editorWhitespace.foreground": "#6e6a86",
|
||||
"editorWidget.background": "#2a273f",
|
||||
"editorWidget.border": "#393552",
|
||||
"editorWidget.foreground": "#908caa",
|
||||
"editorWidget.resizeBorder": "#6e6a86",
|
||||
"errorForeground": "#eb6f92",
|
||||
"extensionBadge.remoteBackground": "#c4a7e7",
|
||||
"extensionBadge.remoteForeground": "#232136",
|
||||
"extensionButton.prominentBackground": "#ea9a97",
|
||||
"extensionButton.prominentForeground": "#232136",
|
||||
"extensionButton.prominentHoverBackground": "#ea9a97e6",
|
||||
"extensionIcon.preReleaseForeground": "#3e8fb0",
|
||||
"extensionIcon.starForeground": "#ea9a97",
|
||||
"extensionIcon.verifiedForeground": "#c4a7e7",
|
||||
"focusBorder": "#817c9c26",
|
||||
"foreground": "#e0def4",
|
||||
"gitDecoration.addedResourceForeground": "#9ccfd8",
|
||||
"gitDecoration.conflictingResourceForeground": "#eb6f92",
|
||||
"gitDecoration.deletedResourceForeground": "#908caa",
|
||||
"gitDecoration.ignoredResourceForeground": "#6e6a86",
|
||||
"gitDecoration.modifiedResourceForeground": "#ea9a97",
|
||||
"gitDecoration.renamedResourceForeground": "#3e8fb0",
|
||||
"gitDecoration.stageDeletedResourceForeground": "#eb6f92",
|
||||
"gitDecoration.stageModifiedResourceForeground": "#c4a7e7",
|
||||
"gitDecoration.submoduleResourceForeground": "#f6c177",
|
||||
"gitDecoration.untrackedResourceForeground": "#f6c177",
|
||||
"icon.foreground": "#908caa",
|
||||
"input.background": "#39355280",
|
||||
"input.border": "#817c9c26",
|
||||
"input.foreground": "#e0def4",
|
||||
"input.placeholderForeground": "#908caa",
|
||||
"inputOption.activeBackground": "#ea9a9726",
|
||||
"inputOption.activeForeground": "#ea9a97",
|
||||
"inputValidation.errorBackground": "#2a273f",
|
||||
"inputValidation.errorBorder": "#817c9c4d",
|
||||
"inputValidation.errorForeground": "#eb6f92",
|
||||
"inputValidation.infoBackground": "#2a273f",
|
||||
"inputValidation.infoBorder": "#817c9c4d",
|
||||
"inputValidation.infoForeground": "#9ccfd8",
|
||||
"inputValidation.warningBackground": "#2a273f",
|
||||
"inputValidation.warningBorder": "#817c9c4d",
|
||||
"inputValidation.warningForeground": "#9ccfd880",
|
||||
"keybindingLabel.background": "#393552",
|
||||
"keybindingLabel.border": "#817c9c4d",
|
||||
"keybindingLabel.bottomBorder": "#817c9c4d",
|
||||
"keybindingLabel.foreground": "#c4a7e7",
|
||||
"keybindingTable.headerBackground": "#393552",
|
||||
"keybindingTable.rowsBackground": "#2a273f",
|
||||
"list.activeSelectionBackground": "#817c9c26",
|
||||
"list.activeSelectionForeground": "#e0def4",
|
||||
"list.deemphasizedForeground": "#908caa",
|
||||
"list.dropBackground": "#2a273f",
|
||||
"list.errorForeground": "#eb6f92",
|
||||
"list.filterMatchBackground": "#2a273f",
|
||||
"list.filterMatchBorder": "#ea9a97",
|
||||
"list.focusBackground": "#817c9c4d",
|
||||
"list.focusForeground": "#e0def4",
|
||||
"list.focusOutline": "#817c9c26",
|
||||
"list.highlightForeground": "#ea9a97",
|
||||
"list.hoverBackground": "#817c9c14",
|
||||
"list.hoverForeground": "#e0def4",
|
||||
"list.inactiveFocusBackground": "#817c9c14",
|
||||
"list.inactiveSelectionBackground": "#2a273f",
|
||||
"list.inactiveSelectionForeground": "#e0def4",
|
||||
"list.invalidItemForeground": "#eb6f92",
|
||||
"list.warningForeground": "#f6c177",
|
||||
"listFilterWidget.background": "#2a273f",
|
||||
"listFilterWidget.noMatchesOutline": "#eb6f92",
|
||||
"listFilterWidget.outline": "#393552",
|
||||
"menu.background": "#2a273f",
|
||||
"menu.border": "#817c9c14",
|
||||
"menu.foreground": "#e0def4",
|
||||
"menu.selectionBackground": "#817c9c26",
|
||||
"menu.selectionBorder": "#393552",
|
||||
"menu.selectionForeground": "#e0def4",
|
||||
"menu.separatorBackground": "#817c9c4d",
|
||||
"menubar.selectionBackground": "#817c9c26",
|
||||
"menubar.selectionBorder": "#817c9c14",
|
||||
"menubar.selectionForeground": "#e0def4",
|
||||
"merge.border": "#393552",
|
||||
"merge.commonContentBackground": "#817c9c26",
|
||||
"merge.commonHeaderBackground": "#817c9c26",
|
||||
"merge.currentContentBackground": "#f6c17780",
|
||||
"merge.currentHeaderBackground": "#f6c17780",
|
||||
"merge.incomingContentBackground": "#9ccfd880",
|
||||
"merge.incomingHeaderBackground": "#9ccfd880",
|
||||
"minimap.background": "#2a273f",
|
||||
"minimap.errorHighlight": "#eb6f9280",
|
||||
"minimap.findMatchHighlight": "#817c9c26",
|
||||
"minimap.selectionHighlight": "#817c9c26",
|
||||
"minimap.warningHighlight": "#f6c17780",
|
||||
"minimapGutter.addedBackground": "#9ccfd8",
|
||||
"minimapGutter.deletedBackground": "#eb6f92",
|
||||
"minimapGutter.modifiedBackground": "#ea9a97",
|
||||
"minimapSlider.activeBackground": "#817c9c4d",
|
||||
"minimapSlider.background": "#817c9c26",
|
||||
"minimapSlider.hoverBackground": "#817c9c26",
|
||||
"notebook.cellBorderColor": "#9ccfd880",
|
||||
"notebook.cellEditorBackground": "#2a273f",
|
||||
"notebook.cellHoverBackground": "#39355280",
|
||||
"notebook.focusedCellBackground": "#817c9c14",
|
||||
"notebook.focusedCellBorder": "#9ccfd8",
|
||||
"notebook.outputContainerBackgroundColor": "#817c9c14",
|
||||
"notificationCenter.border": "#817c9c26",
|
||||
"notificationCenterHeader.background": "#2a273f",
|
||||
"notificationCenterHeader.foreground": "#908caa",
|
||||
"notificationLink.foreground": "#c4a7e7",
|
||||
"notifications.background": "#2a273f",
|
||||
"notifications.border": "#817c9c26",
|
||||
"notifications.foreground": "#e0def4",
|
||||
"notificationsErrorIcon.foreground": "#eb6f92",
|
||||
"notificationsInfoIcon.foreground": "#9ccfd8",
|
||||
"notificationsWarningIcon.foreground": "#f6c177",
|
||||
"notificationToast.border": "#817c9c26",
|
||||
"panel.background": "#2a273f",
|
||||
"panel.border": "#000000",
|
||||
"panel.dropBorder": "#393552",
|
||||
"panelInput.border": "#2a273f",
|
||||
"panelSection.dropBackground": "#817c9c26",
|
||||
"panelSectionHeader.background": "#2a273f",
|
||||
"panelSectionHeader.foreground": "#e0def4",
|
||||
"panelTitle.activeBorder": "#817c9c4d",
|
||||
"panelTitle.activeForeground": "#e0def4",
|
||||
"panelTitle.inactiveForeground": "#908caa",
|
||||
"peekView.border": "#393552",
|
||||
"peekViewEditor.background": "#2a273f",
|
||||
"peekViewEditor.matchHighlightBackground": "#817c9c4d",
|
||||
"peekViewResult.background": "#2a273f",
|
||||
"peekViewResult.fileForeground": "#908caa",
|
||||
"peekViewResult.lineForeground": "#908caa",
|
||||
"peekViewResult.matchHighlightBackground": "#817c9c4d",
|
||||
"peekViewResult.selectionBackground": "#817c9c26",
|
||||
"peekViewResult.selectionForeground": "#e0def4",
|
||||
"peekViewTitle.background": "#393552",
|
||||
"peekViewTitleDescription.foreground": "#908caa",
|
||||
"pickerGroup.border": "#817c9c4d",
|
||||
"pickerGroup.foreground": "#c4a7e7",
|
||||
"ports.iconRunningProcessForeground": "#ea9a97",
|
||||
"problemsErrorIcon.foreground": "#eb6f92",
|
||||
"problemsInfoIcon.foreground": "#9ccfd8",
|
||||
"problemsWarningIcon.foreground": "#f6c177",
|
||||
"progressBar.background": "#ea9a97",
|
||||
"quickInput.background": "#2a273f",
|
||||
"quickInput.foreground": "#908caa",
|
||||
"quickInputList.focusBackground": "#817c9c26",
|
||||
"quickInputList.focusForeground": "#e0def4",
|
||||
"quickInputList.focusIconForeground": "#e0def4",
|
||||
"scrollbar.shadow": "#2a273f4d",
|
||||
"scrollbarSlider.activeBackground": "#3e8fb080",
|
||||
"scrollbarSlider.background": "#817c9c26",
|
||||
"scrollbarSlider.hoverBackground": "#817c9c4d",
|
||||
"searchEditor.findMatchBackground": "#817c9c26",
|
||||
"selection.background": "#817c9c4d",
|
||||
"settings.focusedRowBackground": "#2a273f",
|
||||
"settings.headerForeground": "#e0def4",
|
||||
"settings.modifiedItemIndicator": "#ea9a97",
|
||||
"settings.focusedRowBorder": "#817c9c26",
|
||||
"settings.rowHoverBackground": "#2a273f",
|
||||
"sideBar.background": "#232136",
|
||||
"sideBar.dropBackground": "#2a273f",
|
||||
"sideBar.foreground": "#908caa",
|
||||
"sideBarSectionHeader.background": "#000000",
|
||||
"sideBarSectionHeader.border": "#817c9c26",
|
||||
"statusBar.background": "#232136",
|
||||
"statusBar.debuggingBackground": "#c4a7e7",
|
||||
"statusBar.debuggingForeground": "#232136",
|
||||
"statusBar.foreground": "#908caa",
|
||||
"statusBar.noFolderBackground": "#232136",
|
||||
"statusBar.noFolderForeground": "#908caa",
|
||||
"statusBarItem.activeBackground": "#817c9c4d",
|
||||
"statusBarItem.hoverBackground": "#817c9c26",
|
||||
"statusBarItem.prominentBackground": "#393552",
|
||||
"statusBarItem.prominentForeground": "#e0def4",
|
||||
"statusBarItem.prominentHoverBackground": "#817c9c26",
|
||||
"statusBarItem.remoteBackground": "#232136",
|
||||
"statusBarItem.remoteForeground": "#f6c177",
|
||||
"statusBarItem.errorBackground": "#232136",
|
||||
"statusBarItem.errorForeground": "#eb6f92",
|
||||
"symbolIcon.arrayForeground": "#908caa",
|
||||
"symbolIcon.classForeground": "#908caa",
|
||||
"symbolIcon.colorForeground": "#908caa",
|
||||
"symbolIcon.constantForeground": "#908caa",
|
||||
"symbolIcon.constructorForeground": "#908caa",
|
||||
"symbolIcon.enumeratorForeground": "#908caa",
|
||||
"symbolIcon.enumeratorMemberForeground": "#908caa",
|
||||
"symbolIcon.eventForeground": "#908caa",
|
||||
"symbolIcon.fieldForeground": "#908caa",
|
||||
"symbolIcon.fileForeground": "#908caa",
|
||||
"symbolIcon.folderForeground": "#908caa",
|
||||
"symbolIcon.functionForeground": "#908caa",
|
||||
"symbolIcon.interfaceForeground": "#908caa",
|
||||
"symbolIcon.keyForeground": "#908caa",
|
||||
"symbolIcon.keywordForeground": "#908caa",
|
||||
"symbolIcon.methodForeground": "#908caa",
|
||||
"symbolIcon.moduleForeground": "#908caa",
|
||||
"symbolIcon.namespaceForeground": "#908caa",
|
||||
"symbolIcon.nullForeground": "#908caa",
|
||||
"symbolIcon.numberForeground": "#908caa",
|
||||
"symbolIcon.objectForeground": "#908caa",
|
||||
"symbolIcon.operatorForeground": "#908caa",
|
||||
"symbolIcon.packageForeground": "#908caa",
|
||||
"symbolIcon.propertyForeground": "#908caa",
|
||||
"symbolIcon.referenceForeground": "#908caa",
|
||||
"symbolIcon.snippetForeground": "#908caa",
|
||||
"symbolIcon.stringForeground": "#908caa",
|
||||
"symbolIcon.structForeground": "#908caa",
|
||||
"symbolIcon.textForeground": "#908caa",
|
||||
"symbolIcon.typeParameterForeground": "#908caa",
|
||||
"symbolIcon.unitForeground": "#908caa",
|
||||
"symbolIcon.variableForeground": "#908caa",
|
||||
"tab.activeBackground": "#817c9c14",
|
||||
"tab.activeForeground": "#e0def4",
|
||||
"tab.activeModifiedBorder": "#9ccfd8",
|
||||
"tab.border": "#000000",
|
||||
"tab.hoverBackground": "#817c9c26",
|
||||
"tab.inactiveBackground": "#000000",
|
||||
"tab.inactiveForeground": "#908caa",
|
||||
"tab.inactiveModifiedBorder": "#9ccfd880",
|
||||
"tab.lastPinnedBorder": "#6e6a86",
|
||||
"tab.unfocusedActiveBackground": "#000000",
|
||||
"tab.unfocusedHoverBackground": "#000000",
|
||||
"tab.unfocusedInactiveBackground": "#000000",
|
||||
"tab.unfocusedInactiveModifiedBorder": "#9ccfd880",
|
||||
"terminal.ansiBlack": "#393552",
|
||||
"terminal.ansiBlue": "#9ccfd8",
|
||||
"terminal.ansiBrightBlack": "#908caa",
|
||||
"terminal.ansiBrightBlue": "#9ccfd8",
|
||||
"terminal.ansiBrightCyan": "#ea9a97",
|
||||
"terminal.ansiBrightGreen": "#3e8fb0",
|
||||
"terminal.ansiBrightMagenta": "#c4a7e7",
|
||||
"terminal.ansiBrightRed": "#eb6f92",
|
||||
"terminal.ansiBrightWhite": "#e0def4",
|
||||
"terminal.ansiBrightYellow": "#f6c177",
|
||||
"terminal.ansiCyan": "#ea9a97",
|
||||
"terminal.ansiGreen": "#3e8fb0",
|
||||
"terminal.ansiMagenta": "#c4a7e7",
|
||||
"terminal.ansiRed": "#eb6f92",
|
||||
"terminal.ansiWhite": "#e0def4",
|
||||
"terminal.ansiYellow": "#f6c177",
|
||||
"terminal.dropBackground": "#817c9c26",
|
||||
"terminal.foreground": "#e0def4",
|
||||
"terminal.selectionBackground": "#817c9c26",
|
||||
"terminal.tab.activeBorder": "#e0def4",
|
||||
"terminalCursor.background": "#e0def4",
|
||||
"terminalCursor.foreground": "#6e6a86",
|
||||
"textBlockQuote.background": "#2a273f",
|
||||
"textBlockQuote.border": "#817c9c26",
|
||||
"textCodeBlock.background": "#2a273f",
|
||||
"textLink.activeForeground": "#c4a7e7e6",
|
||||
"textLink.foreground": "#c4a7e7",
|
||||
"textPreformat.foreground": "#f6c177",
|
||||
"textSeparator.foreground": "#908caa",
|
||||
"titleBar.activeBackground": "#232136",
|
||||
"titleBar.activeForeground": "#908caa",
|
||||
"titleBar.inactiveBackground": "#2a273f",
|
||||
"titleBar.inactiveForeground": "#908caa",
|
||||
"toolbar.activeBackground": "#817c9c4d",
|
||||
"toolbar.hoverBackground": "#817c9c26",
|
||||
"tree.indentGuidesStroke": "#908caa",
|
||||
"walkThrough.embeddedEditorBackground": "#232136",
|
||||
"welcomePage.background": "#232136",
|
||||
"welcomePage.buttonBackground": "#2a273f",
|
||||
"welcomePage.buttonHoverBackground": "#393552",
|
||||
"widget.shadow": "#2a273f4d",
|
||||
"window.activeBorder": "#2a273f",
|
||||
"window.inactiveBorder": "#2a273f"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": ["comment"],
|
||||
"settings": {
|
||||
"foreground": "#6e6a86",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant"],
|
||||
"settings": {
|
||||
"foreground": "#3e8fb0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant.numeric", "constant.language"],
|
||||
"settings": {
|
||||
"foreground": "#ea9a97"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.name"],
|
||||
"settings": {
|
||||
"foreground": "#ea9a97"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.section",
|
||||
"entity.name.tag",
|
||||
"entity.name.namespace",
|
||||
"entity.name.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.other.attribute-name", "entity.other.inherited-class"],
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["invalid"],
|
||||
"settings": {
|
||||
"foreground": "#eb6f92"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["invalid.deprecated"],
|
||||
"settings": {
|
||||
"foreground": "#908caa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["keyword"],
|
||||
"settings": {
|
||||
"foreground": "#3e8fb0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.inserted.diff"],
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.deleted.diff"],
|
||||
"settings": {
|
||||
"foreground": "#eb6f92"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.diff.range"],
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.tag", "meta.brace"],
|
||||
"settings": {
|
||||
"foreground": "#e0def4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.import", "meta.export"],
|
||||
"settings": {
|
||||
"foreground": "#3e8fb0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.directive.vue",
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-name.css",
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-value.css",
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.tag.other.html",
|
||||
"settings": {
|
||||
"foreground": "#908caa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation"],
|
||||
"settings": {
|
||||
"foreground": "#908caa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.accessor"],
|
||||
"settings": {
|
||||
"foreground": "#3e8fb0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.definition.string"],
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.definition.tag"],
|
||||
"settings": {
|
||||
"foreground": "#6e6a86"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage.type", "storage.modifier"],
|
||||
"settings": {
|
||||
"foreground": "#3e8fb0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["string"],
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support"],
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.constant"],
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.function"],
|
||||
"settings": {
|
||||
"foreground": "#eb6f92",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable"],
|
||||
"settings": {
|
||||
"foreground": "#ea9a97",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other",
|
||||
"variable.language",
|
||||
"variable.function",
|
||||
"variable.argument"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e0def4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable.parameter"],
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,680 +0,0 @@
|
||||
{
|
||||
"name": "Rosé Pine",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"activityBar.activeBorder": "#e0def4",
|
||||
"activityBar.background": "#191724",
|
||||
"activityBar.dropBorder": "#26233a",
|
||||
"activityBar.foreground": "#e0def4",
|
||||
"activityBar.inactiveForeground": "#908caa",
|
||||
"activityBarBadge.background": "#ebbcba",
|
||||
"activityBarBadge.foreground": "#191724",
|
||||
"badge.background": "#ebbcba",
|
||||
"badge.foreground": "#191724",
|
||||
"banner.background": "#1f1d2e",
|
||||
"banner.foreground": "#e0def4",
|
||||
"banner.iconForeground": "#908caa",
|
||||
"breadcrumb.activeSelectionForeground": "#ebbcba",
|
||||
"breadcrumb.background": "#191724",
|
||||
"breadcrumb.focusForeground": "#908caa",
|
||||
"breadcrumb.foreground": "#6e6a86",
|
||||
"breadcrumbPicker.background": "#1f1d2e",
|
||||
"button.background": "#ebbcba",
|
||||
"button.foreground": "#191724",
|
||||
"button.hoverBackground": "#ebbcbae6",
|
||||
"button.secondaryBackground": "#1f1d2e",
|
||||
"button.secondaryForeground": "#e0def4",
|
||||
"button.secondaryHoverBackground": "#26233a",
|
||||
"charts.blue": "#9ccfd8",
|
||||
"charts.foreground": "#e0def4",
|
||||
"charts.green": "#31748f",
|
||||
"charts.lines": "#908caa",
|
||||
"charts.orange": "#ebbcba",
|
||||
"charts.purple": "#c4a7e7",
|
||||
"charts.red": "#eb6f92",
|
||||
"charts.yellow": "#f6c177",
|
||||
"checkbox.background": "#1f1d2e",
|
||||
"checkbox.border": "#6e6a8633",
|
||||
"checkbox.foreground": "#e0def4",
|
||||
"debugExceptionWidget.background": "#1f1d2e",
|
||||
"debugExceptionWidget.border": "#6e6a8633",
|
||||
"debugIcon.breakpointCurrentStackframeForeground": "#908caa",
|
||||
"debugIcon.breakpointDisabledForeground": "#908caa",
|
||||
"debugIcon.breakpointForeground": "#908caa",
|
||||
"debugIcon.breakpointStackframeForeground": "#908caa",
|
||||
"debugIcon.breakpointUnverifiedForeground": "#908caa",
|
||||
"debugIcon.continueForeground": "#908caa",
|
||||
"debugIcon.disconnectForeground": "#908caa",
|
||||
"debugIcon.pauseForeground": "#908caa",
|
||||
"debugIcon.restartForeground": "#908caa",
|
||||
"debugIcon.startForeground": "#908caa",
|
||||
"debugIcon.stepBackForeground": "#908caa",
|
||||
"debugIcon.stepIntoForeground": "#908caa",
|
||||
"debugIcon.stepOutForeground": "#908caa",
|
||||
"debugIcon.stepOverForeground": "#908caa",
|
||||
"debugIcon.stopForeground": "#eb6f92",
|
||||
"debugToolBar.background": "#1f1d2e",
|
||||
"debugToolBar.border": "#26233a",
|
||||
"descriptionForeground": "#908caa",
|
||||
"diffEditor.border": "#26233a",
|
||||
"diffEditor.diagonalFill": "#6e6a8666",
|
||||
"diffEditor.insertedLineBackground": "#9ccfd826",
|
||||
"diffEditor.insertedTextBackground": "#9ccfd826",
|
||||
"diffEditor.removedLineBackground": "#eb6f9226",
|
||||
"diffEditor.removedTextBackground": "#eb6f9226",
|
||||
"diffEditorOverview.insertedForeground": "#9ccfd880",
|
||||
"diffEditorOverview.removedForeground": "#eb6f9280",
|
||||
"dropdown.background": "#1f1d2e",
|
||||
"dropdown.border": "#6e6a8633",
|
||||
"dropdown.foreground": "#e0def4",
|
||||
"dropdown.listBackground": "#1f1d2e",
|
||||
"editor.background": "#191724",
|
||||
"editor.findMatchBackground": "#6e6a8666",
|
||||
"editor.findMatchHighlightBackground": "#6e6a8666",
|
||||
"editor.findRangeHighlightBackground": "#6e6a8666",
|
||||
"editor.findRangeHighlightBorder": "#000000",
|
||||
"editor.focusedStackFrameHighlightBackground": "#6e6a8633",
|
||||
"editor.foldBackground": "#1f1d2e",
|
||||
"editor.foreground": "#e0def4",
|
||||
"editor.hoverHighlightBackground": "#000000",
|
||||
"editor.inactiveSelectionBackground": "#6e6a861a",
|
||||
"editor.inlineValuesBackground": "#000000",
|
||||
"editor.inlineValuesForeground": "#908caa",
|
||||
"editor.lineHighlightBackground": "#6e6a861a",
|
||||
"editor.lineHighlightBorder": "#000000",
|
||||
"editor.linkedEditingBackground": "#1f1d2e",
|
||||
"editor.rangeHighlightBackground": "#6e6a861a",
|
||||
"editor.selectionBackground": "#6e6a8633",
|
||||
"editor.selectionForeground": "#e0def4",
|
||||
"editor.selectionHighlightBackground": "#6e6a8633",
|
||||
"editor.selectionHighlightBorder": "#191724",
|
||||
"editor.snippetFinalTabstopHighlightBackground": "#6e6a8633",
|
||||
"editor.snippetFinalTabstopHighlightBorder": "#1f1d2e",
|
||||
"editor.snippetTabstopHighlightBackground": "#6e6a8633",
|
||||
"editor.snippetTabstopHighlightBorder": "#1f1d2e",
|
||||
"editor.stackFrameHighlightBackground": "#6e6a8633",
|
||||
"editor.symbolHighlightBackground": "#6e6a8633",
|
||||
"editor.symbolHighlightBorder": "#000000",
|
||||
"editor.wordHighlightBackground": "#6e6a8633",
|
||||
"editor.wordHighlightBorder": "#000000",
|
||||
"editor.wordHighlightStrongBackground": "#6e6a8633",
|
||||
"editor.wordHighlightStrongBorder": "#6e6a8633",
|
||||
"editorBracketHighlight.foreground1": "#eb6f9280",
|
||||
"editorBracketHighlight.foreground2": "#31748f80",
|
||||
"editorBracketHighlight.foreground3": "#f6c17780",
|
||||
"editorBracketHighlight.foreground4": "#9ccfd880",
|
||||
"editorBracketHighlight.foreground5": "#ebbcba80",
|
||||
"editorBracketHighlight.foreground6": "#c4a7e780",
|
||||
"editorBracketMatch.background": "#000000",
|
||||
"editorBracketMatch.border": "#908caa",
|
||||
"editorBracketPairGuide.activeBackground1": "#31748f",
|
||||
"editorBracketPairGuide.activeBackground2": "#ebbcba",
|
||||
"editorBracketPairGuide.activeBackground3": "#c4a7e7",
|
||||
"editorBracketPairGuide.activeBackground4": "#9ccfd8",
|
||||
"editorBracketPairGuide.activeBackground5": "#f6c177",
|
||||
"editorBracketPairGuide.activeBackground6": "#eb6f92",
|
||||
"editorBracketPairGuide.background1": "#31748f80",
|
||||
"editorBracketPairGuide.background2": "#ebbcba80",
|
||||
"editorBracketPairGuide.background3": "#c4a7e780",
|
||||
"editorBracketPairGuide.background4": "#9ccfd880",
|
||||
"editorBracketPairGuide.background5": "#f6c17780",
|
||||
"editorBracketPairGuide.background6": "#eb6f9280",
|
||||
"editorCodeLens.foreground": "#ebbcba",
|
||||
"editorCursor.background": "#e0def4",
|
||||
"editorCursor.foreground": "#6e6a86",
|
||||
"editorError.border": "#000000",
|
||||
"editorError.foreground": "#eb6f92",
|
||||
"editorGhostText.foreground": "#908caa",
|
||||
"editorGroup.border": "#000000",
|
||||
"editorGroup.dropBackground": "#1f1d2e",
|
||||
"editorGroup.emptyBackground": "#000000",
|
||||
"editorGroup.focusedEmptyBorder": "#000000",
|
||||
"editorGroupHeader.noTabsBackground": "#000000",
|
||||
"editorGroupHeader.tabsBackground": "#000000",
|
||||
"editorGroupHeader.tabsBorder": "#000000",
|
||||
"editorGutter.addedBackground": "#9ccfd8",
|
||||
"editorGutter.background": "#191724",
|
||||
"editorGutter.commentRangeForeground": "#908caa",
|
||||
"editorGutter.deletedBackground": "#eb6f92",
|
||||
"editorGutter.foldingControlForeground": "#c4a7e7",
|
||||
"editorGutter.modifiedBackground": "#ebbcba",
|
||||
"editorHint.border": "#000000",
|
||||
"editorHint.foreground": "#908caa",
|
||||
"editorHoverWidget.background": "#1f1d2e",
|
||||
"editorHoverWidget.border": "#6e6a8680",
|
||||
"editorHoverWidget.foreground": "#908caa",
|
||||
"editorHoverWidget.highlightForeground": "#e0def4",
|
||||
"editorHoverWidget.statusBarBackground": "#000000",
|
||||
"editorIndentGuide.activeBackground": "#6e6a86",
|
||||
"editorIndentGuide.background": "#6e6a8666",
|
||||
"editorInfo.border": "#26233a",
|
||||
"editorInfo.foreground": "#9ccfd8",
|
||||
"editorInlayHint.background": "#26233a",
|
||||
"editorInlayHint.foreground": "#908caa",
|
||||
"editorInlayHint.parameterBackground": "#26233a",
|
||||
"editorInlayHint.parameterForeground": "#c4a7e7",
|
||||
"editorInlayHint.typeBackground": "#26233a",
|
||||
"editorInlayHint.typeForeground": "#9ccfd8",
|
||||
"editorLightBulb.foreground": "#31748f",
|
||||
"editorLightBulbAutoFix.foreground": "#ebbcba",
|
||||
"editorLineNumber.activeForeground": "#e0def4",
|
||||
"editorLineNumber.foreground": "#908caa",
|
||||
"editorLink.activeForeground": "#ebbcba",
|
||||
"editorMarkerNavigation.background": "#1f1d2e",
|
||||
"editorMarkerNavigationError.background": "#1f1d2e",
|
||||
"editorMarkerNavigationInfo.background": "#1f1d2e",
|
||||
"editorMarkerNavigationWarning.background": "#1f1d2e",
|
||||
"editorOverviewRuler.addedForeground": "#9ccfd880",
|
||||
"editorOverviewRuler.background": "#191724",
|
||||
"editorOverviewRuler.border": "#6e6a8666",
|
||||
"editorOverviewRuler.bracketMatchForeground": "#908caa",
|
||||
"editorOverviewRuler.commonContentForeground": "#6e6a861a",
|
||||
"editorOverviewRuler.currentContentForeground": "#6e6a8633",
|
||||
"editorOverviewRuler.deletedForeground": "#eb6f9280",
|
||||
"editorOverviewRuler.errorForeground": "#eb6f9280",
|
||||
"editorOverviewRuler.findMatchForeground": "#6e6a8666",
|
||||
"editorOverviewRuler.incomingContentForeground": "#c4a7e780",
|
||||
"editorOverviewRuler.infoForeground": "#9ccfd880",
|
||||
"editorOverviewRuler.modifiedForeground": "#ebbcba80",
|
||||
"editorOverviewRuler.rangeHighlightForeground": "#6e6a8666",
|
||||
"editorOverviewRuler.selectionHighlightForeground": "#6e6a8666",
|
||||
"editorOverviewRuler.warningForeground": "#f6c17780",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#6e6a8633",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8666",
|
||||
"editorPane.background": "#000000",
|
||||
"editorRuler.foreground": "#6e6a8666",
|
||||
"editorSuggestWidget.background": "#1f1d2e",
|
||||
"editorSuggestWidget.border": "#000000",
|
||||
"editorSuggestWidget.focusHighlightForeground": "#ebbcba",
|
||||
"editorSuggestWidget.foreground": "#908caa",
|
||||
"editorSuggestWidget.highlightForeground": "#ebbcba",
|
||||
"editorSuggestWidget.selectedBackground": "#6e6a8633",
|
||||
"editorSuggestWidget.selectedForeground": "#e0def4",
|
||||
"editorSuggestWidget.selectedIconForeground": "#e0def4",
|
||||
"editorUnnecessaryCode.border": "#000000",
|
||||
"editorUnnecessaryCode.opacity": "#e0def480",
|
||||
"editorWarning.border": "#000000",
|
||||
"editorWarning.foreground": "#f6c177",
|
||||
"editorWhitespace.foreground": "#6e6a86",
|
||||
"editorWidget.background": "#1f1d2e",
|
||||
"editorWidget.border": "#26233a",
|
||||
"editorWidget.foreground": "#908caa",
|
||||
"editorWidget.resizeBorder": "#6e6a86",
|
||||
"errorForeground": "#eb6f92",
|
||||
"extensionBadge.remoteBackground": "#c4a7e7",
|
||||
"extensionBadge.remoteForeground": "#191724",
|
||||
"extensionButton.prominentBackground": "#ebbcba",
|
||||
"extensionButton.prominentForeground": "#191724",
|
||||
"extensionButton.prominentHoverBackground": "#ebbcbae6",
|
||||
"extensionIcon.preReleaseForeground": "#31748f",
|
||||
"extensionIcon.starForeground": "#ebbcba",
|
||||
"extensionIcon.verifiedForeground": "#c4a7e7",
|
||||
"focusBorder": "#6e6a8633",
|
||||
"foreground": "#e0def4",
|
||||
"gitDecoration.addedResourceForeground": "#9ccfd8",
|
||||
"gitDecoration.conflictingResourceForeground": "#eb6f92",
|
||||
"gitDecoration.deletedResourceForeground": "#908caa",
|
||||
"gitDecoration.ignoredResourceForeground": "#6e6a86",
|
||||
"gitDecoration.modifiedResourceForeground": "#ebbcba",
|
||||
"gitDecoration.renamedResourceForeground": "#31748f",
|
||||
"gitDecoration.stageDeletedResourceForeground": "#eb6f92",
|
||||
"gitDecoration.stageModifiedResourceForeground": "#c4a7e7",
|
||||
"gitDecoration.submoduleResourceForeground": "#f6c177",
|
||||
"gitDecoration.untrackedResourceForeground": "#f6c177",
|
||||
"icon.foreground": "#908caa",
|
||||
"input.background": "#26233a80",
|
||||
"input.border": "#6e6a8633",
|
||||
"input.foreground": "#e0def4",
|
||||
"input.placeholderForeground": "#908caa",
|
||||
"inputOption.activeBackground": "#ebbcba26",
|
||||
"inputOption.activeForeground": "#ebbcba",
|
||||
"inputValidation.errorBackground": "#1f1d2e",
|
||||
"inputValidation.errorBorder": "#6e6a8666",
|
||||
"inputValidation.errorForeground": "#eb6f92",
|
||||
"inputValidation.infoBackground": "#1f1d2e",
|
||||
"inputValidation.infoBorder": "#6e6a8666",
|
||||
"inputValidation.infoForeground": "#9ccfd8",
|
||||
"inputValidation.warningBackground": "#1f1d2e",
|
||||
"inputValidation.warningBorder": "#6e6a8666",
|
||||
"inputValidation.warningForeground": "#9ccfd880",
|
||||
"keybindingLabel.background": "#26233a",
|
||||
"keybindingLabel.border": "#6e6a8666",
|
||||
"keybindingLabel.bottomBorder": "#6e6a8666",
|
||||
"keybindingLabel.foreground": "#c4a7e7",
|
||||
"keybindingTable.headerBackground": "#26233a",
|
||||
"keybindingTable.rowsBackground": "#1f1d2e",
|
||||
"list.activeSelectionBackground": "#6e6a8633",
|
||||
"list.activeSelectionForeground": "#e0def4",
|
||||
"list.deemphasizedForeground": "#908caa",
|
||||
"list.dropBackground": "#1f1d2e",
|
||||
"list.errorForeground": "#eb6f92",
|
||||
"list.filterMatchBackground": "#1f1d2e",
|
||||
"list.filterMatchBorder": "#ebbcba",
|
||||
"list.focusBackground": "#6e6a8666",
|
||||
"list.focusForeground": "#e0def4",
|
||||
"list.focusOutline": "#6e6a8633",
|
||||
"list.highlightForeground": "#ebbcba",
|
||||
"list.hoverBackground": "#6e6a861a",
|
||||
"list.hoverForeground": "#e0def4",
|
||||
"list.inactiveFocusBackground": "#6e6a861a",
|
||||
"list.inactiveSelectionBackground": "#1f1d2e",
|
||||
"list.inactiveSelectionForeground": "#e0def4",
|
||||
"list.invalidItemForeground": "#eb6f92",
|
||||
"list.warningForeground": "#f6c177",
|
||||
"listFilterWidget.background": "#1f1d2e",
|
||||
"listFilterWidget.noMatchesOutline": "#eb6f92",
|
||||
"listFilterWidget.outline": "#26233a",
|
||||
"menu.background": "#1f1d2e",
|
||||
"menu.border": "#6e6a861a",
|
||||
"menu.foreground": "#e0def4",
|
||||
"menu.selectionBackground": "#6e6a8633",
|
||||
"menu.selectionBorder": "#26233a",
|
||||
"menu.selectionForeground": "#e0def4",
|
||||
"menu.separatorBackground": "#6e6a8666",
|
||||
"menubar.selectionBackground": "#6e6a8633",
|
||||
"menubar.selectionBorder": "#6e6a861a",
|
||||
"menubar.selectionForeground": "#e0def4",
|
||||
"merge.border": "#26233a",
|
||||
"merge.commonContentBackground": "#6e6a8633",
|
||||
"merge.commonHeaderBackground": "#6e6a8633",
|
||||
"merge.currentContentBackground": "#f6c17780",
|
||||
"merge.currentHeaderBackground": "#f6c17780",
|
||||
"merge.incomingContentBackground": "#9ccfd880",
|
||||
"merge.incomingHeaderBackground": "#9ccfd880",
|
||||
"minimap.background": "#1f1d2e",
|
||||
"minimap.errorHighlight": "#eb6f9280",
|
||||
"minimap.findMatchHighlight": "#6e6a8633",
|
||||
"minimap.selectionHighlight": "#6e6a8633",
|
||||
"minimap.warningHighlight": "#f6c17780",
|
||||
"minimapGutter.addedBackground": "#9ccfd8",
|
||||
"minimapGutter.deletedBackground": "#eb6f92",
|
||||
"minimapGutter.modifiedBackground": "#ebbcba",
|
||||
"minimapSlider.activeBackground": "#6e6a8666",
|
||||
"minimapSlider.background": "#6e6a8633",
|
||||
"minimapSlider.hoverBackground": "#6e6a8633",
|
||||
"notebook.cellBorderColor": "#9ccfd880",
|
||||
"notebook.cellEditorBackground": "#1f1d2e",
|
||||
"notebook.cellHoverBackground": "#26233a80",
|
||||
"notebook.focusedCellBackground": "#6e6a861a",
|
||||
"notebook.focusedCellBorder": "#9ccfd8",
|
||||
"notebook.outputContainerBackgroundColor": "#6e6a861a",
|
||||
"notificationCenter.border": "#6e6a8633",
|
||||
"notificationCenterHeader.background": "#1f1d2e",
|
||||
"notificationCenterHeader.foreground": "#908caa",
|
||||
"notificationLink.foreground": "#c4a7e7",
|
||||
"notifications.background": "#1f1d2e",
|
||||
"notifications.border": "#6e6a8633",
|
||||
"notifications.foreground": "#e0def4",
|
||||
"notificationsErrorIcon.foreground": "#eb6f92",
|
||||
"notificationsInfoIcon.foreground": "#9ccfd8",
|
||||
"notificationsWarningIcon.foreground": "#f6c177",
|
||||
"notificationToast.border": "#6e6a8633",
|
||||
"panel.background": "#1f1d2e",
|
||||
"panel.border": "#000000",
|
||||
"panel.dropBorder": "#26233a",
|
||||
"panelInput.border": "#1f1d2e",
|
||||
"panelSection.dropBackground": "#6e6a8633",
|
||||
"panelSectionHeader.background": "#1f1d2e",
|
||||
"panelSectionHeader.foreground": "#e0def4",
|
||||
"panelTitle.activeBorder": "#6e6a8666",
|
||||
"panelTitle.activeForeground": "#e0def4",
|
||||
"panelTitle.inactiveForeground": "#908caa",
|
||||
"peekView.border": "#26233a",
|
||||
"peekViewEditor.background": "#1f1d2e",
|
||||
"peekViewEditor.matchHighlightBackground": "#6e6a8666",
|
||||
"peekViewResult.background": "#1f1d2e",
|
||||
"peekViewResult.fileForeground": "#908caa",
|
||||
"peekViewResult.lineForeground": "#908caa",
|
||||
"peekViewResult.matchHighlightBackground": "#6e6a8666",
|
||||
"peekViewResult.selectionBackground": "#6e6a8633",
|
||||
"peekViewResult.selectionForeground": "#e0def4",
|
||||
"peekViewTitle.background": "#26233a",
|
||||
"peekViewTitleDescription.foreground": "#908caa",
|
||||
"pickerGroup.border": "#6e6a8666",
|
||||
"pickerGroup.foreground": "#c4a7e7",
|
||||
"ports.iconRunningProcessForeground": "#ebbcba",
|
||||
"problemsErrorIcon.foreground": "#eb6f92",
|
||||
"problemsInfoIcon.foreground": "#9ccfd8",
|
||||
"problemsWarningIcon.foreground": "#f6c177",
|
||||
"progressBar.background": "#ebbcba",
|
||||
"quickInput.background": "#1f1d2e",
|
||||
"quickInput.foreground": "#908caa",
|
||||
"quickInputList.focusBackground": "#6e6a8633",
|
||||
"quickInputList.focusForeground": "#e0def4",
|
||||
"quickInputList.focusIconForeground": "#e0def4",
|
||||
"scrollbar.shadow": "#1f1d2e4d",
|
||||
"scrollbarSlider.activeBackground": "#31748f80",
|
||||
"scrollbarSlider.background": "#6e6a8633",
|
||||
"scrollbarSlider.hoverBackground": "#6e6a8666",
|
||||
"searchEditor.findMatchBackground": "#6e6a8633",
|
||||
"selection.background": "#6e6a8666",
|
||||
"settings.focusedRowBackground": "#1f1d2e",
|
||||
"settings.headerForeground": "#e0def4",
|
||||
"settings.modifiedItemIndicator": "#ebbcba",
|
||||
"settings.focusedRowBorder": "#6e6a8633",
|
||||
"settings.rowHoverBackground": "#1f1d2e",
|
||||
"sideBar.background": "#191724",
|
||||
"sideBar.dropBackground": "#1f1d2e",
|
||||
"sideBar.foreground": "#908caa",
|
||||
"sideBarSectionHeader.background": "#000000",
|
||||
"sideBarSectionHeader.border": "#6e6a8633",
|
||||
"statusBar.background": "#191724",
|
||||
"statusBar.debuggingBackground": "#c4a7e7",
|
||||
"statusBar.debuggingForeground": "#191724",
|
||||
"statusBar.foreground": "#908caa",
|
||||
"statusBar.noFolderBackground": "#191724",
|
||||
"statusBar.noFolderForeground": "#908caa",
|
||||
"statusBarItem.activeBackground": "#6e6a8666",
|
||||
"statusBarItem.hoverBackground": "#6e6a8633",
|
||||
"statusBarItem.prominentBackground": "#26233a",
|
||||
"statusBarItem.prominentForeground": "#e0def4",
|
||||
"statusBarItem.prominentHoverBackground": "#6e6a8633",
|
||||
"statusBarItem.remoteBackground": "#191724",
|
||||
"statusBarItem.remoteForeground": "#f6c177",
|
||||
"statusBarItem.errorBackground": "#191724",
|
||||
"statusBarItem.errorForeground": "#eb6f92",
|
||||
"symbolIcon.arrayForeground": "#908caa",
|
||||
"symbolIcon.classForeground": "#908caa",
|
||||
"symbolIcon.colorForeground": "#908caa",
|
||||
"symbolIcon.constantForeground": "#908caa",
|
||||
"symbolIcon.constructorForeground": "#908caa",
|
||||
"symbolIcon.enumeratorForeground": "#908caa",
|
||||
"symbolIcon.enumeratorMemberForeground": "#908caa",
|
||||
"symbolIcon.eventForeground": "#908caa",
|
||||
"symbolIcon.fieldForeground": "#908caa",
|
||||
"symbolIcon.fileForeground": "#908caa",
|
||||
"symbolIcon.folderForeground": "#908caa",
|
||||
"symbolIcon.functionForeground": "#908caa",
|
||||
"symbolIcon.interfaceForeground": "#908caa",
|
||||
"symbolIcon.keyForeground": "#908caa",
|
||||
"symbolIcon.keywordForeground": "#908caa",
|
||||
"symbolIcon.methodForeground": "#908caa",
|
||||
"symbolIcon.moduleForeground": "#908caa",
|
||||
"symbolIcon.namespaceForeground": "#908caa",
|
||||
"symbolIcon.nullForeground": "#908caa",
|
||||
"symbolIcon.numberForeground": "#908caa",
|
||||
"symbolIcon.objectForeground": "#908caa",
|
||||
"symbolIcon.operatorForeground": "#908caa",
|
||||
"symbolIcon.packageForeground": "#908caa",
|
||||
"symbolIcon.propertyForeground": "#908caa",
|
||||
"symbolIcon.referenceForeground": "#908caa",
|
||||
"symbolIcon.snippetForeground": "#908caa",
|
||||
"symbolIcon.stringForeground": "#908caa",
|
||||
"symbolIcon.structForeground": "#908caa",
|
||||
"symbolIcon.textForeground": "#908caa",
|
||||
"symbolIcon.typeParameterForeground": "#908caa",
|
||||
"symbolIcon.unitForeground": "#908caa",
|
||||
"symbolIcon.variableForeground": "#908caa",
|
||||
"tab.activeBackground": "#6e6a861a",
|
||||
"tab.activeForeground": "#e0def4",
|
||||
"tab.activeModifiedBorder": "#9ccfd8",
|
||||
"tab.border": "#000000",
|
||||
"tab.hoverBackground": "#6e6a8633",
|
||||
"tab.inactiveBackground": "#000000",
|
||||
"tab.inactiveForeground": "#908caa",
|
||||
"tab.inactiveModifiedBorder": "#9ccfd880",
|
||||
"tab.lastPinnedBorder": "#6e6a86",
|
||||
"tab.unfocusedActiveBackground": "#000000",
|
||||
"tab.unfocusedHoverBackground": "#000000",
|
||||
"tab.unfocusedInactiveBackground": "#000000",
|
||||
"tab.unfocusedInactiveModifiedBorder": "#9ccfd880",
|
||||
"terminal.ansiBlack": "#26233a",
|
||||
"terminal.ansiBlue": "#9ccfd8",
|
||||
"terminal.ansiBrightBlack": "#908caa",
|
||||
"terminal.ansiBrightBlue": "#9ccfd8",
|
||||
"terminal.ansiBrightCyan": "#ebbcba",
|
||||
"terminal.ansiBrightGreen": "#31748f",
|
||||
"terminal.ansiBrightMagenta": "#c4a7e7",
|
||||
"terminal.ansiBrightRed": "#eb6f92",
|
||||
"terminal.ansiBrightWhite": "#e0def4",
|
||||
"terminal.ansiBrightYellow": "#f6c177",
|
||||
"terminal.ansiCyan": "#ebbcba",
|
||||
"terminal.ansiGreen": "#31748f",
|
||||
"terminal.ansiMagenta": "#c4a7e7",
|
||||
"terminal.ansiRed": "#eb6f92",
|
||||
"terminal.ansiWhite": "#e0def4",
|
||||
"terminal.ansiYellow": "#f6c177",
|
||||
"terminal.dropBackground": "#6e6a8633",
|
||||
"terminal.foreground": "#e0def4",
|
||||
"terminal.selectionBackground": "#6e6a8633",
|
||||
"terminal.tab.activeBorder": "#e0def4",
|
||||
"terminalCursor.background": "#e0def4",
|
||||
"terminalCursor.foreground": "#6e6a86",
|
||||
"textBlockQuote.background": "#1f1d2e",
|
||||
"textBlockQuote.border": "#6e6a8633",
|
||||
"textCodeBlock.background": "#1f1d2e",
|
||||
"textLink.activeForeground": "#c4a7e7e6",
|
||||
"textLink.foreground": "#c4a7e7",
|
||||
"textPreformat.foreground": "#f6c177",
|
||||
"textSeparator.foreground": "#908caa",
|
||||
"titleBar.activeBackground": "#191724",
|
||||
"titleBar.activeForeground": "#908caa",
|
||||
"titleBar.inactiveBackground": "#1f1d2e",
|
||||
"titleBar.inactiveForeground": "#908caa",
|
||||
"toolbar.activeBackground": "#6e6a8666",
|
||||
"toolbar.hoverBackground": "#6e6a8633",
|
||||
"tree.indentGuidesStroke": "#908caa",
|
||||
"walkThrough.embeddedEditorBackground": "#191724",
|
||||
"welcomePage.background": "#191724",
|
||||
"welcomePage.buttonBackground": "#1f1d2e",
|
||||
"welcomePage.buttonHoverBackground": "#26233a",
|
||||
"widget.shadow": "#1f1d2e4d",
|
||||
"window.activeBorder": "#1f1d2e",
|
||||
"window.inactiveBorder": "#1f1d2e"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": ["comment"],
|
||||
"settings": {
|
||||
"foreground": "#6e6a86",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant"],
|
||||
"settings": {
|
||||
"foreground": "#31748f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["constant.numeric", "constant.language"],
|
||||
"settings": {
|
||||
"foreground": "#ebbcba"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.name"],
|
||||
"settings": {
|
||||
"foreground": "#ebbcba"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.section",
|
||||
"entity.name.tag",
|
||||
"entity.name.namespace",
|
||||
"entity.name.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["entity.other.attribute-name", "entity.other.inherited-class"],
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["invalid"],
|
||||
"settings": {
|
||||
"foreground": "#eb6f92"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["invalid.deprecated"],
|
||||
"settings": {
|
||||
"foreground": "#908caa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["keyword"],
|
||||
"settings": {
|
||||
"foreground": "#31748f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.inserted.diff"],
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["markup.deleted.diff"],
|
||||
"settings": {
|
||||
"foreground": "#eb6f92"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.italic.markdown",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.diff.range"],
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.tag", "meta.brace"],
|
||||
"settings": {
|
||||
"foreground": "#e0def4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.import", "meta.export"],
|
||||
"settings": {
|
||||
"foreground": "#31748f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.directive.vue",
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-name.css",
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-value.css",
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.tag.other.html",
|
||||
"settings": {
|
||||
"foreground": "#908caa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation"],
|
||||
"settings": {
|
||||
"foreground": "#908caa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.accessor"],
|
||||
"settings": {
|
||||
"foreground": "#31748f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.definition.string"],
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["punctuation.definition.tag"],
|
||||
"settings": {
|
||||
"foreground": "#6e6a86"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["storage.type", "storage.modifier"],
|
||||
"settings": {
|
||||
"foreground": "#31748f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["string"],
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support"],
|
||||
"settings": {
|
||||
"foreground": "#9ccfd8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.constant"],
|
||||
"settings": {
|
||||
"foreground": "#f6c177"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["support.function"],
|
||||
"settings": {
|
||||
"foreground": "#eb6f92",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable"],
|
||||
"settings": {
|
||||
"foreground": "#ebbcba",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other",
|
||||
"variable.language",
|
||||
"variable.function",
|
||||
"variable.argument"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#e0def4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["variable.parameter"],
|
||||
"settings": {
|
||||
"foreground": "#c4a7e7"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
Copyright (c) 2011 Ethan Schoonover
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -1,558 +0,0 @@
|
||||
{
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"errorForeground": "#ffeaea",
|
||||
"focusBorder": "#2aa19899",
|
||||
"selection.background": "#2aa19899",
|
||||
"input.background": "#003847",
|
||||
"input.foreground": "#93a1a1",
|
||||
"inputOption.activeBorder": "#2aa19899",
|
||||
"input.placeholderForeground": "#93a1a1aa",
|
||||
"inputValidation.infoBackground": "#052730",
|
||||
"inputValidation.infoBorder": "#363b5f",
|
||||
"inputValidation.warningBackground": "#5d5938",
|
||||
"inputValidation.warningBorder": "#9d8a5e",
|
||||
"inputValidation.errorBackground": "#571b26",
|
||||
"inputValidation.errorBorder": "#a92049",
|
||||
"dropdown.background": "#00212b",
|
||||
"dropdown.border": "#2aa19899",
|
||||
"list.focusBackground": "#005a6f",
|
||||
"list.activeSelectionBackground": "#005a6f",
|
||||
"list.inactiveSelectionBackground": "#00445488",
|
||||
"list.hoverBackground": "#004454aa",
|
||||
"list.dropBackground": "#00445488",
|
||||
"list.highlightForeground": "#1ebcc5",
|
||||
"pickerGroup.foreground": "#2aa19899",
|
||||
"pickerGroup.border": "#2aa19899",
|
||||
"button.background": "#2aa19899",
|
||||
"badge.background": "#047aa6",
|
||||
"progressBar.background": "#047aa6",
|
||||
"editor.background": "#002b36",
|
||||
"editorWidget.background": "#00212b",
|
||||
"editor.selectionBackground": "#073642",
|
||||
"editor.selectionHighlightBackground": "#005a6faa",
|
||||
"editorHoverWidget.background": "#004052",
|
||||
"editor.lineHighlightBackground": "#073642",
|
||||
"editorCursor.foreground": "#839496",
|
||||
"editorWhitespace.foreground": "#93a1a180",
|
||||
"editorLineNumber.foreground": "#566c74",
|
||||
"editorLineNumber.activeForeground": "#6e8a93",
|
||||
"editorGutter.background": "#073642",
|
||||
"editorMarkerNavigationError.background": "#ab395b",
|
||||
"editorMarkerNavigationWarning.background": "#5b7e7a",
|
||||
"editor.wordHighlightBackground": "#004454aa",
|
||||
"editor.wordHighlightStrongBackground": "#005a6faa",
|
||||
"peekViewTitle.background": "#00212b",
|
||||
"peekView.border": "#003847",
|
||||
"peekViewResult.background": "#00212b",
|
||||
"peekViewEditor.background": "#10192c",
|
||||
"peekViewEditorGutter.background": "#073642",
|
||||
"peekViewEditor.matchHighlightBackground": "#7744aa40",
|
||||
"tab.activeBackground": "#002b37",
|
||||
"tab.inactiveBackground": "#004052",
|
||||
"tab.border": "#003847",
|
||||
"tab.activeForeground": "#d6dbdb",
|
||||
"tab.inactiveForeground": "#93a1a1",
|
||||
"editorGroup.background": "#011b23",
|
||||
"editorGroupHeader.tabsBackground": "#004052",
|
||||
"editorGroup.border": "#00212b",
|
||||
"editorGroup.dropBackground": "#2aa19844",
|
||||
"panel.border": "#003847",
|
||||
"statusBar.foreground": "#93a1a1",
|
||||
"statusBar.background": "#00212b",
|
||||
"statusBar.noFolderBackground": "#00212b",
|
||||
"statusBarItem.prominentBackground": "#003847",
|
||||
"statusBarItem.prominentHoverBackground": "#003847",
|
||||
"activityBar.background": "#003847",
|
||||
"sideBar.background": "#00212b",
|
||||
"sideBarTitle.foreground": "#93a1a1",
|
||||
"titleBar.activeBackground": "#002c39",
|
||||
"terminal.foreground": "#839496",
|
||||
"statusBar.debuggingBackground": "#00212b",
|
||||
"debugExceptionWidget.border": "#ab395b",
|
||||
"debugExceptionWidget.background": "#00212b",
|
||||
"debugToolBar.background": "#00212b",
|
||||
"terminal.ansiBlack": "#073642",
|
||||
"terminal.ansiRed": "#dc322f",
|
||||
"terminal.ansiGreen": "#859900",
|
||||
"terminal.ansiYellow": "#b58900",
|
||||
"terminal.ansiBlue": "#268bd2",
|
||||
"terminal.ansiMagenta": "#d33682",
|
||||
"terminal.ansiCyan": "#2aa198",
|
||||
"terminal.ansiWhite": "#839496",
|
||||
"terminal.ansiBrightBlack": "#586e75",
|
||||
"terminal.ansiBrightRed": "#cb4b16",
|
||||
"terminal.ansiBrightGreen": "#859900",
|
||||
"terminal.ansiBrightYellow": "#657b83",
|
||||
"terminal.ansiBrightBlue": "#839496",
|
||||
"terminal.ansiBrightMagenta": "#6c71c4",
|
||||
"terminal.ansiBrightCyan": "#93a1a1",
|
||||
"terminal.ansiBrightWhite": "#839496",
|
||||
"editorBracketHighlight.foreground1": "#268bd2",
|
||||
"editorBracketHighlight.foreground2": "#b58900",
|
||||
"editorBracketHighlight.foreground3": "#d33682"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"foreground": "#bbbbbbff",
|
||||
"background": "#002b36ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": ["meta.embedded", "source.groovy.embedded"],
|
||||
"settings": {
|
||||
"background": "#002B36",
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": "string",
|
||||
"settings": {
|
||||
"foreground": "#2AA198"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regexp",
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": "constant.numeric",
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": ["variable.language", "variable.other"],
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": "storage",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Class name",
|
||||
"scope": ["entity.name.class", "entity.name.type"],
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable start",
|
||||
"scope": "punctuation.definition.variable",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Embedded code markers",
|
||||
"scope": [
|
||||
"punctuation.section.embedded.begin",
|
||||
"punctuation.section.embedded.end"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constant",
|
||||
"scope": ["constant.language", "meta.preprocessor"],
|
||||
"settings": {
|
||||
"foreground": "#B58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Support.construct",
|
||||
"scope": ["support.function.construct", "keyword.other.new"],
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "User-defined constant",
|
||||
"scope": ["constant.character", "constant.other"],
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class",
|
||||
"scope": "entity.other.inherited-class",
|
||||
"settings": {
|
||||
"foreground": "#6C71C4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function argument",
|
||||
"scope": "variable.parameter",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Tag name",
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag start/end",
|
||||
"scope": "punctuation.definition.tag",
|
||||
"settings": {
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": "support.function",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Continuation",
|
||||
"scope": "punctuation.separator.continuation",
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": "support.constant",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": ["support.type", "support.class"],
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library Exception",
|
||||
"scope": "support.type.exception",
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library variable",
|
||||
"scope": "support.other.variable",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": "invalid",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "diff: header",
|
||||
"scope": ["meta.diff", "meta.diff.header"],
|
||||
"settings": {
|
||||
"background": "#b58900",
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#E0EDDD"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: deleted",
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"background": "#eee8d5",
|
||||
"fontStyle": "",
|
||||
"foreground": "#dc322f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: changed",
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"background": "#eee8d5",
|
||||
"fontStyle": "",
|
||||
"foreground": "#cb4b16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: inserted",
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"background": "#eee8d5",
|
||||
"foreground": "#219186"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Quote",
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Lists",
|
||||
"scope": "markup.list",
|
||||
"settings": {
|
||||
"foreground": "#B58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Styling",
|
||||
"scope": ["markup.bold", "markup.italic"],
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Inline",
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#2AA198"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Headings",
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Setext Header",
|
||||
"scope": "markup.heading.setext",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#6796e6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#cd9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#f44747"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#b267e6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.object.property",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.parameter",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.type",
|
||||
"settings": {
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type.function",
|
||||
"settings": {
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.other.inherited-class",
|
||||
"settings": {
|
||||
"foreground": "#b58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.import",
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier.async",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.import",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.ts",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.function-call",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.type",
|
||||
"settings": {
|
||||
"foreground": "#b58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.other",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier.tsx",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.type.class.python",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.type.python",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.python",
|
||||
"settings": {
|
||||
"foreground": "#839496"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.import",
|
||||
"settings": {
|
||||
"foreground": "#cb4b16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.from",
|
||||
"settings": {
|
||||
"foreground": "#cb4b16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "constant.language.python",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function.python",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.separator.dictionary.key-value.json, punctuation.separator.array.json, punctuation.separator.dictionary.pair.json",
|
||||
"settings": {
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type.ts",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.type.primitive",
|
||||
"settings": {
|
||||
"foreground": "#b58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.definition.array.begin.json, punctuation.definition.array.end.json",
|
||||
"settings": {
|
||||
"foreground": "#DC3272"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"name": "Solarized",
|
||||
"author": "Ethan Schoonover (altercation)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Solarized Dark",
|
||||
"file_name": "dark.json",
|
||||
"appearance": "dark"
|
||||
},
|
||||
{
|
||||
"name": "Solarized Light",
|
||||
"file_name": "light.json",
|
||||
"appearance": "light"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,591 +0,0 @@
|
||||
{
|
||||
"type": "light",
|
||||
"colors": {
|
||||
"focusBorder": "#d3af86",
|
||||
"selection.background": "#ccc4b0",
|
||||
"input.background": "#ddd6c1",
|
||||
"input.foreground": "#586e75",
|
||||
"inputOption.activeBorder": "#d3af86",
|
||||
"input.placeholderForeground": "#586e75aa",
|
||||
"dropdown.background": "#eee8d5",
|
||||
"dropdown.border": "#d3af86",
|
||||
"list.focusBackground": "#dfca8866",
|
||||
"list.activeSelectionBackground": "#dfca88",
|
||||
"list.activeSelectionForeground": "#6c6c6c",
|
||||
"list.inactiveSelectionBackground": "#d1cbb8",
|
||||
"list.hoverBackground": "#dfca8844",
|
||||
"list.highlightForeground": "#b58900",
|
||||
"pickerGroup.foreground": "#2aa19899",
|
||||
"pickerGroup.border": "#2aa19899",
|
||||
"button.background": "#ac9d57",
|
||||
"badge.background": "#b58900aa",
|
||||
"progressBar.background": "#b58900",
|
||||
"editor.background": "#fdf6e3",
|
||||
"editorWidget.background": "#eee8d5",
|
||||
"editor.selectionBackground": "#eee8d5",
|
||||
"editorHoverWidget.background": "#ccc4b0",
|
||||
"editor.lineHighlightBackground": "#eee8d5",
|
||||
"editorCursor.foreground": "#657b83",
|
||||
"editorWhitespace.foreground": "#586e7580",
|
||||
"editorLineNumber.foreground": "#9ca8a6",
|
||||
"editorLineNumber.activeForeground": "#6f7776",
|
||||
"editorGutter.background": "#eee8d5",
|
||||
"peekViewTitle.background": "#eee8d5",
|
||||
"peekView.border": "#b58900",
|
||||
"peekViewResult.background": "#eee8d5",
|
||||
"peekViewEditor.background": "#fffbf2",
|
||||
"peekViewEditor.matchHighlightBackground": "#7744aa40",
|
||||
"tab.activeBackground": "#fdf6e3",
|
||||
"tab.inactiveBackground": "#d3cbb7",
|
||||
"tab.border": "#ddd6c1",
|
||||
"tab.inactiveForeground": "#586e75",
|
||||
"editorGroup.background": "#fffbf2",
|
||||
"editorGroupHeader.tabsBackground": "#d9d2c2",
|
||||
"editorGroup.border": "#ddd6c1",
|
||||
"editorGroup.dropBackground": "#ddd6c1aa",
|
||||
"panel.border": "#ddd6c1",
|
||||
"statusBar.foreground": "#586e75",
|
||||
"statusBar.background": "#eee8d5",
|
||||
"statusBar.noFolderBackground": "#eee8d5",
|
||||
"statusBarItem.prominentBackground": "#ddd6c1",
|
||||
"statusBarItem.prominentHoverBackground": "#ddd6c199",
|
||||
"activityBar.background": "#ddd6c1",
|
||||
"activityBar.foreground": "#584c27",
|
||||
"activityBar.dropBackground": "#eee8d5",
|
||||
"activityBarBadge.background": "#b58900",
|
||||
"sideBar.background": "#eee8d5",
|
||||
"sideBarTitle.foreground": "#586e75",
|
||||
"titleBar.activeBackground": "#eee8d5",
|
||||
"terminal.foreground": "#657b83",
|
||||
"statusBar.debuggingBackground": "#eee8d5",
|
||||
"debugExceptionWidget.border": "#ab395b",
|
||||
"debugExceptionWidget.background": "#ddd6c1",
|
||||
"debugToolBar.background": "#ddd6c1",
|
||||
"extensionButton.prominentBackground": "#b58900",
|
||||
"extensionButton.prominentHoverBackground": "#584c27aa",
|
||||
"terminal.ansiBlack": "#657b83",
|
||||
"terminal.ansiRed": "#dc322f",
|
||||
"terminal.ansiGreen": "#859900",
|
||||
"terminal.ansiYellow": "#b58900",
|
||||
"terminal.ansiBlue": "#268bd2",
|
||||
"terminal.ansiMagenta": "#d33682",
|
||||
"terminal.ansiCyan": "#2aa198",
|
||||
"terminal.ansiWhite": "#eee8d5",
|
||||
"terminal.ansiBrightBlack": "#657b83",
|
||||
"terminal.ansiBrightRed": "#cb4b16",
|
||||
"terminal.ansiBrightGreen": "#859900",
|
||||
"terminal.ansiBrightYellow": "#657b83",
|
||||
"terminal.ansiBrightBlue": "#839496",
|
||||
"terminal.ansiBrightMagenta": "#6c71c4",
|
||||
"terminal.ansiBrightCyan": "#93a1a1",
|
||||
"terminal.ansiBrightWhite": "#eee8d5",
|
||||
"editorBracketHighlight.foreground1": "#268bd2",
|
||||
"editorBracketHighlight.foreground2": "#b58900",
|
||||
"editorBracketHighlight.foreground3": "#d33682"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"settings": {
|
||||
"foreground": "#333333ff",
|
||||
"background": "#fdf6e3ff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#FDF6E3",
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": "comment",
|
||||
"settings": {
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": "string",
|
||||
"settings": {
|
||||
"foreground": "#2AA198"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regexp",
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": "constant.numeric",
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": [
|
||||
"variable.language",
|
||||
"variable.other"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
"scope": "storage",
|
||||
"settings": {
|
||||
"fontStyle": "bold",
|
||||
"foreground": "#073642"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Class name",
|
||||
"scope": [
|
||||
"entity.name.class",
|
||||
"entity.name.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function name",
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable start",
|
||||
"scope": "punctuation.definition.variable",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Embedded code markers",
|
||||
"scope": [
|
||||
"punctuation.section.embedded.begin",
|
||||
"punctuation.section.embedded.end"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Built-in constant",
|
||||
"scope": [
|
||||
"constant.language",
|
||||
"meta.preprocessor"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#B58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Support.construct",
|
||||
"scope": [
|
||||
"support.function.construct",
|
||||
"keyword.other.new"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "User-defined constant",
|
||||
"scope": [
|
||||
"constant.character",
|
||||
"constant.other"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class",
|
||||
"scope": "entity.other.inherited-class",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Function argument",
|
||||
"scope": "variable.parameter",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Tag name",
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag start/end",
|
||||
"scope": [
|
||||
"punctuation.definition.tag.begin",
|
||||
"punctuation.definition.tag.end"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#93A1A1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library function",
|
||||
"scope": "support.function",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Continuation",
|
||||
"scope": "punctuation.separator.continuation",
|
||||
"settings": {
|
||||
"foreground": "#D30102"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library constant",
|
||||
"scope": "support.constant",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Library class/type",
|
||||
"scope": [
|
||||
"support.type",
|
||||
"support.class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library Exception",
|
||||
"scope": "support.type.exception",
|
||||
"settings": {
|
||||
"foreground": "#CB4B16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Library variable",
|
||||
"scope": "support.other.variable",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "Invalid",
|
||||
"scope": "invalid",
|
||||
"settings": {}
|
||||
},
|
||||
{
|
||||
"name": "diff: header",
|
||||
"scope": [
|
||||
"meta.diff",
|
||||
"meta.diff.header"
|
||||
],
|
||||
"settings": {
|
||||
"background": "#b58900",
|
||||
"fontStyle": "italic",
|
||||
"foreground": "#E0EDDD"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: deleted",
|
||||
"scope": "markup.deleted",
|
||||
"settings": {
|
||||
"background": "#eee8d5",
|
||||
"fontStyle": "",
|
||||
"foreground": "#dc322f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: changed",
|
||||
"scope": "markup.changed",
|
||||
"settings": {
|
||||
"background": "#eee8d5",
|
||||
"fontStyle": "",
|
||||
"foreground": "#cb4b16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff: inserted",
|
||||
"scope": "markup.inserted",
|
||||
"settings": {
|
||||
"background": "#eee8d5",
|
||||
"foreground": "#219186"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Quote",
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Lists",
|
||||
"scope": "markup.list",
|
||||
"settings": {
|
||||
"foreground": "#B58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Styling",
|
||||
"scope": [
|
||||
"markup.bold",
|
||||
"markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Inline",
|
||||
"scope": "markup.inline.raw",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#2AA198"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Headings",
|
||||
"scope": "markup.heading",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup Setext Header",
|
||||
"scope": "markup.heading.setext",
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#316bcd"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#cd9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#cd3131"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#800080"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.import",
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier.async",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.import",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.ts",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.function-call",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.type",
|
||||
"settings": {
|
||||
"foreground": "#b58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.other",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier.tsx",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.import",
|
||||
"settings": {
|
||||
"foreground": "#D33682"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier.async",
|
||||
"settings": {
|
||||
"foreground": "#859900ff",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.import",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source.ts",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.function-call",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.type",
|
||||
"settings": {
|
||||
"foreground": "#b58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "variable.other",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.modifier.tsx",
|
||||
"settings": {
|
||||
"foreground": "#859900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.separator.dictionary.key-value.json, punctuation.separator.array.json, punctuation.separator.dictionary.pair.json",
|
||||
"settings": {
|
||||
"foreground": "#657B83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type",
|
||||
"settings": {
|
||||
"foreground": "#268BD2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.definition.array.begin.json, punctuation.definition.array.end.json",
|
||||
"settings": {
|
||||
"foreground": "#DC3272"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "support.type.primitive",
|
||||
"settings": {
|
||||
"foreground": "#b58900"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.import",
|
||||
"settings": {
|
||||
"foreground": "#cb4b16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "keyword.control.from",
|
||||
"settings": {
|
||||
"foreground": "#cb4b16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "source",
|
||||
"settings": {
|
||||
"foreground": "#657b83"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Robb Owen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"name": "Synthwave 84",
|
||||
"author": "Robb Owen (robb0wen)",
|
||||
"themes": [
|
||||
{
|
||||
"name": "Synthwave 84",
|
||||
"file_name": "synthwave.json",
|
||||
"appearance": "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,822 +0,0 @@
|
||||
{
|
||||
"name": "SynthWave 84",
|
||||
"type": "dark",
|
||||
"semanticHighlighting": true,
|
||||
"colors": {
|
||||
"focusBorder": "#1f212b",
|
||||
"foreground": "#ffffff",
|
||||
"widget.shadow": "#2a2139",
|
||||
"selection.background": "#ffffff20",
|
||||
"errorForeground": "#fe4450",
|
||||
"textLink.activeForeground": "#ff7edb",
|
||||
"textLink.foreground": "#f97e72",
|
||||
"button.background": "#614D85",
|
||||
"dropdown.background": "#232530",
|
||||
"dropdown.listBackground": "#2a2139",
|
||||
"input.background": "#2a2139",
|
||||
"inputOption.activeBorder": "#ff7edb99",
|
||||
"inputValidation.errorBackground": "#fe445080",
|
||||
"inputValidation.errorBorder": "#fe445000",
|
||||
"scrollbar.shadow": "#2a2139",
|
||||
"scrollbarSlider.activeBackground": "#9d8bca20",
|
||||
"scrollbarSlider.background": "#9d8bca30",
|
||||
"scrollbarSlider.hoverBackground": "#9d8bca50",
|
||||
"badge.foreground": "#ffffff",
|
||||
"badge.background": "#2a2139",
|
||||
"progressBar.background": "#f97e72",
|
||||
"list.activeSelectionBackground": "#ffffff20",
|
||||
"list.activeSelectionForeground": "#ffffff",
|
||||
"list.dropBackground": "#34294f66",
|
||||
"list.focusBackground": "#ffffff20",
|
||||
"list.focusForeground": "#ffffff",
|
||||
"list.highlightForeground": "#f97e72",
|
||||
"list.hoverBackground": "#37294d99",
|
||||
"list.hoverForeground": "#ffffff",
|
||||
"list.inactiveSelectionBackground": "#ffffff20",
|
||||
"list.inactiveSelectionForeground": "#ffffff",
|
||||
"list.inactiveFocusBackground": "#2a213999",
|
||||
"list.errorForeground": "#fe4450E6",
|
||||
"list.warningForeground": "#72f1b8bb",
|
||||
"activityBar.background": "#171520",
|
||||
"activityBar.dropBackground": "#34294f66",
|
||||
"activityBar.foreground": "#ffffffCC",
|
||||
"activityBarBadge.background": "#f97e72",
|
||||
"activityBarBadge.foreground": "#2a2139",
|
||||
"sideBar.background": "#241b2f",
|
||||
"sideBar.foreground": "#ffffff99",
|
||||
"sideBar.dropBackground": "#34294f4c",
|
||||
"sideBarSectionHeader.background": "#241b2f",
|
||||
"sideBarSectionHeader.foreground": "#ffffffca",
|
||||
"menu.background": "#463465",
|
||||
"editorGroup.border": "#495495",
|
||||
"editorGroup.dropBackground": "#4954954a",
|
||||
"editorGroupHeader.tabsBackground": "#241b2f",
|
||||
"tab.border": "#241b2f00",
|
||||
"tab.activeBorder": "#880088",
|
||||
"tab.inactiveBackground": "#262335",
|
||||
"editor.background": "#262335",
|
||||
"editorLineNumber.foreground": "#ffffff73",
|
||||
"editorLineNumber.activeForeground": "#ffffffcc",
|
||||
"editorCursor.background": "#241b2f",
|
||||
"editorCursor.foreground": "#f97e72",
|
||||
"editor.selectionBackground": "#ffffff20",
|
||||
"editor.selectionHighlightBackground": "#ffffff20",
|
||||
"editor.wordHighlightBackground": "#34294f88",
|
||||
"editor.wordHighlightStrongBackground": "#34294f88",
|
||||
"editor.findMatchBackground": "#D18616bb",
|
||||
"editor.findMatchHighlightBackground": "#D1861655",
|
||||
"editor.findRangeHighlightBackground": "#34294f1a",
|
||||
"editor.hoverHighlightBackground": "#463564",
|
||||
"editor.lineHighlightBorder": "#7059AB66",
|
||||
"editor.rangeHighlightBackground": "#49549539",
|
||||
"editorIndentGuide.background": "#444251",
|
||||
"editorIndentGuide.activeBackground": "#A148AB80",
|
||||
"editorRuler.foreground": "#A148AB80",
|
||||
"editorCodeLens.foreground": "#ffffff7c",
|
||||
"editorBracketMatch.background": "#34294f66",
|
||||
"editorBracketMatch.border": "#495495",
|
||||
"editorOverviewRuler.border": "#34294fb3",
|
||||
"editorOverviewRuler.findMatchForeground": "#D1861699",
|
||||
"editorOverviewRuler.modifiedForeground": "#b893ce99",
|
||||
"editorOverviewRuler.addedForeground": "#09f7a099",
|
||||
"editorOverviewRuler.deletedForeground": "#fe445099",
|
||||
"editorOverviewRuler.errorForeground": "#fe4450dd",
|
||||
"editorOverviewRuler.warningForeground": "#72f1b8cc",
|
||||
"editorError.foreground": "#fe4450",
|
||||
"editorWarning.foreground": "#72f1b8cc",
|
||||
"editorGutter.modifiedBackground": "#b893ce8f",
|
||||
"editorGutter.addedBackground": "#206d4bd6",
|
||||
"editorGutter.deletedBackground": "#fa2e46a4",
|
||||
"diffEditor.insertedTextBackground": "#0beb9935",
|
||||
"diffEditor.removedTextBackground": "#fe445035",
|
||||
"editorWidget.background": "#171520DC",
|
||||
"editorWidget.border": "#ffffff22",
|
||||
"editorWidget.resizeBorder": "#ffffff44",
|
||||
"editorSuggestWidget.highlightForeground": "#f97e72",
|
||||
"editorSuggestWidget.selectedBackground": "#ffffff36",
|
||||
"peekView.border": "#495495",
|
||||
"peekViewEditor.background": "#232530",
|
||||
"peekViewEditor.matchHighlightBackground": "#D18616bb",
|
||||
"peekViewResult.background": "#232530",
|
||||
"peekViewResult.matchHighlightBackground": "#D1861655",
|
||||
"peekViewResult.selectionBackground": "#2a213980",
|
||||
"peekViewTitle.background": "#232530",
|
||||
"panelTitle.activeBorder": "#f97e72",
|
||||
"statusBar.background": "#241b2f",
|
||||
"statusBar.foreground": "#ffffff80",
|
||||
"statusBar.debuggingBackground": "#f97e72",
|
||||
"statusBar.debuggingForeground": "#08080f",
|
||||
"statusBar.noFolderBackground": "#241b2f",
|
||||
"statusBarItem.prominentBackground": "#2a2139",
|
||||
"statusBarItem.prominentHoverBackground": "#34294f",
|
||||
"titleBar.activeBackground": "#241b2f",
|
||||
"titleBar.inactiveBackground": "#241b2f",
|
||||
"extensionButton.prominentBackground": "#f97e72",
|
||||
"extensionButton.prominentHoverBackground": "#ff7edb",
|
||||
"pickerGroup.foreground": "#f97e72ea",
|
||||
"terminal.foreground": "#ffffff",
|
||||
"terminal.ansiBlue": "#03edf9",
|
||||
"terminal.ansiBrightBlue": "#03edf9",
|
||||
"terminal.ansiBrightCyan": "#03edf9",
|
||||
"terminal.ansiBrightGreen": "#72f1b8",
|
||||
"terminal.ansiBrightMagenta": "#ff7edb",
|
||||
"terminal.ansiBrightRed": "#fe4450",
|
||||
"terminal.ansiBrightYellow": "#fede5d",
|
||||
"terminal.ansiCyan": "#03edf9",
|
||||
"terminal.ansiGreen": "#72f1b8",
|
||||
"terminal.ansiMagenta": "#ff7edb",
|
||||
"terminal.ansiRed": "#fe4450",
|
||||
"terminal.ansiYellow": "#f3e70f",
|
||||
"terminal.selectionBackground": "#ffffff20",
|
||||
"terminalCursor.background": "#ffffff",
|
||||
"terminalCursor.foreground": "#03edf9",
|
||||
"debugToolBar.background": "#463465",
|
||||
"walkThrough.embeddedEditorBackground": "#232530",
|
||||
"gitDecoration.modifiedResourceForeground": "#b893ceee",
|
||||
"gitDecoration.deletedResourceForeground": "#fe4450",
|
||||
"gitDecoration.addedResourceForeground": "#72f1b8cc",
|
||||
"gitDecoration.untrackedResourceForeground": "#72f1b8",
|
||||
"gitDecoration.ignoredResourceForeground": "#ffffff59",
|
||||
"minimapGutter.addedBackground": "#09f7a099",
|
||||
"minimapGutter.modifiedBackground": "#b893ce",
|
||||
"minimapGutter.deletedBackground": "#fe4450",
|
||||
"breadcrumbPicker.background": "#232530"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"name": "Comment",
|
||||
"scope": [
|
||||
"comment",
|
||||
"string.quoted.docstring.multi.python",
|
||||
"string.quoted.docstring.multi.python punctuation.definition.string.begin.python",
|
||||
"string.quoted.docstring.multi.python punctuation.definition.string.end.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#848bbd",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "String",
|
||||
"scope": ["string.quoted", "string.template", "punctuation.definition.string"],
|
||||
"settings": {
|
||||
"foreground": "#ff8b39"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Punctuation within templates",
|
||||
"scope": "string.template meta.embedded.line",
|
||||
"settings": {
|
||||
"foreground": "#b6b1b1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Variable",
|
||||
"scope": ["variable", "entity.name.variable"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Language variable",
|
||||
"scope": "variable.language",
|
||||
"settings": {
|
||||
"foreground": "#fe4450",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Parameter",
|
||||
"scope": "variable.parameter",
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Storage (declaration or modifier keyword)",
|
||||
"scope": ["storage.type", "storage.modifier"],
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Constant",
|
||||
"scope": "constant",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Regex",
|
||||
"scope": "string.regexp",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Number",
|
||||
"scope": "constant.numeric",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Language constant (boolean, null)",
|
||||
"scope": "constant.language",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Character escape",
|
||||
"scope": "constant.character.escape",
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Entity",
|
||||
"scope": "entity.name",
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "HTML or XML tag",
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "HTML or XML tag brackets",
|
||||
"scope": ["punctuation.definition.tag"],
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute",
|
||||
"scope": "entity.other.attribute-name",
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tag attribute HTML",
|
||||
"scope": "entity.other.attribute-name.html",
|
||||
"settings": {
|
||||
"foreground": "#fede5d",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Class",
|
||||
"scope": ["entity.name.type", "meta.attribute.class.html"],
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inherited class",
|
||||
"scope": "entity.other.inherited-class",
|
||||
"settings": {
|
||||
"foreground": "#D50"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Function",
|
||||
"scope": ["entity.name.function", "variable.function"],
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JS Export",
|
||||
"scope": ["keyword.control.export.js", "keyword.control.import.js"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JS Numerics",
|
||||
"scope": ["constant.numeric.decimal.js"],
|
||||
"settings": {
|
||||
"foreground": "#2EE2FA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Keyword",
|
||||
"scope": "keyword",
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Control keyword",
|
||||
"scope": "keyword.control",
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Operator",
|
||||
"scope": "keyword.operator",
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Special operator",
|
||||
"scope": [
|
||||
"keyword.operator.new",
|
||||
"keyword.operator.expression",
|
||||
"keyword.operator.logical"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Unit",
|
||||
"scope": "keyword.other.unit",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Support",
|
||||
"scope": "support",
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Support function",
|
||||
"scope": "support.function",
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Support variable",
|
||||
"scope": "support.variable",
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Object literal key / property",
|
||||
"scope": ["meta.object-literal.key", "support.type.property-name"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Key-value separator",
|
||||
"scope": "punctuation.separator.key-value",
|
||||
"settings": {
|
||||
"foreground": "#b6b1b1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Embedded punctuation",
|
||||
"scope": "punctuation.section.embedded",
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Template expression",
|
||||
"scope": [
|
||||
"punctuation.definition.template-expression.begin",
|
||||
"punctuation.definition.template-expression.end"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS property",
|
||||
"scope": ["support.type.property-name.css", "support.type.property-name.json"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JS Switch control",
|
||||
"scope": "switch-block.expr.js",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "JS object path",
|
||||
"scope": "variable.other.constant.property.js, variable.other.property.js",
|
||||
"settings": {
|
||||
"foreground": "#2ee2fa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Color",
|
||||
"scope": "constant.other.color",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Font names",
|
||||
"scope": "support.constant.font-name",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS #id",
|
||||
"scope": "entity.other.attribute-name.id",
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pseudo CSS",
|
||||
"scope": [
|
||||
"entity.other.attribute-name.pseudo-element",
|
||||
"entity.other.attribute-name.pseudo-class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D50"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CSS support functions (rgb)",
|
||||
"scope": "support.function.misc.css",
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup heading",
|
||||
"scope": ["markup.heading", "entity.name.section"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup text",
|
||||
"scope": ["text.html", "keyword.operator.assignment"],
|
||||
"settings": {
|
||||
"foreground": "#ffffffee"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup quote",
|
||||
"scope": "markup.quote",
|
||||
"settings": {
|
||||
"foreground": "#b6b1b1cc",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup list",
|
||||
"scope": "beginning.punctuation.definition.list",
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup link",
|
||||
"scope": "markup.underline.link",
|
||||
"settings": {
|
||||
"foreground": "#D50"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markup link description",
|
||||
"scope": "string.other.link.description",
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python function call",
|
||||
"scope": "meta.function-call.generic.python",
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python variable params",
|
||||
"scope": "variable.parameter.function-call.python",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C# storage type",
|
||||
"scope": "storage.type.cs",
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C# local variable",
|
||||
"scope": "entity.name.variable.local.cs",
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C# properties and fields",
|
||||
"scope": ["entity.name.variable.field.cs", "entity.name.variable.property.cs"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C placeholder",
|
||||
"scope": "constant.other.placeholder.c",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C preprocessors",
|
||||
"scope": ["keyword.control.directive.include.c", "keyword.control.directive.define.c"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C storage modifier",
|
||||
"scope": "storage.modifier.c",
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C++ operators",
|
||||
"scope": "source.cpp keyword.operator",
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C++ placeholder",
|
||||
"scope": "constant.other.placeholder.cpp",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C++ include",
|
||||
"scope": [
|
||||
"keyword.control.directive.include.cpp",
|
||||
"keyword.control.directive.define.cpp"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "C++ constant modifier",
|
||||
"scope": "storage.modifier.specifier.const.cpp",
|
||||
"settings": {
|
||||
"foreground": "#fe4450"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Elixir Classes",
|
||||
"scope": [
|
||||
"source.elixir support.type.elixir",
|
||||
"source.elixir meta.module.elixir entity.name.class.elixir"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Elixir Functions",
|
||||
"scope": "source.elixir entity.name.function",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Elixir Constants",
|
||||
"scope": [
|
||||
"source.elixir constant.other.symbol.elixir",
|
||||
"source.elixir constant.other.keywords.elixir"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Elixir String Punctuation",
|
||||
"scope": "source.elixir punctuation.definition.string",
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Elixir",
|
||||
"scope": [
|
||||
"source.elixir variable.other.readwrite.module.elixir",
|
||||
"source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Elixir Binary Punctuation",
|
||||
"scope": "source.elixir .punctuation.binary.elixir",
|
||||
"settings": {
|
||||
"foreground": "#ff7edb",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Clojure Globals",
|
||||
"scope": ["entity.global.clojure"],
|
||||
"settings": {
|
||||
"foreground": "#36f9f6",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Clojure Storage",
|
||||
"scope": ["storage.control.clojure"],
|
||||
"settings": {
|
||||
"foreground": "#36f9f6",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Clojure Metadata",
|
||||
"scope": ["meta.metadata.simple.clojure", "meta.metadata.map.clojure"],
|
||||
"settings": {
|
||||
"foreground": "#fe4450",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Clojure Macros, Quoted",
|
||||
"scope": ["meta.quoted-expression.clojure"],
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Clojure Symbols",
|
||||
"scope": ["meta.symbol.clojure"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edbff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Go basic",
|
||||
"scope": "source.go",
|
||||
"settings": {
|
||||
"foreground": "#ff7edbff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Go Function Calls",
|
||||
"scope": "source.go meta.function-call.go",
|
||||
"settings": {
|
||||
"foreground": "#36f9f6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Go Keywords",
|
||||
"scope": [
|
||||
"source.go keyword.package.go",
|
||||
"source.go keyword.import.go",
|
||||
"source.go keyword.function.go",
|
||||
"source.go keyword.type.go",
|
||||
"source.go keyword.const.go",
|
||||
"source.go keyword.var.go",
|
||||
"source.go keyword.map.go",
|
||||
"source.go keyword.channel.go",
|
||||
"source.go keyword.control.go"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Go interfaces",
|
||||
"scope": [
|
||||
"source.go storage.type",
|
||||
"source.go keyword.struct.go",
|
||||
"source.go keyword.interface.go"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Go Constants e.g. nil, string format (%s, %d, etc.)",
|
||||
"scope": [
|
||||
"source.go constant.language.go",
|
||||
"source.go constant.other.placeholder.go",
|
||||
"source.go variable"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#2EE2FA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown links and image paths",
|
||||
"scope": ["markup.underline.link.markdown", "markup.inline.raw.string.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown links and image paths",
|
||||
"scope": ["string.other.link.title.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#fede5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown headings",
|
||||
"scope": ["markup.heading.markdown", "entity.name.section.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edb",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown italic",
|
||||
"scope": ["markup.italic.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#2EE2FA",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown bold",
|
||||
"scope": ["markup.bold.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#2EE2FA",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Markdown quotes",
|
||||
"scope": ["punctuation.definition.quote.begin.markdown", "markup.quote.markdown"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Basic source colours",
|
||||
"scope": ["source.dart", "source.python", "source.scala"],
|
||||
"settings": {
|
||||
"foreground": "#ff7edbff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Dart strings",
|
||||
"scope": ["string.interpolated.single.dart"],
|
||||
"settings": {
|
||||
"foreground": "#f97e72"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Dart variable params",
|
||||
"scope": ["variable.parameter.dart"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Dart numerics",
|
||||
"scope": ["constant.numeric.dart"],
|
||||
"settings": {
|
||||
"foreground": "#2EE2FA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Scala variable params",
|
||||
"scope": ["variable.parameter.scala"],
|
||||
"settings": {
|
||||
"foreground": "#2EE2FA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Scala",
|
||||
"scope": ["meta.template.expression.scala"],
|
||||
"settings": {
|
||||
"foreground": "#72f1b8"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
[package]
|
||||
name = "ai"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
||||
[lib]
|
||||
path = "src/ai.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
test-support = []
|
||||
|
||||
[dependencies]
|
||||
gpui = { path = "../gpui" }
|
||||
util = { path = "../util" }
|
||||
language = { path = "../language" }
|
||||
async-trait.workspace = true
|
||||
anyhow.workspace = true
|
||||
futures.workspace = true
|
||||
lazy_static.workspace = true
|
||||
ordered-float.workspace = true
|
||||
parking_lot.workspace = true
|
||||
isahc.workspace = true
|
||||
regex.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
postage.workspace = true
|
||||
rand.workspace = true
|
||||
log.workspace = true
|
||||
parse_duration = "2.1.1"
|
||||
tiktoken-rs = "0.5.0"
|
||||
matrixmultiply = "0.3.7"
|
||||
rusqlite = { version = "0.29.0", features = ["blob", "array", "modern_sqlite"] }
|
||||
bincode = "1.3.3"
|
||||
|
||||
[dev-dependencies]
|
||||
gpui = { path = "../gpui", features = ["test-support"] }
|
||||
@@ -8,13 +8,9 @@ publish = false
|
||||
path = "src/ai.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
test-support = []
|
||||
|
||||
[dependencies]
|
||||
gpui = { path = "../gpui" }
|
||||
util = { path = "../util" }
|
||||
language = { path = "../language" }
|
||||
async-trait.workspace = true
|
||||
anyhow.workspace = true
|
||||
futures.workspace = true
|
||||
|
||||
@@ -1,8 +1,2 @@
|
||||
pub mod auth;
|
||||
pub mod completion;
|
||||
pub mod embedding;
|
||||
pub mod models;
|
||||
pub mod prompts;
|
||||
pub mod providers;
|
||||
#[cfg(any(test, feature = "test-support"))]
|
||||
pub mod test;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
use gpui::AppContext;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum ProviderCredential {
|
||||
Credentials { api_key: String },
|
||||
NoCredentials,
|
||||
NotNeeded,
|
||||
}
|
||||
|
||||
pub trait CredentialProvider: Send + Sync {
|
||||
fn has_credentials(&self) -> bool;
|
||||
fn retrieve_credentials(&self, cx: &AppContext) -> ProviderCredential;
|
||||
fn save_credentials(&self, cx: &AppContext, credential: ProviderCredential);
|
||||
fn delete_credentials(&self, cx: &AppContext);
|
||||
}
|
||||
@@ -1,23 +1,212 @@
|
||||
use anyhow::Result;
|
||||
use futures::{future::BoxFuture, stream::BoxStream};
|
||||
use anyhow::{anyhow, Result};
|
||||
use futures::{
|
||||
future::BoxFuture, io::BufReader, stream::BoxStream, AsyncBufReadExt, AsyncReadExt, FutureExt,
|
||||
Stream, StreamExt,
|
||||
};
|
||||
use gpui::executor::Background;
|
||||
use isahc::{http::StatusCode, Request, RequestExt};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{
|
||||
fmt::{self, Display},
|
||||
io,
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
use crate::{auth::CredentialProvider, models::LanguageModel};
|
||||
pub const OPENAI_API_URL: &'static str = "https://api.openai.com/v1";
|
||||
|
||||
pub trait CompletionRequest: Send + Sync {
|
||||
fn data(&self) -> serde_json::Result<String>;
|
||||
#[derive(Clone, Copy, Serialize, Deserialize, Debug, Eq, PartialEq)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum Role {
|
||||
User,
|
||||
Assistant,
|
||||
System,
|
||||
}
|
||||
|
||||
pub trait CompletionProvider: CredentialProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel>;
|
||||
fn complete(
|
||||
&self,
|
||||
prompt: Box<dyn CompletionRequest>,
|
||||
) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>>;
|
||||
fn box_clone(&self) -> Box<dyn CompletionProvider>;
|
||||
}
|
||||
|
||||
impl Clone for Box<dyn CompletionProvider> {
|
||||
fn clone(&self) -> Box<dyn CompletionProvider> {
|
||||
self.box_clone()
|
||||
impl Role {
|
||||
pub fn cycle(&mut self) {
|
||||
*self = match self {
|
||||
Role::User => Role::Assistant,
|
||||
Role::Assistant => Role::System,
|
||||
Role::System => Role::User,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for Role {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Role::User => write!(f, "User"),
|
||||
Role::Assistant => write!(f, "Assistant"),
|
||||
Role::System => write!(f, "System"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
|
||||
pub struct RequestMessage {
|
||||
pub role: Role,
|
||||
pub content: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Serialize)]
|
||||
pub struct OpenAIRequest {
|
||||
pub model: String,
|
||||
pub messages: Vec<RequestMessage>,
|
||||
pub stream: bool,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
|
||||
pub struct ResponseMessage {
|
||||
pub role: Option<Role>,
|
||||
pub content: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct OpenAIUsage {
|
||||
pub prompt_tokens: u32,
|
||||
pub completion_tokens: u32,
|
||||
pub total_tokens: u32,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct ChatChoiceDelta {
|
||||
pub index: u32,
|
||||
pub delta: ResponseMessage,
|
||||
pub finish_reason: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct OpenAIResponseStreamEvent {
|
||||
pub id: Option<String>,
|
||||
pub object: String,
|
||||
pub created: u32,
|
||||
pub model: String,
|
||||
pub choices: Vec<ChatChoiceDelta>,
|
||||
pub usage: Option<OpenAIUsage>,
|
||||
}
|
||||
|
||||
pub async fn stream_completion(
|
||||
api_key: String,
|
||||
executor: Arc<Background>,
|
||||
mut request: OpenAIRequest,
|
||||
) -> Result<impl Stream<Item = Result<OpenAIResponseStreamEvent>>> {
|
||||
request.stream = true;
|
||||
|
||||
let (tx, rx) = futures::channel::mpsc::unbounded::<Result<OpenAIResponseStreamEvent>>();
|
||||
|
||||
let json_data = serde_json::to_string(&request)?;
|
||||
let mut response = Request::post(format!("{OPENAI_API_URL}/chat/completions"))
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Authorization", format!("Bearer {}", api_key))
|
||||
.body(json_data)?
|
||||
.send_async()
|
||||
.await?;
|
||||
|
||||
let status = response.status();
|
||||
if status == StatusCode::OK {
|
||||
executor
|
||||
.spawn(async move {
|
||||
let mut lines = BufReader::new(response.body_mut()).lines();
|
||||
|
||||
fn parse_line(
|
||||
line: Result<String, io::Error>,
|
||||
) -> Result<Option<OpenAIResponseStreamEvent>> {
|
||||
if let Some(data) = line?.strip_prefix("data: ") {
|
||||
let event = serde_json::from_str(&data)?;
|
||||
Ok(Some(event))
|
||||
} else {
|
||||
Ok(None)
|
||||
}
|
||||
}
|
||||
|
||||
while let Some(line) = lines.next().await {
|
||||
if let Some(event) = parse_line(line).transpose() {
|
||||
let done = event.as_ref().map_or(false, |event| {
|
||||
event
|
||||
.choices
|
||||
.last()
|
||||
.map_or(false, |choice| choice.finish_reason.is_some())
|
||||
});
|
||||
if tx.unbounded_send(event).is_err() {
|
||||
break;
|
||||
}
|
||||
|
||||
if done {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
anyhow::Ok(())
|
||||
})
|
||||
.detach();
|
||||
|
||||
Ok(rx)
|
||||
} else {
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIResponse {
|
||||
error: OpenAIError,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIError {
|
||||
message: String,
|
||||
}
|
||||
|
||||
match serde_json::from_str::<OpenAIResponse>(&body) {
|
||||
Ok(response) if !response.error.message.is_empty() => Err(anyhow!(
|
||||
"Failed to connect to OpenAI API: {}",
|
||||
response.error.message,
|
||||
)),
|
||||
|
||||
_ => Err(anyhow!(
|
||||
"Failed to connect to OpenAI API: {} {}",
|
||||
response.status(),
|
||||
body,
|
||||
)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub trait CompletionProvider {
|
||||
fn complete(
|
||||
&self,
|
||||
prompt: OpenAIRequest,
|
||||
) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>>;
|
||||
}
|
||||
|
||||
pub struct OpenAICompletionProvider {
|
||||
api_key: String,
|
||||
executor: Arc<Background>,
|
||||
}
|
||||
|
||||
impl OpenAICompletionProvider {
|
||||
pub fn new(api_key: String, executor: Arc<Background>) -> Self {
|
||||
Self { api_key, executor }
|
||||
}
|
||||
}
|
||||
|
||||
impl CompletionProvider for OpenAICompletionProvider {
|
||||
fn complete(
|
||||
&self,
|
||||
prompt: OpenAIRequest,
|
||||
) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>> {
|
||||
let request = stream_completion(self.api_key.clone(), self.executor.clone(), prompt);
|
||||
async move {
|
||||
let response = request.await?;
|
||||
let stream = response
|
||||
.filter_map(|response| async move {
|
||||
match response {
|
||||
Ok(mut response) => Some(Ok(response.choices.pop()?.delta.content?)),
|
||||
Err(error) => Some(Err(error)),
|
||||
}
|
||||
})
|
||||
.boxed();
|
||||
Ok(stream)
|
||||
}
|
||||
.boxed()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,30 @@
|
||||
use std::time::Instant;
|
||||
|
||||
use anyhow::Result;
|
||||
use anyhow::{anyhow, Result};
|
||||
use async_trait::async_trait;
|
||||
use futures::AsyncReadExt;
|
||||
use gpui::executor::Background;
|
||||
use gpui::serde_json;
|
||||
use isahc::http::StatusCode;
|
||||
use isahc::prelude::Configurable;
|
||||
use isahc::{AsyncBody, Response};
|
||||
use lazy_static::lazy_static;
|
||||
use ordered_float::OrderedFloat;
|
||||
use parking_lot::Mutex;
|
||||
use parse_duration::parse;
|
||||
use postage::watch;
|
||||
use rusqlite::types::{FromSql, FromSqlResult, ToSqlOutput, ValueRef};
|
||||
use rusqlite::ToSql;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::env;
|
||||
use std::ops::Add;
|
||||
use std::sync::Arc;
|
||||
use std::time::{Duration, Instant};
|
||||
use tiktoken_rs::{cl100k_base, CoreBPE};
|
||||
use util::http::{HttpClient, Request};
|
||||
|
||||
use crate::auth::CredentialProvider;
|
||||
use crate::models::LanguageModel;
|
||||
lazy_static! {
|
||||
static ref OPENAI_API_KEY: Option<String> = env::var("OPENAI_API_KEY").ok();
|
||||
static ref OPENAI_BPE_TOKENIZER: CoreBPE = cl100k_base().unwrap();
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone)]
|
||||
pub struct Embedding(pub Vec<f32>);
|
||||
@@ -68,14 +85,295 @@ impl Embedding {
|
||||
}
|
||||
}
|
||||
|
||||
// impl FromSql for Embedding {
|
||||
// fn column_result(value: ValueRef) -> FromSqlResult<Self> {
|
||||
// let bytes = value.as_blob()?;
|
||||
// let embedding: Result<Vec<f32>, Box<bincode::ErrorKind>> = bincode::deserialize(bytes);
|
||||
// if embedding.is_err() {
|
||||
// return Err(rusqlite::types::FromSqlError::Other(embedding.unwrap_err()));
|
||||
// }
|
||||
// Ok(Embedding(embedding.unwrap()))
|
||||
// }
|
||||
// }
|
||||
|
||||
// impl ToSql for Embedding {
|
||||
// fn to_sql(&self) -> rusqlite::Result<ToSqlOutput> {
|
||||
// let bytes = bincode::serialize(&self.0)
|
||||
// .map_err(|err| rusqlite::Error::ToSqlConversionFailure(Box::new(err)))?;
|
||||
// Ok(ToSqlOutput::Owned(rusqlite::types::Value::Blob(bytes)))
|
||||
// }
|
||||
// }
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct OpenAIEmbeddings {
|
||||
pub client: Arc<dyn HttpClient>,
|
||||
pub executor: Arc<Background>,
|
||||
rate_limit_count_rx: watch::Receiver<Option<Instant>>,
|
||||
rate_limit_count_tx: Arc<Mutex<watch::Sender<Option<Instant>>>>,
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
struct OpenAIEmbeddingRequest<'a> {
|
||||
model: &'static str,
|
||||
input: Vec<&'a str>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIEmbeddingResponse {
|
||||
data: Vec<OpenAIEmbedding>,
|
||||
usage: OpenAIEmbeddingUsage,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct OpenAIEmbedding {
|
||||
embedding: Vec<f32>,
|
||||
index: usize,
|
||||
object: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIEmbeddingUsage {
|
||||
prompt_tokens: usize,
|
||||
total_tokens: usize,
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
pub trait EmbeddingProvider: CredentialProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel>;
|
||||
pub trait EmbeddingProvider: Sync + Send {
|
||||
fn is_authenticated(&self) -> bool;
|
||||
async fn embed_batch(&self, spans: Vec<String>) -> Result<Vec<Embedding>>;
|
||||
fn max_tokens_per_batch(&self) -> usize;
|
||||
fn truncate(&self, span: &str) -> (String, usize);
|
||||
fn rate_limit_expiration(&self) -> Option<Instant>;
|
||||
}
|
||||
|
||||
pub struct DummyEmbeddings {}
|
||||
|
||||
#[async_trait]
|
||||
impl EmbeddingProvider for DummyEmbeddings {
|
||||
fn is_authenticated(&self) -> bool {
|
||||
true
|
||||
}
|
||||
fn rate_limit_expiration(&self) -> Option<Instant> {
|
||||
None
|
||||
}
|
||||
async fn embed_batch(&self, spans: Vec<String>) -> Result<Vec<Embedding>> {
|
||||
// 1024 is the OpenAI Embeddings size for ada models.
|
||||
// the model we will likely be starting with.
|
||||
let dummy_vec = Embedding::from(vec![0.32 as f32; 1536]);
|
||||
return Ok(vec![dummy_vec; spans.len()]);
|
||||
}
|
||||
|
||||
fn max_tokens_per_batch(&self) -> usize {
|
||||
OPENAI_INPUT_LIMIT
|
||||
}
|
||||
|
||||
fn truncate(&self, span: &str) -> (String, usize) {
|
||||
let mut tokens = OPENAI_BPE_TOKENIZER.encode_with_special_tokens(span);
|
||||
let token_count = tokens.len();
|
||||
let output = if token_count > OPENAI_INPUT_LIMIT {
|
||||
tokens.truncate(OPENAI_INPUT_LIMIT);
|
||||
let new_input = OPENAI_BPE_TOKENIZER.decode(tokens.clone());
|
||||
new_input.ok().unwrap_or_else(|| span.to_string())
|
||||
} else {
|
||||
span.to_string()
|
||||
};
|
||||
|
||||
(output, tokens.len())
|
||||
}
|
||||
}
|
||||
|
||||
const OPENAI_INPUT_LIMIT: usize = 8190;
|
||||
|
||||
impl OpenAIEmbeddings {
|
||||
pub fn new(client: Arc<dyn HttpClient>, executor: Arc<Background>) -> Self {
|
||||
let (rate_limit_count_tx, rate_limit_count_rx) = watch::channel_with(None);
|
||||
let rate_limit_count_tx = Arc::new(Mutex::new(rate_limit_count_tx));
|
||||
|
||||
OpenAIEmbeddings {
|
||||
client,
|
||||
executor,
|
||||
rate_limit_count_rx,
|
||||
rate_limit_count_tx,
|
||||
}
|
||||
}
|
||||
|
||||
fn resolve_rate_limit(&self) {
|
||||
let reset_time = *self.rate_limit_count_tx.lock().borrow();
|
||||
|
||||
if let Some(reset_time) = reset_time {
|
||||
if Instant::now() >= reset_time {
|
||||
*self.rate_limit_count_tx.lock().borrow_mut() = None
|
||||
}
|
||||
}
|
||||
|
||||
log::trace!(
|
||||
"resolving reset time: {:?}",
|
||||
*self.rate_limit_count_tx.lock().borrow()
|
||||
);
|
||||
}
|
||||
|
||||
fn update_reset_time(&self, reset_time: Instant) {
|
||||
let original_time = *self.rate_limit_count_tx.lock().borrow();
|
||||
|
||||
let updated_time = if let Some(original_time) = original_time {
|
||||
if reset_time < original_time {
|
||||
Some(reset_time)
|
||||
} else {
|
||||
Some(original_time)
|
||||
}
|
||||
} else {
|
||||
Some(reset_time)
|
||||
};
|
||||
|
||||
log::trace!("updating rate limit time: {:?}", updated_time);
|
||||
|
||||
*self.rate_limit_count_tx.lock().borrow_mut() = updated_time;
|
||||
}
|
||||
async fn send_request(
|
||||
&self,
|
||||
api_key: &str,
|
||||
spans: Vec<&str>,
|
||||
request_timeout: u64,
|
||||
) -> Result<Response<AsyncBody>> {
|
||||
let request = Request::post("https://api.openai.com/v1/embeddings")
|
||||
.redirect_policy(isahc::config::RedirectPolicy::Follow)
|
||||
.timeout(Duration::from_secs(request_timeout))
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Authorization", format!("Bearer {}", api_key))
|
||||
.body(
|
||||
serde_json::to_string(&OpenAIEmbeddingRequest {
|
||||
input: spans.clone(),
|
||||
model: "text-embedding-ada-002",
|
||||
})
|
||||
.unwrap()
|
||||
.into(),
|
||||
)?;
|
||||
|
||||
Ok(self.client.send(request).await?)
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl EmbeddingProvider for OpenAIEmbeddings {
|
||||
fn is_authenticated(&self) -> bool {
|
||||
OPENAI_API_KEY.as_ref().is_some()
|
||||
}
|
||||
fn max_tokens_per_batch(&self) -> usize {
|
||||
50000
|
||||
}
|
||||
|
||||
fn rate_limit_expiration(&self) -> Option<Instant> {
|
||||
*self.rate_limit_count_rx.borrow()
|
||||
}
|
||||
fn truncate(&self, span: &str) -> (String, usize) {
|
||||
let mut tokens = OPENAI_BPE_TOKENIZER.encode_with_special_tokens(span);
|
||||
let output = if tokens.len() > OPENAI_INPUT_LIMIT {
|
||||
tokens.truncate(OPENAI_INPUT_LIMIT);
|
||||
OPENAI_BPE_TOKENIZER
|
||||
.decode(tokens.clone())
|
||||
.ok()
|
||||
.unwrap_or_else(|| span.to_string())
|
||||
} else {
|
||||
span.to_string()
|
||||
};
|
||||
|
||||
(output, tokens.len())
|
||||
}
|
||||
|
||||
async fn embed_batch(&self, spans: Vec<String>) -> Result<Vec<Embedding>> {
|
||||
const BACKOFF_SECONDS: [usize; 4] = [3, 5, 15, 45];
|
||||
const MAX_RETRIES: usize = 4;
|
||||
|
||||
let api_key = OPENAI_API_KEY
|
||||
.as_ref()
|
||||
.ok_or_else(|| anyhow!("no api key"))?;
|
||||
|
||||
let mut request_number = 0;
|
||||
let mut rate_limiting = false;
|
||||
let mut request_timeout: u64 = 15;
|
||||
let mut response: Response<AsyncBody>;
|
||||
while request_number < MAX_RETRIES {
|
||||
response = self
|
||||
.send_request(
|
||||
api_key,
|
||||
spans.iter().map(|x| &**x).collect(),
|
||||
request_timeout,
|
||||
)
|
||||
.await?;
|
||||
request_number += 1;
|
||||
|
||||
match response.status() {
|
||||
StatusCode::REQUEST_TIMEOUT => {
|
||||
request_timeout += 5;
|
||||
}
|
||||
StatusCode::OK => {
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
let response: OpenAIEmbeddingResponse = serde_json::from_str(&body)?;
|
||||
|
||||
log::trace!(
|
||||
"openai embedding completed. tokens: {:?}",
|
||||
response.usage.total_tokens
|
||||
);
|
||||
|
||||
// If we complete a request successfully that was previously rate_limited
|
||||
// resolve the rate limit
|
||||
if rate_limiting {
|
||||
self.resolve_rate_limit()
|
||||
}
|
||||
|
||||
return Ok(response
|
||||
.data
|
||||
.into_iter()
|
||||
.map(|embedding| Embedding::from(embedding.embedding))
|
||||
.collect());
|
||||
}
|
||||
StatusCode::TOO_MANY_REQUESTS => {
|
||||
rate_limiting = true;
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
|
||||
let delay_duration = {
|
||||
let delay = Duration::from_secs(BACKOFF_SECONDS[request_number - 1] as u64);
|
||||
if let Some(time_to_reset) =
|
||||
response.headers().get("x-ratelimit-reset-tokens")
|
||||
{
|
||||
if let Ok(time_str) = time_to_reset.to_str() {
|
||||
parse(time_str).unwrap_or(delay)
|
||||
} else {
|
||||
delay
|
||||
}
|
||||
} else {
|
||||
delay
|
||||
}
|
||||
};
|
||||
|
||||
// If we've previously rate limited, increment the duration but not the count
|
||||
let reset_time = Instant::now().add(delay_duration);
|
||||
self.update_reset_time(reset_time);
|
||||
|
||||
log::trace!(
|
||||
"openai rate limiting: waiting {:?} until lifted",
|
||||
&delay_duration
|
||||
);
|
||||
|
||||
self.executor.timer(delay_duration).await;
|
||||
}
|
||||
_ => {
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
return Err(anyhow!(
|
||||
"open ai bad request: {:?} {:?}",
|
||||
&response.status(),
|
||||
body
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(anyhow!("openai max retries"))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
pub enum TruncationDirection {
|
||||
Start,
|
||||
End,
|
||||
}
|
||||
|
||||
pub trait LanguageModel {
|
||||
fn name(&self) -> String;
|
||||
fn count_tokens(&self, content: &str) -> anyhow::Result<usize>;
|
||||
fn truncate(
|
||||
&self,
|
||||
content: &str,
|
||||
length: usize,
|
||||
direction: TruncationDirection,
|
||||
) -> anyhow::Result<String>;
|
||||
fn capacity(&self) -> anyhow::Result<usize>;
|
||||
}
|
||||
@@ -1,330 +0,0 @@
|
||||
use std::cmp::Reverse;
|
||||
use std::ops::Range;
|
||||
use std::sync::Arc;
|
||||
|
||||
use language::BufferSnapshot;
|
||||
use util::ResultExt;
|
||||
|
||||
use crate::models::LanguageModel;
|
||||
use crate::prompts::repository_context::PromptCodeSnippet;
|
||||
|
||||
pub(crate) enum PromptFileType {
|
||||
Text,
|
||||
Code,
|
||||
}
|
||||
|
||||
// TODO: Set this up to manage for defaults well
|
||||
pub struct PromptArguments {
|
||||
pub model: Arc<dyn LanguageModel>,
|
||||
pub user_prompt: Option<String>,
|
||||
pub language_name: Option<String>,
|
||||
pub project_name: Option<String>,
|
||||
pub snippets: Vec<PromptCodeSnippet>,
|
||||
pub reserved_tokens: usize,
|
||||
pub buffer: Option<BufferSnapshot>,
|
||||
pub selected_range: Option<Range<usize>>,
|
||||
}
|
||||
|
||||
impl PromptArguments {
|
||||
pub(crate) fn get_file_type(&self) -> PromptFileType {
|
||||
if self
|
||||
.language_name
|
||||
.as_ref()
|
||||
.and_then(|name| Some(!["Markdown", "Plain Text"].contains(&name.as_str())))
|
||||
.unwrap_or(true)
|
||||
{
|
||||
PromptFileType::Code
|
||||
} else {
|
||||
PromptFileType::Text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub trait PromptTemplate {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)>;
|
||||
}
|
||||
|
||||
#[repr(i8)]
|
||||
#[derive(PartialEq, Eq, Ord)]
|
||||
pub enum PromptPriority {
|
||||
Mandatory, // Ignores truncation
|
||||
Ordered { order: usize }, // Truncates based on priority
|
||||
}
|
||||
|
||||
impl PartialOrd for PromptPriority {
|
||||
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
||||
match (self, other) {
|
||||
(Self::Mandatory, Self::Mandatory) => Some(std::cmp::Ordering::Equal),
|
||||
(Self::Mandatory, Self::Ordered { .. }) => Some(std::cmp::Ordering::Greater),
|
||||
(Self::Ordered { .. }, Self::Mandatory) => Some(std::cmp::Ordering::Less),
|
||||
(Self::Ordered { order: a }, Self::Ordered { order: b }) => b.partial_cmp(a),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct PromptChain {
|
||||
args: PromptArguments,
|
||||
templates: Vec<(PromptPriority, Box<dyn PromptTemplate>)>,
|
||||
}
|
||||
|
||||
impl PromptChain {
|
||||
pub fn new(
|
||||
args: PromptArguments,
|
||||
templates: Vec<(PromptPriority, Box<dyn PromptTemplate>)>,
|
||||
) -> Self {
|
||||
PromptChain { args, templates }
|
||||
}
|
||||
|
||||
pub fn generate(&self, truncate: bool) -> anyhow::Result<(String, usize)> {
|
||||
// Argsort based on Prompt Priority
|
||||
let seperator = "\n";
|
||||
let seperator_tokens = self.args.model.count_tokens(seperator)?;
|
||||
let mut sorted_indices = (0..self.templates.len()).collect::<Vec<_>>();
|
||||
sorted_indices.sort_by_key(|&i| Reverse(&self.templates[i].0));
|
||||
|
||||
// If Truncate
|
||||
let mut tokens_outstanding = if truncate {
|
||||
Some(self.args.model.capacity()? - self.args.reserved_tokens)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let mut prompts = vec!["".to_string(); sorted_indices.len()];
|
||||
for idx in sorted_indices {
|
||||
let (_, template) = &self.templates[idx];
|
||||
|
||||
if let Some((template_prompt, prompt_token_count)) =
|
||||
template.generate(&self.args, tokens_outstanding).log_err()
|
||||
{
|
||||
if template_prompt != "" {
|
||||
prompts[idx] = template_prompt;
|
||||
|
||||
if let Some(remaining_tokens) = tokens_outstanding {
|
||||
let new_tokens = prompt_token_count + seperator_tokens;
|
||||
tokens_outstanding = if remaining_tokens > new_tokens {
|
||||
Some(remaining_tokens - new_tokens)
|
||||
} else {
|
||||
Some(0)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prompts.retain(|x| x != "");
|
||||
|
||||
let full_prompt = prompts.join(seperator);
|
||||
let total_token_count = self.args.model.count_tokens(&full_prompt)?;
|
||||
anyhow::Ok((prompts.join(seperator), total_token_count))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub(crate) mod tests {
|
||||
use crate::models::TruncationDirection;
|
||||
use crate::test::FakeLanguageModel;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
pub fn test_prompt_chain() {
|
||||
struct TestPromptTemplate {}
|
||||
impl PromptTemplate for TestPromptTemplate {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)> {
|
||||
let mut content = "This is a test prompt template".to_string();
|
||||
|
||||
let mut token_count = args.model.count_tokens(&content)?;
|
||||
if let Some(max_token_length) = max_token_length {
|
||||
if token_count > max_token_length {
|
||||
content = args.model.truncate(
|
||||
&content,
|
||||
max_token_length,
|
||||
TruncationDirection::End,
|
||||
)?;
|
||||
token_count = max_token_length;
|
||||
}
|
||||
}
|
||||
|
||||
anyhow::Ok((content, token_count))
|
||||
}
|
||||
}
|
||||
|
||||
struct TestLowPriorityTemplate {}
|
||||
impl PromptTemplate for TestLowPriorityTemplate {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)> {
|
||||
let mut content = "This is a low priority test prompt template".to_string();
|
||||
|
||||
let mut token_count = args.model.count_tokens(&content)?;
|
||||
if let Some(max_token_length) = max_token_length {
|
||||
if token_count > max_token_length {
|
||||
content = args.model.truncate(
|
||||
&content,
|
||||
max_token_length,
|
||||
TruncationDirection::End,
|
||||
)?;
|
||||
token_count = max_token_length;
|
||||
}
|
||||
}
|
||||
|
||||
anyhow::Ok((content, token_count))
|
||||
}
|
||||
}
|
||||
|
||||
let model: Arc<dyn LanguageModel> = Arc::new(FakeLanguageModel { capacity: 100 });
|
||||
let args = PromptArguments {
|
||||
model: model.clone(),
|
||||
language_name: None,
|
||||
project_name: None,
|
||||
snippets: Vec::new(),
|
||||
reserved_tokens: 0,
|
||||
buffer: None,
|
||||
selected_range: None,
|
||||
user_prompt: None,
|
||||
};
|
||||
|
||||
let templates: Vec<(PromptPriority, Box<dyn PromptTemplate>)> = vec![
|
||||
(
|
||||
PromptPriority::Ordered { order: 0 },
|
||||
Box::new(TestPromptTemplate {}),
|
||||
),
|
||||
(
|
||||
PromptPriority::Ordered { order: 1 },
|
||||
Box::new(TestLowPriorityTemplate {}),
|
||||
),
|
||||
];
|
||||
let chain = PromptChain::new(args, templates);
|
||||
|
||||
let (prompt, token_count) = chain.generate(false).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
prompt,
|
||||
"This is a test prompt template\nThis is a low priority test prompt template"
|
||||
.to_string()
|
||||
);
|
||||
|
||||
assert_eq!(model.count_tokens(&prompt).unwrap(), token_count);
|
||||
|
||||
// Testing with Truncation Off
|
||||
// Should ignore capacity and return all prompts
|
||||
let model: Arc<dyn LanguageModel> = Arc::new(FakeLanguageModel { capacity: 20 });
|
||||
let args = PromptArguments {
|
||||
model: model.clone(),
|
||||
language_name: None,
|
||||
project_name: None,
|
||||
snippets: Vec::new(),
|
||||
reserved_tokens: 0,
|
||||
buffer: None,
|
||||
selected_range: None,
|
||||
user_prompt: None,
|
||||
};
|
||||
|
||||
let templates: Vec<(PromptPriority, Box<dyn PromptTemplate>)> = vec![
|
||||
(
|
||||
PromptPriority::Ordered { order: 0 },
|
||||
Box::new(TestPromptTemplate {}),
|
||||
),
|
||||
(
|
||||
PromptPriority::Ordered { order: 1 },
|
||||
Box::new(TestLowPriorityTemplate {}),
|
||||
),
|
||||
];
|
||||
let chain = PromptChain::new(args, templates);
|
||||
|
||||
let (prompt, token_count) = chain.generate(false).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
prompt,
|
||||
"This is a test prompt template\nThis is a low priority test prompt template"
|
||||
.to_string()
|
||||
);
|
||||
|
||||
assert_eq!(model.count_tokens(&prompt).unwrap(), token_count);
|
||||
|
||||
// Testing with Truncation Off
|
||||
// Should ignore capacity and return all prompts
|
||||
let capacity = 20;
|
||||
let model: Arc<dyn LanguageModel> = Arc::new(FakeLanguageModel { capacity });
|
||||
let args = PromptArguments {
|
||||
model: model.clone(),
|
||||
language_name: None,
|
||||
project_name: None,
|
||||
snippets: Vec::new(),
|
||||
reserved_tokens: 0,
|
||||
buffer: None,
|
||||
selected_range: None,
|
||||
user_prompt: None,
|
||||
};
|
||||
|
||||
let templates: Vec<(PromptPriority, Box<dyn PromptTemplate>)> = vec![
|
||||
(
|
||||
PromptPriority::Ordered { order: 0 },
|
||||
Box::new(TestPromptTemplate {}),
|
||||
),
|
||||
(
|
||||
PromptPriority::Ordered { order: 1 },
|
||||
Box::new(TestLowPriorityTemplate {}),
|
||||
),
|
||||
(
|
||||
PromptPriority::Ordered { order: 2 },
|
||||
Box::new(TestLowPriorityTemplate {}),
|
||||
),
|
||||
];
|
||||
let chain = PromptChain::new(args, templates);
|
||||
|
||||
let (prompt, token_count) = chain.generate(true).unwrap();
|
||||
|
||||
assert_eq!(prompt, "This is a test promp".to_string());
|
||||
assert_eq!(token_count, capacity);
|
||||
|
||||
// Change Ordering of Prompts Based on Priority
|
||||
let capacity = 120;
|
||||
let reserved_tokens = 10;
|
||||
let model: Arc<dyn LanguageModel> = Arc::new(FakeLanguageModel { capacity });
|
||||
let args = PromptArguments {
|
||||
model: model.clone(),
|
||||
language_name: None,
|
||||
project_name: None,
|
||||
snippets: Vec::new(),
|
||||
reserved_tokens,
|
||||
buffer: None,
|
||||
selected_range: None,
|
||||
user_prompt: None,
|
||||
};
|
||||
let templates: Vec<(PromptPriority, Box<dyn PromptTemplate>)> = vec![
|
||||
(
|
||||
PromptPriority::Mandatory,
|
||||
Box::new(TestLowPriorityTemplate {}),
|
||||
),
|
||||
(
|
||||
PromptPriority::Ordered { order: 0 },
|
||||
Box::new(TestPromptTemplate {}),
|
||||
),
|
||||
(
|
||||
PromptPriority::Ordered { order: 1 },
|
||||
Box::new(TestLowPriorityTemplate {}),
|
||||
),
|
||||
];
|
||||
let chain = PromptChain::new(args, templates);
|
||||
|
||||
let (prompt, token_count) = chain.generate(true).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
prompt,
|
||||
"This is a low priority test prompt template\nThis is a test prompt template\nThis is a low priority test prompt "
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!(token_count, capacity - reserved_tokens);
|
||||
}
|
||||
}
|
||||
@@ -1,164 +0,0 @@
|
||||
use anyhow::anyhow;
|
||||
use language::BufferSnapshot;
|
||||
use language::ToOffset;
|
||||
|
||||
use crate::models::LanguageModel;
|
||||
use crate::models::TruncationDirection;
|
||||
use crate::prompts::base::PromptArguments;
|
||||
use crate::prompts::base::PromptTemplate;
|
||||
use std::fmt::Write;
|
||||
use std::ops::Range;
|
||||
use std::sync::Arc;
|
||||
|
||||
fn retrieve_context(
|
||||
buffer: &BufferSnapshot,
|
||||
selected_range: &Option<Range<usize>>,
|
||||
model: Arc<dyn LanguageModel>,
|
||||
max_token_count: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize, bool)> {
|
||||
let mut prompt = String::new();
|
||||
let mut truncated = false;
|
||||
if let Some(selected_range) = selected_range {
|
||||
let start = selected_range.start.to_offset(buffer);
|
||||
let end = selected_range.end.to_offset(buffer);
|
||||
|
||||
let start_window = buffer.text_for_range(0..start).collect::<String>();
|
||||
|
||||
let mut selected_window = String::new();
|
||||
if start == end {
|
||||
write!(selected_window, "<|START|>").unwrap();
|
||||
} else {
|
||||
write!(selected_window, "<|START|").unwrap();
|
||||
}
|
||||
|
||||
write!(
|
||||
selected_window,
|
||||
"{}",
|
||||
buffer.text_for_range(start..end).collect::<String>()
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
if start != end {
|
||||
write!(selected_window, "|END|>").unwrap();
|
||||
}
|
||||
|
||||
let end_window = buffer.text_for_range(end..buffer.len()).collect::<String>();
|
||||
|
||||
if let Some(max_token_count) = max_token_count {
|
||||
let selected_tokens = model.count_tokens(&selected_window)?;
|
||||
if selected_tokens > max_token_count {
|
||||
return Err(anyhow!(
|
||||
"selected range is greater than model context window, truncation not possible"
|
||||
));
|
||||
};
|
||||
|
||||
let mut remaining_tokens = max_token_count - selected_tokens;
|
||||
let start_window_tokens = model.count_tokens(&start_window)?;
|
||||
let end_window_tokens = model.count_tokens(&end_window)?;
|
||||
let outside_tokens = start_window_tokens + end_window_tokens;
|
||||
if outside_tokens > remaining_tokens {
|
||||
let (start_goal_tokens, end_goal_tokens) =
|
||||
if start_window_tokens < end_window_tokens {
|
||||
let start_goal_tokens = (remaining_tokens / 2).min(start_window_tokens);
|
||||
remaining_tokens -= start_goal_tokens;
|
||||
let end_goal_tokens = remaining_tokens.min(end_window_tokens);
|
||||
(start_goal_tokens, end_goal_tokens)
|
||||
} else {
|
||||
let end_goal_tokens = (remaining_tokens / 2).min(end_window_tokens);
|
||||
remaining_tokens -= end_goal_tokens;
|
||||
let start_goal_tokens = remaining_tokens.min(start_window_tokens);
|
||||
(start_goal_tokens, end_goal_tokens)
|
||||
};
|
||||
|
||||
let truncated_start_window =
|
||||
model.truncate(&start_window, start_goal_tokens, TruncationDirection::Start)?;
|
||||
let truncated_end_window =
|
||||
model.truncate(&end_window, end_goal_tokens, TruncationDirection::End)?;
|
||||
writeln!(
|
||||
prompt,
|
||||
"{truncated_start_window}{selected_window}{truncated_end_window}"
|
||||
)
|
||||
.unwrap();
|
||||
truncated = true;
|
||||
} else {
|
||||
writeln!(prompt, "{start_window}{selected_window}{end_window}").unwrap();
|
||||
}
|
||||
} else {
|
||||
// If we dont have a selected range, include entire file.
|
||||
writeln!(prompt, "{}", &buffer.text()).unwrap();
|
||||
|
||||
// Dumb truncation strategy
|
||||
if let Some(max_token_count) = max_token_count {
|
||||
if model.count_tokens(&prompt)? > max_token_count {
|
||||
truncated = true;
|
||||
prompt = model.truncate(&prompt, max_token_count, TruncationDirection::End)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let token_count = model.count_tokens(&prompt)?;
|
||||
anyhow::Ok((prompt, token_count, truncated))
|
||||
}
|
||||
|
||||
pub struct FileContext {}
|
||||
|
||||
impl PromptTemplate for FileContext {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)> {
|
||||
if let Some(buffer) = &args.buffer {
|
||||
let mut prompt = String::new();
|
||||
// Add Initial Preamble
|
||||
// TODO: Do we want to add the path in here?
|
||||
writeln!(
|
||||
prompt,
|
||||
"The file you are currently working on has the following content:"
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let language_name = args
|
||||
.language_name
|
||||
.clone()
|
||||
.unwrap_or("".to_string())
|
||||
.to_lowercase();
|
||||
|
||||
let (context, _, truncated) = retrieve_context(
|
||||
buffer,
|
||||
&args.selected_range,
|
||||
args.model.clone(),
|
||||
max_token_length,
|
||||
)?;
|
||||
writeln!(prompt, "```{language_name}\n{context}\n```").unwrap();
|
||||
|
||||
if truncated {
|
||||
writeln!(prompt, "Note the content has been truncated and only represents a portion of the file.").unwrap();
|
||||
}
|
||||
|
||||
if let Some(selected_range) = &args.selected_range {
|
||||
let start = selected_range.start.to_offset(buffer);
|
||||
let end = selected_range.end.to_offset(buffer);
|
||||
|
||||
if start == end {
|
||||
writeln!(prompt, "In particular, the user's cursor is currently on the '<|START|>' span in the above content, with no text selected.").unwrap();
|
||||
} else {
|
||||
writeln!(prompt, "In particular, the user has selected a section of the text between the '<|START|' and '|END|>' spans.").unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
// Really dumb truncation strategy
|
||||
if let Some(max_tokens) = max_token_length {
|
||||
prompt = args
|
||||
.model
|
||||
.truncate(&prompt, max_tokens, TruncationDirection::End)?;
|
||||
}
|
||||
|
||||
let token_count = args.model.count_tokens(&prompt)?;
|
||||
anyhow::Ok((prompt, token_count))
|
||||
} else {
|
||||
Err(anyhow!("no buffer provided to retrieve file context from"))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
use crate::prompts::base::{PromptArguments, PromptFileType, PromptTemplate};
|
||||
use anyhow::anyhow;
|
||||
use std::fmt::Write;
|
||||
|
||||
pub fn capitalize(s: &str) -> String {
|
||||
let mut c = s.chars();
|
||||
match c.next() {
|
||||
None => String::new(),
|
||||
Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
|
||||
}
|
||||
}
|
||||
|
||||
pub struct GenerateInlineContent {}
|
||||
|
||||
impl PromptTemplate for GenerateInlineContent {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)> {
|
||||
let Some(user_prompt) = &args.user_prompt else {
|
||||
return Err(anyhow!("user prompt not provided"));
|
||||
};
|
||||
|
||||
let file_type = args.get_file_type();
|
||||
let content_type = match &file_type {
|
||||
PromptFileType::Code => "code",
|
||||
PromptFileType::Text => "text",
|
||||
};
|
||||
|
||||
let mut prompt = String::new();
|
||||
|
||||
if let Some(selected_range) = &args.selected_range {
|
||||
if selected_range.start == selected_range.end {
|
||||
writeln!(
|
||||
prompt,
|
||||
"Assume the cursor is located where the `<|START|>` span is."
|
||||
)
|
||||
.unwrap();
|
||||
writeln!(
|
||||
prompt,
|
||||
"{} can't be replaced, so assume your answer will be inserted at the cursor.",
|
||||
capitalize(content_type)
|
||||
)
|
||||
.unwrap();
|
||||
writeln!(
|
||||
prompt,
|
||||
"Generate {content_type} based on the users prompt: {user_prompt}",
|
||||
)
|
||||
.unwrap();
|
||||
} else {
|
||||
writeln!(prompt, "Modify the user's selected {content_type} based upon the users prompt: '{user_prompt}'").unwrap();
|
||||
writeln!(prompt, "You must reply with only the adjusted {content_type} (within the '<|START|' and '|END|>' spans) not the entire file.").unwrap();
|
||||
writeln!(prompt, "Double check that you only return code and not the '<|START|' and '|END|'> spans").unwrap();
|
||||
}
|
||||
} else {
|
||||
writeln!(
|
||||
prompt,
|
||||
"Generate {content_type} based on the users prompt: {user_prompt}"
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
if let Some(language_name) = &args.language_name {
|
||||
writeln!(
|
||||
prompt,
|
||||
"Your answer MUST always and only be valid {}.",
|
||||
language_name
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
writeln!(prompt, "Never make remarks about the output.").unwrap();
|
||||
writeln!(
|
||||
prompt,
|
||||
"Do not return anything else, except the generated {content_type}."
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
match file_type {
|
||||
PromptFileType::Code => {
|
||||
// writeln!(prompt, "Always wrap your code in a Markdown block.").unwrap();
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
// Really dumb truncation strategy
|
||||
if let Some(max_tokens) = max_token_length {
|
||||
prompt = args.model.truncate(
|
||||
&prompt,
|
||||
max_tokens,
|
||||
crate::models::TruncationDirection::End,
|
||||
)?;
|
||||
}
|
||||
|
||||
let token_count = args.model.count_tokens(&prompt)?;
|
||||
|
||||
anyhow::Ok((prompt, token_count))
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
pub mod base;
|
||||
pub mod file_context;
|
||||
pub mod generate;
|
||||
pub mod preamble;
|
||||
pub mod repository_context;
|
||||
@@ -1,52 +0,0 @@
|
||||
use crate::prompts::base::{PromptArguments, PromptFileType, PromptTemplate};
|
||||
use std::fmt::Write;
|
||||
|
||||
pub struct EngineerPreamble {}
|
||||
|
||||
impl PromptTemplate for EngineerPreamble {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)> {
|
||||
let mut prompts = Vec::new();
|
||||
|
||||
match args.get_file_type() {
|
||||
PromptFileType::Code => {
|
||||
prompts.push(format!(
|
||||
"You are an expert {}engineer.",
|
||||
args.language_name.clone().unwrap_or("".to_string()) + " "
|
||||
));
|
||||
}
|
||||
PromptFileType::Text => {
|
||||
prompts.push("You are an expert engineer.".to_string());
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(project_name) = args.project_name.clone() {
|
||||
prompts.push(format!(
|
||||
"You are currently working inside the '{project_name}' project in code editor Zed."
|
||||
));
|
||||
}
|
||||
|
||||
if let Some(mut remaining_tokens) = max_token_length {
|
||||
let mut prompt = String::new();
|
||||
let mut total_count = 0;
|
||||
for prompt_piece in prompts {
|
||||
let prompt_token_count =
|
||||
args.model.count_tokens(&prompt_piece)? + args.model.count_tokens("\n")?;
|
||||
if remaining_tokens > prompt_token_count {
|
||||
writeln!(prompt, "{prompt_piece}").unwrap();
|
||||
remaining_tokens -= prompt_token_count;
|
||||
total_count += prompt_token_count;
|
||||
}
|
||||
}
|
||||
|
||||
anyhow::Ok((prompt, total_count))
|
||||
} else {
|
||||
let prompt = prompts.join("\n");
|
||||
let token_count = args.model.count_tokens(&prompt)?;
|
||||
anyhow::Ok((prompt, token_count))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
use crate::prompts::base::{PromptArguments, PromptTemplate};
|
||||
use std::fmt::Write;
|
||||
use std::{ops::Range, path::PathBuf};
|
||||
|
||||
use gpui::{AsyncAppContext, ModelHandle};
|
||||
use language::{Anchor, Buffer};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct PromptCodeSnippet {
|
||||
path: Option<PathBuf>,
|
||||
language_name: Option<String>,
|
||||
content: String,
|
||||
}
|
||||
|
||||
impl PromptCodeSnippet {
|
||||
pub fn new(buffer: ModelHandle<Buffer>, range: Range<Anchor>, cx: &AsyncAppContext) -> Self {
|
||||
let (content, language_name, file_path) = buffer.read_with(cx, |buffer, _| {
|
||||
let snapshot = buffer.snapshot();
|
||||
let content = snapshot.text_for_range(range.clone()).collect::<String>();
|
||||
|
||||
let language_name = buffer
|
||||
.language()
|
||||
.and_then(|language| Some(language.name().to_string().to_lowercase()));
|
||||
|
||||
let file_path = buffer
|
||||
.file()
|
||||
.and_then(|file| Some(file.path().to_path_buf()));
|
||||
|
||||
(content, language_name, file_path)
|
||||
});
|
||||
|
||||
PromptCodeSnippet {
|
||||
path: file_path,
|
||||
language_name,
|
||||
content,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ToString for PromptCodeSnippet {
|
||||
fn to_string(&self) -> String {
|
||||
let path = self
|
||||
.path
|
||||
.as_ref()
|
||||
.and_then(|path| Some(path.to_string_lossy().to_string()))
|
||||
.unwrap_or("".to_string());
|
||||
let language_name = self.language_name.clone().unwrap_or("".to_string());
|
||||
let content = self.content.clone();
|
||||
|
||||
format!("The below code snippet may be relevant from file: {path}\n```{language_name}\n{content}\n```")
|
||||
}
|
||||
}
|
||||
|
||||
pub struct RepositoryContext {}
|
||||
|
||||
impl PromptTemplate for RepositoryContext {
|
||||
fn generate(
|
||||
&self,
|
||||
args: &PromptArguments,
|
||||
max_token_length: Option<usize>,
|
||||
) -> anyhow::Result<(String, usize)> {
|
||||
const MAXIMUM_SNIPPET_TOKEN_COUNT: usize = 500;
|
||||
let template = "You are working inside a large repository, here are a few code snippets that may be useful.";
|
||||
let mut prompt = String::new();
|
||||
|
||||
let mut remaining_tokens = max_token_length.clone();
|
||||
let seperator_token_length = args.model.count_tokens("\n")?;
|
||||
for snippet in &args.snippets {
|
||||
let mut snippet_prompt = template.to_string();
|
||||
let content = snippet.to_string();
|
||||
writeln!(snippet_prompt, "{content}").unwrap();
|
||||
|
||||
let token_count = args.model.count_tokens(&snippet_prompt)?;
|
||||
if token_count <= MAXIMUM_SNIPPET_TOKEN_COUNT {
|
||||
if let Some(tokens_left) = remaining_tokens {
|
||||
if tokens_left >= token_count {
|
||||
writeln!(prompt, "{snippet_prompt}").unwrap();
|
||||
remaining_tokens = if tokens_left >= (token_count + seperator_token_length)
|
||||
{
|
||||
Some(tokens_left - token_count - seperator_token_length)
|
||||
} else {
|
||||
Some(0)
|
||||
};
|
||||
}
|
||||
} else {
|
||||
writeln!(prompt, "{snippet_prompt}").unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let total_token_count = args.model.count_tokens(&prompt)?;
|
||||
anyhow::Ok((prompt, total_token_count))
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
pub mod open_ai;
|
||||
@@ -1,298 +0,0 @@
|
||||
use anyhow::{anyhow, Result};
|
||||
use futures::{
|
||||
future::BoxFuture, io::BufReader, stream::BoxStream, AsyncBufReadExt, AsyncReadExt, FutureExt,
|
||||
Stream, StreamExt,
|
||||
};
|
||||
use gpui::{executor::Background, AppContext};
|
||||
use isahc::{http::StatusCode, Request, RequestExt};
|
||||
use parking_lot::RwLock;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{
|
||||
env,
|
||||
fmt::{self, Display},
|
||||
io,
|
||||
sync::Arc,
|
||||
};
|
||||
use util::ResultExt;
|
||||
|
||||
use crate::{
|
||||
auth::{CredentialProvider, ProviderCredential},
|
||||
completion::{CompletionProvider, CompletionRequest},
|
||||
models::LanguageModel,
|
||||
};
|
||||
|
||||
use crate::providers::open_ai::{OpenAILanguageModel, OPENAI_API_URL};
|
||||
|
||||
#[derive(Clone, Copy, Serialize, Deserialize, Debug, Eq, PartialEq)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum Role {
|
||||
User,
|
||||
Assistant,
|
||||
System,
|
||||
}
|
||||
|
||||
impl Role {
|
||||
pub fn cycle(&mut self) {
|
||||
*self = match self {
|
||||
Role::User => Role::Assistant,
|
||||
Role::Assistant => Role::System,
|
||||
Role::System => Role::User,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for Role {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Role::User => write!(f, "User"),
|
||||
Role::Assistant => write!(f, "Assistant"),
|
||||
Role::System => write!(f, "System"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
|
||||
pub struct RequestMessage {
|
||||
pub role: Role,
|
||||
pub content: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Serialize)]
|
||||
pub struct OpenAIRequest {
|
||||
pub model: String,
|
||||
pub messages: Vec<RequestMessage>,
|
||||
pub stream: bool,
|
||||
pub stop: Vec<String>,
|
||||
pub temperature: f32,
|
||||
}
|
||||
|
||||
impl CompletionRequest for OpenAIRequest {
|
||||
fn data(&self) -> serde_json::Result<String> {
|
||||
serde_json::to_string(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
|
||||
pub struct ResponseMessage {
|
||||
pub role: Option<Role>,
|
||||
pub content: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct OpenAIUsage {
|
||||
pub prompt_tokens: u32,
|
||||
pub completion_tokens: u32,
|
||||
pub total_tokens: u32,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct ChatChoiceDelta {
|
||||
pub index: u32,
|
||||
pub delta: ResponseMessage,
|
||||
pub finish_reason: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct OpenAIResponseStreamEvent {
|
||||
pub id: Option<String>,
|
||||
pub object: String,
|
||||
pub created: u32,
|
||||
pub model: String,
|
||||
pub choices: Vec<ChatChoiceDelta>,
|
||||
pub usage: Option<OpenAIUsage>,
|
||||
}
|
||||
|
||||
pub async fn stream_completion(
|
||||
credential: ProviderCredential,
|
||||
executor: Arc<Background>,
|
||||
request: Box<dyn CompletionRequest>,
|
||||
) -> Result<impl Stream<Item = Result<OpenAIResponseStreamEvent>>> {
|
||||
let api_key = match credential {
|
||||
ProviderCredential::Credentials { api_key } => api_key,
|
||||
_ => {
|
||||
return Err(anyhow!("no credentials provider for completion"));
|
||||
}
|
||||
};
|
||||
|
||||
let (tx, rx) = futures::channel::mpsc::unbounded::<Result<OpenAIResponseStreamEvent>>();
|
||||
|
||||
let json_data = request.data()?;
|
||||
let mut response = Request::post(format!("{OPENAI_API_URL}/chat/completions"))
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Authorization", format!("Bearer {}", api_key))
|
||||
.body(json_data)?
|
||||
.send_async()
|
||||
.await?;
|
||||
|
||||
let status = response.status();
|
||||
if status == StatusCode::OK {
|
||||
executor
|
||||
.spawn(async move {
|
||||
let mut lines = BufReader::new(response.body_mut()).lines();
|
||||
|
||||
fn parse_line(
|
||||
line: Result<String, io::Error>,
|
||||
) -> Result<Option<OpenAIResponseStreamEvent>> {
|
||||
if let Some(data) = line?.strip_prefix("data: ") {
|
||||
let event = serde_json::from_str(&data)?;
|
||||
Ok(Some(event))
|
||||
} else {
|
||||
Ok(None)
|
||||
}
|
||||
}
|
||||
|
||||
while let Some(line) = lines.next().await {
|
||||
if let Some(event) = parse_line(line).transpose() {
|
||||
let done = event.as_ref().map_or(false, |event| {
|
||||
event
|
||||
.choices
|
||||
.last()
|
||||
.map_or(false, |choice| choice.finish_reason.is_some())
|
||||
});
|
||||
if tx.unbounded_send(event).is_err() {
|
||||
break;
|
||||
}
|
||||
|
||||
if done {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
anyhow::Ok(())
|
||||
})
|
||||
.detach();
|
||||
|
||||
Ok(rx)
|
||||
} else {
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIResponse {
|
||||
error: OpenAIError,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIError {
|
||||
message: String,
|
||||
}
|
||||
|
||||
match serde_json::from_str::<OpenAIResponse>(&body) {
|
||||
Ok(response) if !response.error.message.is_empty() => Err(anyhow!(
|
||||
"Failed to connect to OpenAI API: {}",
|
||||
response.error.message,
|
||||
)),
|
||||
|
||||
_ => Err(anyhow!(
|
||||
"Failed to connect to OpenAI API: {} {}",
|
||||
response.status(),
|
||||
body,
|
||||
)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct OpenAICompletionProvider {
|
||||
model: OpenAILanguageModel,
|
||||
credential: Arc<RwLock<ProviderCredential>>,
|
||||
executor: Arc<Background>,
|
||||
}
|
||||
|
||||
impl OpenAICompletionProvider {
|
||||
pub fn new(model_name: &str, executor: Arc<Background>) -> Self {
|
||||
let model = OpenAILanguageModel::load(model_name);
|
||||
let credential = Arc::new(RwLock::new(ProviderCredential::NoCredentials));
|
||||
Self {
|
||||
model,
|
||||
credential,
|
||||
executor,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl CredentialProvider for OpenAICompletionProvider {
|
||||
fn has_credentials(&self) -> bool {
|
||||
match *self.credential.read() {
|
||||
ProviderCredential::Credentials { .. } => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
fn retrieve_credentials(&self, cx: &AppContext) -> ProviderCredential {
|
||||
let mut credential = self.credential.write();
|
||||
match *credential {
|
||||
ProviderCredential::Credentials { .. } => {
|
||||
return credential.clone();
|
||||
}
|
||||
_ => {
|
||||
if let Ok(api_key) = env::var("OPENAI_API_KEY") {
|
||||
*credential = ProviderCredential::Credentials { api_key };
|
||||
} else if let Some((_, api_key)) = cx
|
||||
.platform()
|
||||
.read_credentials(OPENAI_API_URL)
|
||||
.log_err()
|
||||
.flatten()
|
||||
{
|
||||
if let Some(api_key) = String::from_utf8(api_key).log_err() {
|
||||
*credential = ProviderCredential::Credentials { api_key };
|
||||
}
|
||||
} else {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
credential.clone()
|
||||
}
|
||||
|
||||
fn save_credentials(&self, cx: &AppContext, credential: ProviderCredential) {
|
||||
match credential.clone() {
|
||||
ProviderCredential::Credentials { api_key } => {
|
||||
cx.platform()
|
||||
.write_credentials(OPENAI_API_URL, "Bearer", api_key.as_bytes())
|
||||
.log_err();
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
*self.credential.write() = credential;
|
||||
}
|
||||
fn delete_credentials(&self, cx: &AppContext) {
|
||||
cx.platform().delete_credentials(OPENAI_API_URL).log_err();
|
||||
*self.credential.write() = ProviderCredential::NoCredentials;
|
||||
}
|
||||
}
|
||||
|
||||
impl CompletionProvider for OpenAICompletionProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel> {
|
||||
let model: Box<dyn LanguageModel> = Box::new(self.model.clone());
|
||||
model
|
||||
}
|
||||
fn complete(
|
||||
&self,
|
||||
prompt: Box<dyn CompletionRequest>,
|
||||
) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>> {
|
||||
// Currently the CompletionRequest for OpenAI, includes a 'model' parameter
|
||||
// This means that the model is determined by the CompletionRequest and not the CompletionProvider,
|
||||
// which is currently model based, due to the langauge model.
|
||||
// At some point in the future we should rectify this.
|
||||
let credential = self.credential.read().clone();
|
||||
let request = stream_completion(credential, self.executor.clone(), prompt);
|
||||
async move {
|
||||
let response = request.await?;
|
||||
let stream = response
|
||||
.filter_map(|response| async move {
|
||||
match response {
|
||||
Ok(mut response) => Some(Ok(response.choices.pop()?.delta.content?)),
|
||||
Err(error) => Some(Err(error)),
|
||||
}
|
||||
})
|
||||
.boxed();
|
||||
Ok(stream)
|
||||
}
|
||||
.boxed()
|
||||
}
|
||||
fn box_clone(&self) -> Box<dyn CompletionProvider> {
|
||||
Box::new((*self).clone())
|
||||
}
|
||||
}
|
||||
@@ -1,306 +0,0 @@
|
||||
use anyhow::{anyhow, Result};
|
||||
use async_trait::async_trait;
|
||||
use futures::AsyncReadExt;
|
||||
use gpui::executor::Background;
|
||||
use gpui::{serde_json, AppContext};
|
||||
use isahc::http::StatusCode;
|
||||
use isahc::prelude::Configurable;
|
||||
use isahc::{AsyncBody, Response};
|
||||
use lazy_static::lazy_static;
|
||||
use parking_lot::{Mutex, RwLock};
|
||||
use parse_duration::parse;
|
||||
use postage::watch;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::env;
|
||||
use std::ops::Add;
|
||||
use std::sync::Arc;
|
||||
use std::time::{Duration, Instant};
|
||||
use tiktoken_rs::{cl100k_base, CoreBPE};
|
||||
use util::http::{HttpClient, Request};
|
||||
use util::ResultExt;
|
||||
|
||||
use crate::auth::{CredentialProvider, ProviderCredential};
|
||||
use crate::embedding::{Embedding, EmbeddingProvider};
|
||||
use crate::models::LanguageModel;
|
||||
use crate::providers::open_ai::OpenAILanguageModel;
|
||||
|
||||
use crate::providers::open_ai::OPENAI_API_URL;
|
||||
|
||||
lazy_static! {
|
||||
static ref OPENAI_BPE_TOKENIZER: CoreBPE = cl100k_base().unwrap();
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct OpenAIEmbeddingProvider {
|
||||
model: OpenAILanguageModel,
|
||||
credential: Arc<RwLock<ProviderCredential>>,
|
||||
pub client: Arc<dyn HttpClient>,
|
||||
pub executor: Arc<Background>,
|
||||
rate_limit_count_rx: watch::Receiver<Option<Instant>>,
|
||||
rate_limit_count_tx: Arc<Mutex<watch::Sender<Option<Instant>>>>,
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
struct OpenAIEmbeddingRequest<'a> {
|
||||
model: &'static str,
|
||||
input: Vec<&'a str>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIEmbeddingResponse {
|
||||
data: Vec<OpenAIEmbedding>,
|
||||
usage: OpenAIEmbeddingUsage,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct OpenAIEmbedding {
|
||||
embedding: Vec<f32>,
|
||||
index: usize,
|
||||
object: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct OpenAIEmbeddingUsage {
|
||||
prompt_tokens: usize,
|
||||
total_tokens: usize,
|
||||
}
|
||||
|
||||
impl OpenAIEmbeddingProvider {
|
||||
pub fn new(client: Arc<dyn HttpClient>, executor: Arc<Background>) -> Self {
|
||||
let (rate_limit_count_tx, rate_limit_count_rx) = watch::channel_with(None);
|
||||
let rate_limit_count_tx = Arc::new(Mutex::new(rate_limit_count_tx));
|
||||
|
||||
let model = OpenAILanguageModel::load("text-embedding-ada-002");
|
||||
let credential = Arc::new(RwLock::new(ProviderCredential::NoCredentials));
|
||||
|
||||
OpenAIEmbeddingProvider {
|
||||
model,
|
||||
credential,
|
||||
client,
|
||||
executor,
|
||||
rate_limit_count_rx,
|
||||
rate_limit_count_tx,
|
||||
}
|
||||
}
|
||||
|
||||
fn get_api_key(&self) -> Result<String> {
|
||||
match self.credential.read().clone() {
|
||||
ProviderCredential::Credentials { api_key } => Ok(api_key),
|
||||
_ => Err(anyhow!("api credentials not provided")),
|
||||
}
|
||||
}
|
||||
|
||||
fn resolve_rate_limit(&self) {
|
||||
let reset_time = *self.rate_limit_count_tx.lock().borrow();
|
||||
|
||||
if let Some(reset_time) = reset_time {
|
||||
if Instant::now() >= reset_time {
|
||||
*self.rate_limit_count_tx.lock().borrow_mut() = None
|
||||
}
|
||||
}
|
||||
|
||||
log::trace!(
|
||||
"resolving reset time: {:?}",
|
||||
*self.rate_limit_count_tx.lock().borrow()
|
||||
);
|
||||
}
|
||||
|
||||
fn update_reset_time(&self, reset_time: Instant) {
|
||||
let original_time = *self.rate_limit_count_tx.lock().borrow();
|
||||
|
||||
let updated_time = if let Some(original_time) = original_time {
|
||||
if reset_time < original_time {
|
||||
Some(reset_time)
|
||||
} else {
|
||||
Some(original_time)
|
||||
}
|
||||
} else {
|
||||
Some(reset_time)
|
||||
};
|
||||
|
||||
log::trace!("updating rate limit time: {:?}", updated_time);
|
||||
|
||||
*self.rate_limit_count_tx.lock().borrow_mut() = updated_time;
|
||||
}
|
||||
async fn send_request(
|
||||
&self,
|
||||
api_key: &str,
|
||||
spans: Vec<&str>,
|
||||
request_timeout: u64,
|
||||
) -> Result<Response<AsyncBody>> {
|
||||
let request = Request::post("https://api.openai.com/v1/embeddings")
|
||||
.redirect_policy(isahc::config::RedirectPolicy::Follow)
|
||||
.timeout(Duration::from_secs(request_timeout))
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Authorization", format!("Bearer {}", api_key))
|
||||
.body(
|
||||
serde_json::to_string(&OpenAIEmbeddingRequest {
|
||||
input: spans.clone(),
|
||||
model: "text-embedding-ada-002",
|
||||
})
|
||||
.unwrap()
|
||||
.into(),
|
||||
)?;
|
||||
|
||||
Ok(self.client.send(request).await?)
|
||||
}
|
||||
}
|
||||
|
||||
impl CredentialProvider for OpenAIEmbeddingProvider {
|
||||
fn has_credentials(&self) -> bool {
|
||||
match *self.credential.read() {
|
||||
ProviderCredential::Credentials { .. } => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
fn retrieve_credentials(&self, cx: &AppContext) -> ProviderCredential {
|
||||
let mut credential = self.credential.write();
|
||||
match *credential {
|
||||
ProviderCredential::Credentials { .. } => {
|
||||
return credential.clone();
|
||||
}
|
||||
_ => {
|
||||
if let Ok(api_key) = env::var("OPENAI_API_KEY") {
|
||||
*credential = ProviderCredential::Credentials { api_key };
|
||||
} else if let Some((_, api_key)) = cx
|
||||
.platform()
|
||||
.read_credentials(OPENAI_API_URL)
|
||||
.log_err()
|
||||
.flatten()
|
||||
{
|
||||
if let Some(api_key) = String::from_utf8(api_key).log_err() {
|
||||
*credential = ProviderCredential::Credentials { api_key };
|
||||
}
|
||||
} else {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
credential.clone()
|
||||
}
|
||||
|
||||
fn save_credentials(&self, cx: &AppContext, credential: ProviderCredential) {
|
||||
match credential.clone() {
|
||||
ProviderCredential::Credentials { api_key } => {
|
||||
cx.platform()
|
||||
.write_credentials(OPENAI_API_URL, "Bearer", api_key.as_bytes())
|
||||
.log_err();
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
*self.credential.write() = credential;
|
||||
}
|
||||
fn delete_credentials(&self, cx: &AppContext) {
|
||||
cx.platform().delete_credentials(OPENAI_API_URL).log_err();
|
||||
*self.credential.write() = ProviderCredential::NoCredentials;
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl EmbeddingProvider for OpenAIEmbeddingProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel> {
|
||||
let model: Box<dyn LanguageModel> = Box::new(self.model.clone());
|
||||
model
|
||||
}
|
||||
|
||||
fn max_tokens_per_batch(&self) -> usize {
|
||||
50000
|
||||
}
|
||||
|
||||
fn rate_limit_expiration(&self) -> Option<Instant> {
|
||||
*self.rate_limit_count_rx.borrow()
|
||||
}
|
||||
|
||||
async fn embed_batch(&self, spans: Vec<String>) -> Result<Vec<Embedding>> {
|
||||
const BACKOFF_SECONDS: [usize; 4] = [3, 5, 15, 45];
|
||||
const MAX_RETRIES: usize = 4;
|
||||
|
||||
let api_key = self.get_api_key()?;
|
||||
|
||||
let mut request_number = 0;
|
||||
let mut rate_limiting = false;
|
||||
let mut request_timeout: u64 = 15;
|
||||
let mut response: Response<AsyncBody>;
|
||||
while request_number < MAX_RETRIES {
|
||||
response = self
|
||||
.send_request(
|
||||
&api_key,
|
||||
spans.iter().map(|x| &**x).collect(),
|
||||
request_timeout,
|
||||
)
|
||||
.await?;
|
||||
|
||||
request_number += 1;
|
||||
|
||||
match response.status() {
|
||||
StatusCode::REQUEST_TIMEOUT => {
|
||||
request_timeout += 5;
|
||||
}
|
||||
StatusCode::OK => {
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
let response: OpenAIEmbeddingResponse = serde_json::from_str(&body)?;
|
||||
|
||||
log::trace!(
|
||||
"openai embedding completed. tokens: {:?}",
|
||||
response.usage.total_tokens
|
||||
);
|
||||
|
||||
// If we complete a request successfully that was previously rate_limited
|
||||
// resolve the rate limit
|
||||
if rate_limiting {
|
||||
self.resolve_rate_limit()
|
||||
}
|
||||
|
||||
return Ok(response
|
||||
.data
|
||||
.into_iter()
|
||||
.map(|embedding| Embedding::from(embedding.embedding))
|
||||
.collect());
|
||||
}
|
||||
StatusCode::TOO_MANY_REQUESTS => {
|
||||
rate_limiting = true;
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
|
||||
let delay_duration = {
|
||||
let delay = Duration::from_secs(BACKOFF_SECONDS[request_number - 1] as u64);
|
||||
if let Some(time_to_reset) =
|
||||
response.headers().get("x-ratelimit-reset-tokens")
|
||||
{
|
||||
if let Ok(time_str) = time_to_reset.to_str() {
|
||||
parse(time_str).unwrap_or(delay)
|
||||
} else {
|
||||
delay
|
||||
}
|
||||
} else {
|
||||
delay
|
||||
}
|
||||
};
|
||||
|
||||
// If we've previously rate limited, increment the duration but not the count
|
||||
let reset_time = Instant::now().add(delay_duration);
|
||||
self.update_reset_time(reset_time);
|
||||
|
||||
log::trace!(
|
||||
"openai rate limiting: waiting {:?} until lifted",
|
||||
&delay_duration
|
||||
);
|
||||
|
||||
self.executor.timer(delay_duration).await;
|
||||
}
|
||||
_ => {
|
||||
let mut body = String::new();
|
||||
response.body_mut().read_to_string(&mut body).await?;
|
||||
return Err(anyhow!(
|
||||
"open ai bad request: {:?} {:?}",
|
||||
&response.status(),
|
||||
body
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(anyhow!("openai max retries"))
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
pub mod completion;
|
||||
pub mod embedding;
|
||||
pub mod model;
|
||||
|
||||
pub use completion::*;
|
||||
pub use embedding::*;
|
||||
pub use model::OpenAILanguageModel;
|
||||
|
||||
pub const OPENAI_API_URL: &'static str = "https://api.openai.com/v1";
|
||||
@@ -1,57 +0,0 @@
|
||||
use anyhow::anyhow;
|
||||
use tiktoken_rs::CoreBPE;
|
||||
use util::ResultExt;
|
||||
|
||||
use crate::models::{LanguageModel, TruncationDirection};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct OpenAILanguageModel {
|
||||
name: String,
|
||||
bpe: Option<CoreBPE>,
|
||||
}
|
||||
|
||||
impl OpenAILanguageModel {
|
||||
pub fn load(model_name: &str) -> Self {
|
||||
let bpe = tiktoken_rs::get_bpe_from_model(model_name).log_err();
|
||||
OpenAILanguageModel {
|
||||
name: model_name.to_string(),
|
||||
bpe,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl LanguageModel for OpenAILanguageModel {
|
||||
fn name(&self) -> String {
|
||||
self.name.clone()
|
||||
}
|
||||
fn count_tokens(&self, content: &str) -> anyhow::Result<usize> {
|
||||
if let Some(bpe) = &self.bpe {
|
||||
anyhow::Ok(bpe.encode_with_special_tokens(content).len())
|
||||
} else {
|
||||
Err(anyhow!("bpe for open ai model was not retrieved"))
|
||||
}
|
||||
}
|
||||
fn truncate(
|
||||
&self,
|
||||
content: &str,
|
||||
length: usize,
|
||||
direction: TruncationDirection,
|
||||
) -> anyhow::Result<String> {
|
||||
if let Some(bpe) = &self.bpe {
|
||||
let tokens = bpe.encode_with_special_tokens(content);
|
||||
if tokens.len() > length {
|
||||
match direction {
|
||||
TruncationDirection::End => bpe.decode(tokens[..length].to_vec()),
|
||||
TruncationDirection::Start => bpe.decode(tokens[length..].to_vec()),
|
||||
}
|
||||
} else {
|
||||
bpe.decode(tokens)
|
||||
}
|
||||
} else {
|
||||
Err(anyhow!("bpe for open ai model was not retrieved"))
|
||||
}
|
||||
}
|
||||
fn capacity(&self) -> anyhow::Result<usize> {
|
||||
anyhow::Ok(tiktoken_rs::model::get_context_size(&self.name))
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
pub trait LanguageModel {
|
||||
fn name(&self) -> String;
|
||||
fn count_tokens(&self, content: &str) -> anyhow::Result<usize>;
|
||||
fn truncate(
|
||||
&self,
|
||||
content: &str,
|
||||
length: usize,
|
||||
direction: TruncationDirection,
|
||||
) -> anyhow::Result<String>;
|
||||
fn capacity(&self) -> anyhow::Result<usize>;
|
||||
}
|
||||
@@ -1,200 +0,0 @@
|
||||
use std::{
|
||||
sync::atomic::{self, AtomicUsize, Ordering},
|
||||
time::Instant,
|
||||
};
|
||||
|
||||
use async_trait::async_trait;
|
||||
use futures::{channel::mpsc, future::BoxFuture, stream::BoxStream, FutureExt, StreamExt};
|
||||
use gpui::AppContext;
|
||||
use parking_lot::Mutex;
|
||||
|
||||
use crate::{
|
||||
auth::{CredentialProvider, ProviderCredential},
|
||||
completion::{CompletionProvider, CompletionRequest},
|
||||
embedding::{Embedding, EmbeddingProvider},
|
||||
models::{LanguageModel, TruncationDirection},
|
||||
};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct FakeLanguageModel {
|
||||
pub capacity: usize,
|
||||
}
|
||||
|
||||
impl LanguageModel for FakeLanguageModel {
|
||||
fn name(&self) -> String {
|
||||
"dummy".to_string()
|
||||
}
|
||||
fn count_tokens(&self, content: &str) -> anyhow::Result<usize> {
|
||||
anyhow::Ok(content.chars().collect::<Vec<char>>().len())
|
||||
}
|
||||
fn truncate(
|
||||
&self,
|
||||
content: &str,
|
||||
length: usize,
|
||||
direction: TruncationDirection,
|
||||
) -> anyhow::Result<String> {
|
||||
println!("TRYING TO TRUNCATE: {:?}", length.clone());
|
||||
|
||||
if length > self.count_tokens(content)? {
|
||||
println!("NOT TRUNCATING");
|
||||
return anyhow::Ok(content.to_string());
|
||||
}
|
||||
|
||||
anyhow::Ok(match direction {
|
||||
TruncationDirection::End => content.chars().collect::<Vec<char>>()[..length]
|
||||
.into_iter()
|
||||
.collect::<String>(),
|
||||
TruncationDirection::Start => content.chars().collect::<Vec<char>>()[length..]
|
||||
.into_iter()
|
||||
.collect::<String>(),
|
||||
})
|
||||
}
|
||||
fn capacity(&self) -> anyhow::Result<usize> {
|
||||
anyhow::Ok(self.capacity)
|
||||
}
|
||||
}
|
||||
|
||||
pub struct FakeEmbeddingProvider {
|
||||
pub embedding_count: AtomicUsize,
|
||||
}
|
||||
|
||||
impl Clone for FakeEmbeddingProvider {
|
||||
fn clone(&self) -> Self {
|
||||
FakeEmbeddingProvider {
|
||||
embedding_count: AtomicUsize::new(self.embedding_count.load(Ordering::SeqCst)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for FakeEmbeddingProvider {
|
||||
fn default() -> Self {
|
||||
FakeEmbeddingProvider {
|
||||
embedding_count: AtomicUsize::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl FakeEmbeddingProvider {
|
||||
pub fn embedding_count(&self) -> usize {
|
||||
self.embedding_count.load(atomic::Ordering::SeqCst)
|
||||
}
|
||||
|
||||
pub fn embed_sync(&self, span: &str) -> Embedding {
|
||||
let mut result = vec![1.0; 26];
|
||||
for letter in span.chars() {
|
||||
let letter = letter.to_ascii_lowercase();
|
||||
if letter as u32 >= 'a' as u32 {
|
||||
let ix = (letter as u32) - ('a' as u32);
|
||||
if ix < 26 {
|
||||
result[ix as usize] += 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let norm = result.iter().map(|x| x * x).sum::<f32>().sqrt();
|
||||
for x in &mut result {
|
||||
*x /= norm;
|
||||
}
|
||||
|
||||
result.into()
|
||||
}
|
||||
}
|
||||
|
||||
impl CredentialProvider for FakeEmbeddingProvider {
|
||||
fn has_credentials(&self) -> bool {
|
||||
true
|
||||
}
|
||||
fn retrieve_credentials(&self, _cx: &AppContext) -> ProviderCredential {
|
||||
ProviderCredential::NotNeeded
|
||||
}
|
||||
fn save_credentials(&self, _cx: &AppContext, _credential: ProviderCredential) {}
|
||||
fn delete_credentials(&self, _cx: &AppContext) {}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl EmbeddingProvider for FakeEmbeddingProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel> {
|
||||
Box::new(FakeLanguageModel { capacity: 1000 })
|
||||
}
|
||||
fn max_tokens_per_batch(&self) -> usize {
|
||||
1000
|
||||
}
|
||||
|
||||
fn rate_limit_expiration(&self) -> Option<Instant> {
|
||||
None
|
||||
}
|
||||
|
||||
async fn embed_batch(&self, spans: Vec<String>) -> anyhow::Result<Vec<Embedding>> {
|
||||
self.embedding_count
|
||||
.fetch_add(spans.len(), atomic::Ordering::SeqCst);
|
||||
|
||||
anyhow::Ok(spans.iter().map(|span| self.embed_sync(span)).collect())
|
||||
}
|
||||
}
|
||||
|
||||
pub struct FakeCompletionProvider {
|
||||
last_completion_tx: Mutex<Option<mpsc::Sender<String>>>,
|
||||
}
|
||||
|
||||
impl Clone for FakeCompletionProvider {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
last_completion_tx: Mutex::new(None),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl FakeCompletionProvider {
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
last_completion_tx: Mutex::new(None),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn send_completion(&self, completion: impl Into<String>) {
|
||||
let mut tx = self.last_completion_tx.lock();
|
||||
|
||||
println!("COMPLETION TX: {:?}", &tx);
|
||||
|
||||
let a = tx.as_mut().unwrap();
|
||||
a.try_send(completion.into()).unwrap();
|
||||
|
||||
// tx.as_mut().unwrap().try_send(completion.into()).unwrap();
|
||||
}
|
||||
|
||||
pub fn finish_completion(&self) {
|
||||
println!("FINISHING COMPLETION");
|
||||
self.last_completion_tx.lock().take().unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
impl CredentialProvider for FakeCompletionProvider {
|
||||
fn has_credentials(&self) -> bool {
|
||||
true
|
||||
}
|
||||
fn retrieve_credentials(&self, _cx: &AppContext) -> ProviderCredential {
|
||||
ProviderCredential::NotNeeded
|
||||
}
|
||||
fn save_credentials(&self, _cx: &AppContext, _credential: ProviderCredential) {}
|
||||
fn delete_credentials(&self, _cx: &AppContext) {}
|
||||
}
|
||||
|
||||
impl CompletionProvider for FakeCompletionProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel> {
|
||||
let model: Box<dyn LanguageModel> = Box::new(FakeLanguageModel { capacity: 8190 });
|
||||
model
|
||||
}
|
||||
fn complete(
|
||||
&self,
|
||||
_prompt: Box<dyn CompletionRequest>,
|
||||
) -> BoxFuture<'static, anyhow::Result<BoxStream<'static, anyhow::Result<String>>>> {
|
||||
println!("COMPLETING");
|
||||
let (tx, rx) = mpsc::channel(1);
|
||||
*self.last_completion_tx.lock() = Some(tx);
|
||||
println!("TX: {:?}", *self.last_completion_tx.lock());
|
||||
async move { Ok(rx.map(|rx| Ok(rx)).boxed()) }.boxed()
|
||||
}
|
||||
fn box_clone(&self) -> Box<dyn CompletionProvider> {
|
||||
Box::new((*self).clone())
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
[package]
|
||||
name = "ai2"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
||||
[lib]
|
||||
path = "src/ai2.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
test-support = []
|
||||
|
||||
[dependencies]
|
||||
gpui = { package = "gpui2", path = "../gpui2" }
|
||||
util = { path = "../util" }
|
||||
language = { package = "language2", path = "../language2" }
|
||||
async-trait.workspace = true
|
||||
anyhow.workspace = true
|
||||
futures.workspace = true
|
||||
lazy_static.workspace = true
|
||||
ordered-float.workspace = true
|
||||
parking_lot.workspace = true
|
||||
isahc.workspace = true
|
||||
regex.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
postage.workspace = true
|
||||
rand.workspace = true
|
||||
log.workspace = true
|
||||
parse_duration = "2.1.1"
|
||||
tiktoken-rs = "0.5.0"
|
||||
matrixmultiply = "0.3.7"
|
||||
rusqlite = { version = "0.29.0", features = ["blob", "array", "modern_sqlite"] }
|
||||
bincode = "1.3.3"
|
||||
|
||||
[dev-dependencies]
|
||||
gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] }
|
||||
@@ -1,8 +0,0 @@
|
||||
pub mod auth;
|
||||
pub mod completion;
|
||||
pub mod embedding;
|
||||
pub mod models;
|
||||
pub mod prompts;
|
||||
pub mod providers;
|
||||
#[cfg(any(test, feature = "test-support"))]
|
||||
pub mod test;
|
||||
@@ -1,15 +0,0 @@
|
||||
use gpui::AppContext;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum ProviderCredential {
|
||||
Credentials { api_key: String },
|
||||
NoCredentials,
|
||||
NotNeeded,
|
||||
}
|
||||
|
||||
pub trait CredentialProvider {
|
||||
fn has_credentials(&self) -> bool;
|
||||
fn retrieve_credentials(&self, cx: &mut AppContext) -> ProviderCredential;
|
||||
fn save_credentials(&self, cx: &mut AppContext, credential: ProviderCredential);
|
||||
fn delete_credentials(&self, cx: &mut AppContext);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
use anyhow::Result;
|
||||
use futures::{future::BoxFuture, stream::BoxStream};
|
||||
|
||||
use crate::{auth::CredentialProvider, models::LanguageModel};
|
||||
|
||||
pub trait CompletionRequest: Send + Sync {
|
||||
fn data(&self) -> serde_json::Result<String>;
|
||||
}
|
||||
|
||||
pub trait CompletionProvider: CredentialProvider {
|
||||
fn base_model(&self) -> Box<dyn LanguageModel>;
|
||||
fn complete(
|
||||
&self,
|
||||
prompt: Box<dyn CompletionRequest>,
|
||||
) -> BoxFuture<'static, Result<BoxStream<'static, Result<String>>>>;
|
||||
fn box_clone(&self) -> Box<dyn CompletionProvider>;
|
||||
}
|
||||
|
||||
impl Clone for Box<dyn CompletionProvider> {
|
||||
fn clone(&self) -> Box<dyn CompletionProvider> {
|
||||
self.box_clone()
|
||||
}
|
||||
}
|
||||