diff --git a/Cargo.lock b/Cargo.lock index 332f73a..8698c68 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + [[package]] name = "anyhow" version = "1.0.86" @@ -119,6 +128,8 @@ version = "0.3.0" dependencies = [ "discord-rich-presence", "git2", + "lazy_static", + "regex", "serde_json", "tokio", "tower-lsp", @@ -255,8 +266,6 @@ dependencies = [ "libc", "libgit2-sys", "log", - "openssl-probe", - "openssl-sys", "url", ] @@ -329,6 +338,12 @@ dependencies = [ "libc", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "leb128" version = "0.2.5" @@ -349,26 +364,10 @@ checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", - "libssh2-sys", "libz-sys", - "openssl-sys", "pkg-config", ] -[[package]] -name = "libssh2-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - [[package]] name = "libz-sys" version = "1.1.18" @@ -425,17 +424,6 @@ dependencies = [ "adler", ] -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.48.0", -] - [[package]] name = "num_cpus" version = "1.16.0" @@ -461,34 +449,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - [[package]] name = "parking_lot_core" version = "0.9.10" @@ -499,7 +459,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -573,6 +533,35 @@ dependencies = [ "bitflags 2.6.0", ] +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -640,15 +629,6 @@ dependencies = [ "syn", ] -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - [[package]] name = "slab" version = "0.4.9" @@ -664,16 +644,6 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "spdx" version = "0.10.6" @@ -716,16 +686,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" dependencies = [ "backtrace", - "bytes", - "libc", - "mio", "num_cpus", - "parking_lot", "pin-project-lite", - "signal-hook-registry", - "socket2", "tokio-macros", - "windows-sys 0.48.0", ] [[package]] @@ -945,85 +908,34 @@ dependencies = [ "semver", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -1036,48 +948,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/README.md b/README.md index 180a6ac..5d4c7ee 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,22 @@ You can configure state, details and git integration by changing Discord Presenc "lsp": { "discord_presence": { "initialization_options": { + // Base url for all language icons + "base_icons_url": "https://raw.githubusercontent.com/xhyrom/zed-discord-presence/feat/recognize-languages/assets/icons/", + "state": "Working on {filename}", "details": "In {workspace}", + // URL for large image + "large_image": "{base_icons_url}/{language}.png", + "large_text": "{language:u}", // :u makes first letter upper-case + // URL for small image + "small_image": "{base_icons_url}/zed.png", + "small_text": "Zed", "git_integration": true } } } } ``` + +You can also use `null` to unset the option. Possible for everything except `base_icons_url` and `git_integration` diff --git a/assets/LICENSE b/assets/LICENSE new file mode 100644 index 0000000..a713e68 --- /dev/null +++ b/assets/LICENSE @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2020-2022 iCrawl +Copyright (c) 2020-2022 Satoqz +Copyright (c) 2020-2023 Narcis B. + +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. diff --git a/assets/NOTICE.md b/assets/NOTICE.md new file mode 100644 index 0000000..eeefa3c --- /dev/null +++ b/assets/NOTICE.md @@ -0,0 +1 @@ +Almost all icons are taken from [https://github.com/leonardssh/vscord/tree/main/assets/icons](https://github.com/leonardssh/vscord/tree/main/assets/icons) under [MIT LICENSE](./LICENSE) diff --git a/assets/icons/ahk.png b/assets/icons/ahk.png new file mode 100644 index 0000000..f5c477d Binary files /dev/null and b/assets/icons/ahk.png differ diff --git a/assets/icons/android.png b/assets/icons/android.png new file mode 100644 index 0000000..bf9a632 Binary files /dev/null and b/assets/icons/android.png differ diff --git a/assets/icons/angular.png b/assets/icons/angular.png new file mode 100644 index 0000000..4c136fc Binary files /dev/null and b/assets/icons/angular.png differ diff --git a/assets/icons/ansible.png b/assets/icons/ansible.png new file mode 100644 index 0000000..ac04439 Binary files /dev/null and b/assets/icons/ansible.png differ diff --git a/assets/icons/applescript.png b/assets/icons/applescript.png new file mode 100644 index 0000000..671f80c Binary files /dev/null and b/assets/icons/applescript.png differ diff --git a/assets/icons/appveyor.png b/assets/icons/appveyor.png new file mode 100644 index 0000000..969f488 Binary files /dev/null and b/assets/icons/appveyor.png differ diff --git a/assets/icons/arduino.png b/assets/icons/arduino.png new file mode 100644 index 0000000..e92903f Binary files /dev/null and b/assets/icons/arduino.png differ diff --git a/assets/icons/asp.png b/assets/icons/asp.png new file mode 100644 index 0000000..094fcf9 Binary files /dev/null and b/assets/icons/asp.png differ diff --git a/assets/icons/assembly.png b/assets/icons/assembly.png new file mode 100644 index 0000000..0bee697 Binary files /dev/null and b/assets/icons/assembly.png differ diff --git a/assets/icons/astro.png b/assets/icons/astro.png new file mode 100644 index 0000000..ba2788d Binary files /dev/null and b/assets/icons/astro.png differ diff --git a/assets/icons/astroconfig.png b/assets/icons/astroconfig.png new file mode 100644 index 0000000..9057992 Binary files /dev/null and b/assets/icons/astroconfig.png differ diff --git a/assets/icons/autoit.png b/assets/icons/autoit.png new file mode 100644 index 0000000..a48d1af Binary files /dev/null and b/assets/icons/autoit.png differ diff --git a/assets/icons/babel.png b/assets/icons/babel.png new file mode 100644 index 0000000..970e2ce Binary files /dev/null and b/assets/icons/babel.png differ diff --git a/assets/icons/bat.png b/assets/icons/bat.png new file mode 100644 index 0000000..f0eadbe Binary files /dev/null and b/assets/icons/bat.png differ diff --git a/assets/icons/bazel.png b/assets/icons/bazel.png new file mode 100644 index 0000000..2ca4351 Binary files /dev/null and b/assets/icons/bazel.png differ diff --git a/assets/icons/bower.png b/assets/icons/bower.png new file mode 100644 index 0000000..622d373 Binary files /dev/null and b/assets/icons/bower.png differ diff --git a/assets/icons/brainfuck.png b/assets/icons/brainfuck.png new file mode 100644 index 0000000..1bab4c6 Binary files /dev/null and b/assets/icons/brainfuck.png differ diff --git a/assets/icons/c.png b/assets/icons/c.png new file mode 100644 index 0000000..827e1f4 Binary files /dev/null and b/assets/icons/c.png differ diff --git a/assets/icons/c3.png b/assets/icons/c3.png new file mode 100644 index 0000000..b95a459 Binary files /dev/null and b/assets/icons/c3.png differ diff --git a/assets/icons/cargo.png b/assets/icons/cargo.png new file mode 100644 index 0000000..867ee2a Binary files /dev/null and b/assets/icons/cargo.png differ diff --git a/assets/icons/circleci.png b/assets/icons/circleci.png new file mode 100644 index 0000000..c52c726 Binary files /dev/null and b/assets/icons/circleci.png differ diff --git a/assets/icons/citrinescript.png b/assets/icons/citrinescript.png new file mode 100644 index 0000000..65182d8 Binary files /dev/null and b/assets/icons/citrinescript.png differ diff --git a/assets/icons/clojure.png b/assets/icons/clojure.png new file mode 100644 index 0000000..8999524 Binary files /dev/null and b/assets/icons/clojure.png differ diff --git a/assets/icons/cmake.png b/assets/icons/cmake.png new file mode 100644 index 0000000..f18ca43 Binary files /dev/null and b/assets/icons/cmake.png differ diff --git a/assets/icons/cobol.png b/assets/icons/cobol.png new file mode 100644 index 0000000..b8b74f2 Binary files /dev/null and b/assets/icons/cobol.png differ diff --git a/assets/icons/codeclimate.png b/assets/icons/codeclimate.png new file mode 100644 index 0000000..cfc86a5 Binary files /dev/null and b/assets/icons/codeclimate.png differ diff --git a/assets/icons/coffee.png b/assets/icons/coffee.png new file mode 100644 index 0000000..4ff9317 Binary files /dev/null and b/assets/icons/coffee.png differ diff --git a/assets/icons/contenthook.png b/assets/icons/contenthook.png new file mode 100644 index 0000000..7ab2173 Binary files /dev/null and b/assets/icons/contenthook.png differ diff --git a/assets/icons/cosmo.png b/assets/icons/cosmo.png new file mode 100644 index 0000000..5a2fdcf Binary files /dev/null and b/assets/icons/cosmo.png differ diff --git a/assets/icons/cpp.png b/assets/icons/cpp.png new file mode 100644 index 0000000..b022e7d Binary files /dev/null and b/assets/icons/cpp.png differ diff --git a/assets/icons/crystal.png b/assets/icons/crystal.png new file mode 100644 index 0000000..92406bc Binary files /dev/null and b/assets/icons/crystal.png differ diff --git a/assets/icons/csharp.png b/assets/icons/csharp.png new file mode 100644 index 0000000..2ab892b Binary files /dev/null and b/assets/icons/csharp.png differ diff --git a/assets/icons/csproj.png b/assets/icons/csproj.png new file mode 100644 index 0000000..28f5a85 Binary files /dev/null and b/assets/icons/csproj.png differ diff --git a/assets/icons/css.png b/assets/icons/css.png new file mode 100644 index 0000000..a4cf0c9 Binary files /dev/null and b/assets/icons/css.png differ diff --git a/assets/icons/cssmap.png b/assets/icons/cssmap.png new file mode 100644 index 0000000..ee16fbb Binary files /dev/null and b/assets/icons/cssmap.png differ diff --git a/assets/icons/cuda.png b/assets/icons/cuda.png new file mode 100644 index 0000000..6805386 Binary files /dev/null and b/assets/icons/cuda.png differ diff --git a/assets/icons/cython.png b/assets/icons/cython.png new file mode 100644 index 0000000..e1eb4e4 Binary files /dev/null and b/assets/icons/cython.png differ diff --git a/assets/icons/d.png b/assets/icons/d.png new file mode 100644 index 0000000..95fdb4d Binary files /dev/null and b/assets/icons/d.png differ diff --git a/assets/icons/dart.png b/assets/icons/dart.png new file mode 100644 index 0000000..491dff4 Binary files /dev/null and b/assets/icons/dart.png differ diff --git a/assets/icons/debugging.png b/assets/icons/debugging.png new file mode 100644 index 0000000..1c4e1b8 Binary files /dev/null and b/assets/icons/debugging.png differ diff --git a/assets/icons/delphi.png b/assets/icons/delphi.png new file mode 100644 index 0000000..8f207e4 Binary files /dev/null and b/assets/icons/delphi.png differ diff --git a/assets/icons/denizen.png b/assets/icons/denizen.png new file mode 100644 index 0000000..5185768 Binary files /dev/null and b/assets/icons/denizen.png differ diff --git a/assets/icons/docker.png b/assets/icons/docker.png new file mode 100644 index 0000000..f74d11c Binary files /dev/null and b/assets/icons/docker.png differ diff --git a/assets/icons/editorconfig.png b/assets/icons/editorconfig.png new file mode 100644 index 0000000..dfe843f Binary files /dev/null and b/assets/icons/editorconfig.png differ diff --git a/assets/icons/ejs.png b/assets/icons/ejs.png new file mode 100644 index 0000000..6247087 Binary files /dev/null and b/assets/icons/ejs.png differ diff --git a/assets/icons/elixir.png b/assets/icons/elixir.png new file mode 100644 index 0000000..90d1b0f Binary files /dev/null and b/assets/icons/elixir.png differ diff --git a/assets/icons/elm.png b/assets/icons/elm.png new file mode 100644 index 0000000..3e02c24 Binary files /dev/null and b/assets/icons/elm.png differ diff --git a/assets/icons/env.png b/assets/icons/env.png new file mode 100644 index 0000000..0719439 Binary files /dev/null and b/assets/icons/env.png differ diff --git a/assets/icons/erlang.png b/assets/icons/erlang.png new file mode 100644 index 0000000..7df73ec Binary files /dev/null and b/assets/icons/erlang.png differ diff --git a/assets/icons/eslint.png b/assets/icons/eslint.png new file mode 100644 index 0000000..6a0bfbf Binary files /dev/null and b/assets/icons/eslint.png differ diff --git a/assets/icons/firebase.png b/assets/icons/firebase.png new file mode 100644 index 0000000..6c591be Binary files /dev/null and b/assets/icons/firebase.png differ diff --git a/assets/icons/flowconfig.png b/assets/icons/flowconfig.png new file mode 100644 index 0000000..fa5112d Binary files /dev/null and b/assets/icons/flowconfig.png differ diff --git a/assets/icons/fortran.png b/assets/icons/fortran.png new file mode 100644 index 0000000..e53c7ae Binary files /dev/null and b/assets/icons/fortran.png differ diff --git a/assets/icons/fsharp.png b/assets/icons/fsharp.png new file mode 100644 index 0000000..427c4a2 Binary files /dev/null and b/assets/icons/fsharp.png differ diff --git a/assets/icons/gamescript.png b/assets/icons/gamescript.png new file mode 100644 index 0000000..3f67899 Binary files /dev/null and b/assets/icons/gamescript.png differ diff --git a/assets/icons/gatsbyjs.png b/assets/icons/gatsbyjs.png new file mode 100644 index 0000000..aeeaa12 Binary files /dev/null and b/assets/icons/gatsbyjs.png differ diff --git a/assets/icons/gemfile.png b/assets/icons/gemfile.png new file mode 100644 index 0000000..ebc1da0 Binary files /dev/null and b/assets/icons/gemfile.png differ diff --git a/assets/icons/git.png b/assets/icons/git.png new file mode 100644 index 0000000..4227d06 Binary files /dev/null and b/assets/icons/git.png differ diff --git a/assets/icons/gleam.png b/assets/icons/gleam.png new file mode 100644 index 0000000..dce43e0 Binary files /dev/null and b/assets/icons/gleam.png differ diff --git a/assets/icons/glsl.png b/assets/icons/glsl.png new file mode 100644 index 0000000..6456916 Binary files /dev/null and b/assets/icons/glsl.png differ diff --git a/assets/icons/gml.png b/assets/icons/gml.png new file mode 100644 index 0000000..108f534 Binary files /dev/null and b/assets/icons/gml.png differ diff --git a/assets/icons/go.png b/assets/icons/go.png new file mode 100644 index 0000000..836dc1a Binary files /dev/null and b/assets/icons/go.png differ diff --git a/assets/icons/godot.png b/assets/icons/godot.png new file mode 100644 index 0000000..3b3481b Binary files /dev/null and b/assets/icons/godot.png differ diff --git a/assets/icons/gradle.png b/assets/icons/gradle.png new file mode 100644 index 0000000..effd2b2 Binary files /dev/null and b/assets/icons/gradle.png differ diff --git a/assets/icons/grain.png b/assets/icons/grain.png new file mode 100644 index 0000000..0d2087b Binary files /dev/null and b/assets/icons/grain.png differ diff --git a/assets/icons/graphql.png b/assets/icons/graphql.png new file mode 100644 index 0000000..f8021a6 Binary files /dev/null and b/assets/icons/graphql.png differ diff --git a/assets/icons/groovy.png b/assets/icons/groovy.png new file mode 100644 index 0000000..611ef57 Binary files /dev/null and b/assets/icons/groovy.png differ diff --git a/assets/icons/gruntfile.png b/assets/icons/gruntfile.png new file mode 100644 index 0000000..52be211 Binary files /dev/null and b/assets/icons/gruntfile.png differ diff --git a/assets/icons/gulp.png b/assets/icons/gulp.png new file mode 100644 index 0000000..1cfce3c Binary files /dev/null and b/assets/icons/gulp.png differ diff --git a/assets/icons/handlebars.png b/assets/icons/handlebars.png new file mode 100644 index 0000000..bfd3be2 Binary files /dev/null and b/assets/icons/handlebars.png differ diff --git a/assets/icons/harbour.png b/assets/icons/harbour.png new file mode 100644 index 0000000..797b228 Binary files /dev/null and b/assets/icons/harbour.png differ diff --git a/assets/icons/hare.png b/assets/icons/hare.png new file mode 100644 index 0000000..07f3d1d Binary files /dev/null and b/assets/icons/hare.png differ diff --git a/assets/icons/haskell.png b/assets/icons/haskell.png new file mode 100644 index 0000000..7854065 Binary files /dev/null and b/assets/icons/haskell.png differ diff --git a/assets/icons/haxe.png b/assets/icons/haxe.png new file mode 100644 index 0000000..3af6f40 Binary files /dev/null and b/assets/icons/haxe.png differ diff --git a/assets/icons/heex.png b/assets/icons/heex.png new file mode 100644 index 0000000..5e2855f Binary files /dev/null and b/assets/icons/heex.png differ diff --git a/assets/icons/heroku.png b/assets/icons/heroku.png new file mode 100644 index 0000000..79e6809 Binary files /dev/null and b/assets/icons/heroku.png differ diff --git a/assets/icons/hjson.png b/assets/icons/hjson.png new file mode 100644 index 0000000..027003f Binary files /dev/null and b/assets/icons/hjson.png differ diff --git a/assets/icons/hlsl.png b/assets/icons/hlsl.png new file mode 100644 index 0000000..40a77f7 Binary files /dev/null and b/assets/icons/hlsl.png differ diff --git a/assets/icons/holyc.png b/assets/icons/holyc.png new file mode 100644 index 0000000..328be05 Binary files /dev/null and b/assets/icons/holyc.png differ diff --git a/assets/icons/html.png b/assets/icons/html.png new file mode 100644 index 0000000..b37ab6d Binary files /dev/null and b/assets/icons/html.png differ diff --git a/assets/icons/http.png b/assets/icons/http.png new file mode 100644 index 0000000..11c7683 Binary files /dev/null and b/assets/icons/http.png differ diff --git a/assets/icons/idle.png b/assets/icons/idle.png new file mode 100644 index 0000000..e5c9c48 Binary files /dev/null and b/assets/icons/idle.png differ diff --git a/assets/icons/jar.png b/assets/icons/jar.png new file mode 100644 index 0000000..0b57655 Binary files /dev/null and b/assets/icons/jar.png differ diff --git a/assets/icons/java.png b/assets/icons/java.png new file mode 100644 index 0000000..6d6eab4 Binary files /dev/null and b/assets/icons/java.png differ diff --git a/assets/icons/jest.png b/assets/icons/jest.png new file mode 100644 index 0000000..9200330 Binary files /dev/null and b/assets/icons/jest.png differ diff --git a/assets/icons/jinja.png b/assets/icons/jinja.png new file mode 100644 index 0000000..790434b Binary files /dev/null and b/assets/icons/jinja.png differ diff --git a/assets/icons/js.png b/assets/icons/js.png new file mode 100644 index 0000000..2100185 Binary files /dev/null and b/assets/icons/js.png differ diff --git a/assets/icons/jsmap.png b/assets/icons/jsmap.png new file mode 100644 index 0000000..7a28148 Binary files /dev/null and b/assets/icons/jsmap.png differ diff --git a/assets/icons/json.png b/assets/icons/json.png new file mode 100644 index 0000000..a660cd0 Binary files /dev/null and b/assets/icons/json.png differ diff --git a/assets/icons/jsx.png b/assets/icons/jsx.png new file mode 100644 index 0000000..b4b656b Binary files /dev/null and b/assets/icons/jsx.png differ diff --git a/assets/icons/jule.png b/assets/icons/jule.png new file mode 100644 index 0000000..7802b4c Binary files /dev/null and b/assets/icons/jule.png differ diff --git a/assets/icons/julia.png b/assets/icons/julia.png new file mode 100644 index 0000000..32396dc Binary files /dev/null and b/assets/icons/julia.png differ diff --git a/assets/icons/jupyter.png b/assets/icons/jupyter.png new file mode 100644 index 0000000..637e2da Binary files /dev/null and b/assets/icons/jupyter.png differ diff --git a/assets/icons/kag-script.png b/assets/icons/kag-script.png new file mode 100644 index 0000000..fd7e83c Binary files /dev/null and b/assets/icons/kag-script.png differ diff --git a/assets/icons/kirikiri-tpv-javascript.png b/assets/icons/kirikiri-tpv-javascript.png new file mode 100644 index 0000000..3e88fcc Binary files /dev/null and b/assets/icons/kirikiri-tpv-javascript.png differ diff --git a/assets/icons/kivy.png b/assets/icons/kivy.png new file mode 100644 index 0000000..8d25089 Binary files /dev/null and b/assets/icons/kivy.png differ diff --git a/assets/icons/kotlin.png b/assets/icons/kotlin.png new file mode 100644 index 0000000..1c62259 Binary files /dev/null and b/assets/icons/kotlin.png differ diff --git a/assets/icons/laravel.png b/assets/icons/laravel.png new file mode 100644 index 0000000..9dc70bd Binary files /dev/null and b/assets/icons/laravel.png differ diff --git a/assets/icons/less.png b/assets/icons/less.png new file mode 100644 index 0000000..8909af7 Binary files /dev/null and b/assets/icons/less.png differ diff --git a/assets/icons/lisp.png b/assets/icons/lisp.png new file mode 100644 index 0000000..882cf2c Binary files /dev/null and b/assets/icons/lisp.png differ diff --git a/assets/icons/livescript.png b/assets/icons/livescript.png new file mode 100644 index 0000000..a443c9d Binary files /dev/null and b/assets/icons/livescript.png differ diff --git a/assets/icons/log.png b/assets/icons/log.png new file mode 100644 index 0000000..b3a4096 Binary files /dev/null and b/assets/icons/log.png differ diff --git a/assets/icons/lua.png b/assets/icons/lua.png new file mode 100644 index 0000000..e765368 Binary files /dev/null and b/assets/icons/lua.png differ diff --git a/assets/icons/luau.png b/assets/icons/luau.png new file mode 100644 index 0000000..eb97a22 Binary files /dev/null and b/assets/icons/luau.png differ diff --git a/assets/icons/maeel.png b/assets/icons/maeel.png new file mode 100644 index 0000000..1300642 Binary files /dev/null and b/assets/icons/maeel.png differ diff --git a/assets/icons/makefile.png b/assets/icons/makefile.png new file mode 100644 index 0000000..782f8fe Binary files /dev/null and b/assets/icons/makefile.png differ diff --git a/assets/icons/manifest.png b/assets/icons/manifest.png new file mode 100644 index 0000000..eca97ce Binary files /dev/null and b/assets/icons/manifest.png differ diff --git a/assets/icons/markdown.png b/assets/icons/markdown.png new file mode 100644 index 0000000..20909db Binary files /dev/null and b/assets/icons/markdown.png differ diff --git a/assets/icons/markdownx.png b/assets/icons/markdownx.png new file mode 100644 index 0000000..2318208 Binary files /dev/null and b/assets/icons/markdownx.png differ diff --git a/assets/icons/marko.png b/assets/icons/marko.png new file mode 100644 index 0000000..1451d9e Binary files /dev/null and b/assets/icons/marko.png differ diff --git a/assets/icons/matlab.png b/assets/icons/matlab.png new file mode 100644 index 0000000..8b95307 Binary files /dev/null and b/assets/icons/matlab.png differ diff --git a/assets/icons/metal.png b/assets/icons/metal.png new file mode 100644 index 0000000..a5d64d4 Binary files /dev/null and b/assets/icons/metal.png differ diff --git a/assets/icons/mojo.png b/assets/icons/mojo.png new file mode 100644 index 0000000..fd77e05 Binary files /dev/null and b/assets/icons/mojo.png differ diff --git a/assets/icons/moonscript.png b/assets/icons/moonscript.png new file mode 100644 index 0000000..45dab14 Binary files /dev/null and b/assets/icons/moonscript.png differ diff --git a/assets/icons/nim.png b/assets/icons/nim.png new file mode 100644 index 0000000..63efb4d Binary files /dev/null and b/assets/icons/nim.png differ diff --git a/assets/icons/nix.png b/assets/icons/nix.png new file mode 100644 index 0000000..7188b6e Binary files /dev/null and b/assets/icons/nix.png differ diff --git a/assets/icons/nodemon.png b/assets/icons/nodemon.png new file mode 100644 index 0000000..14d9a64 Binary files /dev/null and b/assets/icons/nodemon.png differ diff --git a/assets/icons/npm.png b/assets/icons/npm.png new file mode 100644 index 0000000..86938a0 Binary files /dev/null and b/assets/icons/npm.png differ diff --git a/assets/icons/objective-c.png b/assets/icons/objective-c.png new file mode 100644 index 0000000..6b55fe3 Binary files /dev/null and b/assets/icons/objective-c.png differ diff --git a/assets/icons/ocaml.png b/assets/icons/ocaml.png new file mode 100644 index 0000000..871d8b4 Binary files /dev/null and b/assets/icons/ocaml.png differ diff --git a/assets/icons/odin.png b/assets/icons/odin.png new file mode 100644 index 0000000..75a64a6 Binary files /dev/null and b/assets/icons/odin.png differ diff --git a/assets/icons/onyx.png b/assets/icons/onyx.png new file mode 100644 index 0000000..36d9ae9 Binary files /dev/null and b/assets/icons/onyx.png differ diff --git a/assets/icons/opengoal-goos.png b/assets/icons/opengoal-goos.png new file mode 100644 index 0000000..d6f748d Binary files /dev/null and b/assets/icons/opengoal-goos.png differ diff --git a/assets/icons/opengoal-ir.png b/assets/icons/opengoal-ir.png new file mode 100644 index 0000000..a401bf0 Binary files /dev/null and b/assets/icons/opengoal-ir.png differ diff --git a/assets/icons/opengoal.png b/assets/icons/opengoal.png new file mode 100644 index 0000000..63c53ec Binary files /dev/null and b/assets/icons/opengoal.png differ diff --git a/assets/icons/pascal.png b/assets/icons/pascal.png new file mode 100644 index 0000000..7e51cf5 Binary files /dev/null and b/assets/icons/pascal.png differ diff --git a/assets/icons/pawn.png b/assets/icons/pawn.png new file mode 100644 index 0000000..af59388 Binary files /dev/null and b/assets/icons/pawn.png differ diff --git a/assets/icons/perl.png b/assets/icons/perl.png new file mode 100644 index 0000000..43a3fe8 Binary files /dev/null and b/assets/icons/perl.png differ diff --git a/assets/icons/php.png b/assets/icons/php.png new file mode 100644 index 0000000..8a429be Binary files /dev/null and b/assets/icons/php.png differ diff --git a/assets/icons/ponylang.png b/assets/icons/ponylang.png new file mode 100644 index 0000000..db36f21 Binary files /dev/null and b/assets/icons/ponylang.png differ diff --git a/assets/icons/postcss.png b/assets/icons/postcss.png new file mode 100644 index 0000000..3ceb8f4 Binary files /dev/null and b/assets/icons/postcss.png differ diff --git a/assets/icons/powershell.png b/assets/icons/powershell.png new file mode 100644 index 0000000..e102c5d Binary files /dev/null and b/assets/icons/powershell.png differ diff --git a/assets/icons/prettier.png b/assets/icons/prettier.png new file mode 100644 index 0000000..6510e7b Binary files /dev/null and b/assets/icons/prettier.png differ diff --git a/assets/icons/prisma.png b/assets/icons/prisma.png new file mode 100644 index 0000000..5e212bb Binary files /dev/null and b/assets/icons/prisma.png differ diff --git a/assets/icons/processing.png b/assets/icons/processing.png new file mode 100644 index 0000000..49fcbc4 Binary files /dev/null and b/assets/icons/processing.png differ diff --git a/assets/icons/pug.png b/assets/icons/pug.png new file mode 100644 index 0000000..9375699 Binary files /dev/null and b/assets/icons/pug.png differ diff --git a/assets/icons/purescript.png b/assets/icons/purescript.png new file mode 100644 index 0000000..12fe879 Binary files /dev/null and b/assets/icons/purescript.png differ diff --git a/assets/icons/python.png b/assets/icons/python.png new file mode 100644 index 0000000..992c308 Binary files /dev/null and b/assets/icons/python.png differ diff --git a/assets/icons/qml.png b/assets/icons/qml.png new file mode 100644 index 0000000..ff59b10 Binary files /dev/null and b/assets/icons/qml.png differ diff --git a/assets/icons/r.png b/assets/icons/r.png new file mode 100644 index 0000000..a4e2206 Binary files /dev/null and b/assets/icons/r.png differ diff --git a/assets/icons/racket.png b/assets/icons/racket.png new file mode 100644 index 0000000..cefa6f1 Binary files /dev/null and b/assets/icons/racket.png differ diff --git a/assets/icons/razor.png b/assets/icons/razor.png new file mode 100644 index 0000000..147ed6d Binary files /dev/null and b/assets/icons/razor.png differ diff --git a/assets/icons/reasonml.png b/assets/icons/reasonml.png new file mode 100644 index 0000000..4d1a2a7 Binary files /dev/null and b/assets/icons/reasonml.png differ diff --git a/assets/icons/restructuredtext.png b/assets/icons/restructuredtext.png new file mode 100644 index 0000000..cb1c9a3 Binary files /dev/null and b/assets/icons/restructuredtext.png differ diff --git a/assets/icons/ruby.png b/assets/icons/ruby.png new file mode 100644 index 0000000..e606c5b Binary files /dev/null and b/assets/icons/ruby.png differ diff --git a/assets/icons/rust.png b/assets/icons/rust.png new file mode 100644 index 0000000..74d40d8 Binary files /dev/null and b/assets/icons/rust.png differ diff --git a/assets/icons/scala.png b/assets/icons/scala.png new file mode 100644 index 0000000..ad94863 Binary files /dev/null and b/assets/icons/scala.png differ diff --git a/assets/icons/scss.png b/assets/icons/scss.png new file mode 100644 index 0000000..4d5d258 Binary files /dev/null and b/assets/icons/scss.png differ diff --git a/assets/icons/shell.png b/assets/icons/shell.png new file mode 100644 index 0000000..d830f05 Binary files /dev/null and b/assets/icons/shell.png differ diff --git a/assets/icons/skript.png b/assets/icons/skript.png new file mode 100644 index 0000000..819f4cf Binary files /dev/null and b/assets/icons/skript.png differ diff --git a/assets/icons/solidity.png b/assets/icons/solidity.png new file mode 100644 index 0000000..d743cba Binary files /dev/null and b/assets/icons/solidity.png differ diff --git a/assets/icons/sourcepawn.png b/assets/icons/sourcepawn.png new file mode 100644 index 0000000..af59388 Binary files /dev/null and b/assets/icons/sourcepawn.png differ diff --git a/assets/icons/sqf.png b/assets/icons/sqf.png new file mode 100644 index 0000000..dc7102c Binary files /dev/null and b/assets/icons/sqf.png differ diff --git a/assets/icons/sql.png b/assets/icons/sql.png new file mode 100644 index 0000000..ebd6a4f Binary files /dev/null and b/assets/icons/sql.png differ diff --git a/assets/icons/squirrel.png b/assets/icons/squirrel.png new file mode 100644 index 0000000..38bf124 Binary files /dev/null and b/assets/icons/squirrel.png differ diff --git a/assets/icons/stylus.png b/assets/icons/stylus.png new file mode 100644 index 0000000..538c879 Binary files /dev/null and b/assets/icons/stylus.png differ diff --git a/assets/icons/svelte.png b/assets/icons/svelte.png new file mode 100644 index 0000000..8e437ff Binary files /dev/null and b/assets/icons/svelte.png differ diff --git a/assets/icons/svg.png b/assets/icons/svg.png new file mode 100644 index 0000000..f41e01f Binary files /dev/null and b/assets/icons/svg.png differ diff --git a/assets/icons/swift.png b/assets/icons/swift.png new file mode 100644 index 0000000..afa46e7 Binary files /dev/null and b/assets/icons/swift.png differ diff --git a/assets/icons/systemverilog.png b/assets/icons/systemverilog.png new file mode 100644 index 0000000..22307ee Binary files /dev/null and b/assets/icons/systemverilog.png differ diff --git a/assets/icons/tailwind.png b/assets/icons/tailwind.png new file mode 100644 index 0000000..750bba9 Binary files /dev/null and b/assets/icons/tailwind.png differ diff --git a/assets/icons/terraform.png b/assets/icons/terraform.png new file mode 100644 index 0000000..b169073 Binary files /dev/null and b/assets/icons/terraform.png differ diff --git a/assets/icons/tex.png b/assets/icons/tex.png new file mode 100644 index 0000000..7771a0a Binary files /dev/null and b/assets/icons/tex.png differ diff --git a/assets/icons/text.png b/assets/icons/text.png new file mode 100644 index 0000000..0195ea8 Binary files /dev/null and b/assets/icons/text.png differ diff --git a/assets/icons/toml.png b/assets/icons/toml.png new file mode 100644 index 0000000..0285f48 Binary files /dev/null and b/assets/icons/toml.png differ diff --git a/assets/icons/travis.png b/assets/icons/travis.png new file mode 100644 index 0000000..03b70bf Binary files /dev/null and b/assets/icons/travis.png differ diff --git a/assets/icons/ts.png b/assets/icons/ts.png new file mode 100644 index 0000000..6e486e4 Binary files /dev/null and b/assets/icons/ts.png differ diff --git a/assets/icons/tsmap.png b/assets/icons/tsmap.png new file mode 100644 index 0000000..790bff0 Binary files /dev/null and b/assets/icons/tsmap.png differ diff --git a/assets/icons/tsx.png b/assets/icons/tsx.png new file mode 100644 index 0000000..c5fa71f Binary files /dev/null and b/assets/icons/tsx.png differ diff --git a/assets/icons/turbo.png b/assets/icons/turbo.png new file mode 100644 index 0000000..b7aa7ef Binary files /dev/null and b/assets/icons/turbo.png differ diff --git a/assets/icons/twig.png b/assets/icons/twig.png new file mode 100644 index 0000000..78d8d0b Binary files /dev/null and b/assets/icons/twig.png differ diff --git a/assets/icons/typescript-def.png b/assets/icons/typescript-def.png new file mode 100644 index 0000000..12dfc10 Binary files /dev/null and b/assets/icons/typescript-def.png differ diff --git a/assets/icons/umm.png b/assets/icons/umm.png new file mode 100644 index 0000000..7c5017e Binary files /dev/null and b/assets/icons/umm.png differ diff --git a/assets/icons/v.png b/assets/icons/v.png new file mode 100644 index 0000000..181ad10 Binary files /dev/null and b/assets/icons/v.png differ diff --git a/assets/icons/vala.png b/assets/icons/vala.png new file mode 100644 index 0000000..e630570 Binary files /dev/null and b/assets/icons/vala.png differ diff --git a/assets/icons/vb.png b/assets/icons/vb.png new file mode 100644 index 0000000..b86e89b Binary files /dev/null and b/assets/icons/vb.png differ diff --git a/assets/icons/vercel.png b/assets/icons/vercel.png new file mode 100644 index 0000000..f29f865 Binary files /dev/null and b/assets/icons/vercel.png differ diff --git a/assets/icons/verse.png b/assets/icons/verse.png new file mode 100644 index 0000000..c5c5b50 Binary files /dev/null and b/assets/icons/verse.png differ diff --git a/assets/icons/viteconfig.png b/assets/icons/viteconfig.png new file mode 100644 index 0000000..1bb2948 Binary files /dev/null and b/assets/icons/viteconfig.png differ diff --git a/assets/icons/vitestconfig.png b/assets/icons/vitestconfig.png new file mode 100644 index 0000000..7862ab0 Binary files /dev/null and b/assets/icons/vitestconfig.png differ diff --git a/assets/icons/vue.png b/assets/icons/vue.png new file mode 100644 index 0000000..ee5e9d6 Binary files /dev/null and b/assets/icons/vue.png differ diff --git a/assets/icons/vueconfig.png b/assets/icons/vueconfig.png new file mode 100644 index 0000000..432fb32 Binary files /dev/null and b/assets/icons/vueconfig.png differ diff --git a/assets/icons/wasm.png b/assets/icons/wasm.png new file mode 100644 index 0000000..16d5114 Binary files /dev/null and b/assets/icons/wasm.png differ diff --git a/assets/icons/webpack.png b/assets/icons/webpack.png new file mode 100644 index 0000000..7f3bcd1 Binary files /dev/null and b/assets/icons/webpack.png differ diff --git a/assets/icons/xaml.png b/assets/icons/xaml.png new file mode 100644 index 0000000..12b6edf Binary files /dev/null and b/assets/icons/xaml.png differ diff --git a/assets/icons/xml.png b/assets/icons/xml.png new file mode 100644 index 0000000..62c9904 Binary files /dev/null and b/assets/icons/xml.png differ diff --git a/assets/icons/yaml.png b/assets/icons/yaml.png new file mode 100644 index 0000000..92dff16 Binary files /dev/null and b/assets/icons/yaml.png differ diff --git a/assets/icons/yarn.png b/assets/icons/yarn.png new file mode 100644 index 0000000..325c69c Binary files /dev/null and b/assets/icons/yarn.png differ diff --git a/assets/icons/zed.png b/assets/icons/zed.png new file mode 100644 index 0000000..2a3c523 Binary files /dev/null and b/assets/icons/zed.png differ diff --git a/assets/icons/zenscript.png b/assets/icons/zenscript.png new file mode 100644 index 0000000..5eaee42 Binary files /dev/null and b/assets/icons/zenscript.png differ diff --git a/assets/icons/zig.png b/assets/icons/zig.png new file mode 100644 index 0000000..cce64ff Binary files /dev/null and b/assets/icons/zig.png differ diff --git a/assets/icons/zura.png b/assets/icons/zura.png new file mode 100644 index 0000000..fbdb8aa Binary files /dev/null and b/assets/icons/zura.png differ diff --git a/assets/languages.json b/assets/languages.json new file mode 100644 index 0000000..dc96071 --- /dev/null +++ b/assets/languages.json @@ -0,0 +1,410 @@ +{ + "nodemon.json": "nodemon", + "package.json": "npm", + "turbo.json": "turbo", + "regex:(vercel|now)\\.json": "vercel", + "regex:(?i)\\.prettier((rc)|(\\.(toml|yml|yaml|json|js))?)$": "prettier", + "regex:\\.eslint((rc|ignore)|(\\.(json|js))?)$": "eslint", + "regex:\\.(now|vercel)ignore$": "vercel", + "regex:prettier\\.config\\.js$": "prettier", + "regex:vue\\.config\\.(js|ts)$": "vueconfig", + "regex:vite\\.config\\.(js|ts)$": "viteconfig", + "regex:vitest\\.config\\.(js|ts|mjs)$": "vitestconfig", + "regex:jest\\.config\\.(js|ts)$": "jest", + "regex:tailwind\\.config\\.(js|cjs|mjs|ts|cts|mts)$": "tailwind", + "regex:gatsby-(browser|node|ssr|config)\\.js$": "gatsbyjs", + "regex:webpack(\\.dev|\\.development|\\.prod|\\.production)?\\.config(\\.babel)?\\.(js|jsx|coffee|ts|json|json5|yaml|yml)$": "webpack", + "babel.config.js": "babel", + ".ahk": "ahk", + ".ahkl": "ahk", + ".astro": "astro", + ".astro.config.mjs": "astroconfig", + "androidmanifest.xml": "android", + ".bp": "android", + "regex:^angular[^.]*\\.js$": "angular", + ".ng": "angular", + ".applescript": "applescript", + "regex:(\\.)?appveyor\\.yml$": "appveyor", + ".ino": "arduino", + ".swf": "as", + ".as": "as", + ".jsfl": "as", + ".swc": "as", + ".asp": "asp", + ".asax": "asp", + ".ascx": "asp", + ".ashx": "asp", + ".asmx": "asp", + ".aspx": "asp", + ".axd": "asp", + "regex:\\.(l?a|[ls]?o|out|s|a51|asm|axf|elf|prx|puff|z80)$": "assembly", + ".agc": "assembly", + ".ko": "assembly", + ".kv": "kivy", + ".ks": "kag-script", + ".tjs": "kirikiri-tpv-javascript", + ".lst": "assembly", + "regex:\\.((c([+px]{2}?)?-?)?objdump|bsdiff|bin|dat|pak|pdb)$": "assembly", + ".d-objdump": "assembly", + "regex:\\.gcode|\\.gco$": "assembly", + "regex:\\.rpy[bc]$": "assembly", + "regex:\\.py[co]$": "assembly", + ".swp": "assembly", + ".DS_Store": "assembly", + ".au3": "autoit", + "regex:\\.babelrc$": "babel", + ".bat": "bat", + ".batch": "bat", + ".cmd": "bat", + "regex:\\.(exe|com|msi)$": "bat", + ".reg": "bat", + "regex:^(BUILD|WORKSPACE|\\.bzl|\\.bazel(rc)?|\\.s(tar|ky))$": "bazel", + "regex:^(\\.bowerrc|bower\\.json|Bowerfile)$": "bower", + "regex:\\.bf?$": "brainfuck", + "regex:\\.c$": "c", + "regex:(cargo\\.toml|cargo\\.lock)$": "cargo", + ".casc": "casc", + ".cas": "casc", + ".ces": "citrinescript", + ".cfc": "coldfusion", + ".cfm": "coldfusion", + "circle.yml": "circleci", + ".clj": "clojure", + ".cl2": "clojure", + ".cljc": "clojure", + ".cljx": "clojure", + ".hic": "clojure", + "regex:\\.cljs(cm)?$": "clojure", + ".cmake": "cmake", + "regex:^CMakeLists\\.txt$": "cmake", + "regex:\\.codeclimate\\.(yml|json)$": "codeclimate", + ".cbl": "cobol", + ".cob": "cobol", + ".coffee": "coffee", + ".cjsx": "coffee", + ".coffee.ecr": "coffee", + "regex:contenthook\\.config\\.(ts|cjs|mjs|js)$": "contenthook", + ".coffee.erb": "coffee", + ".litcoffee": "coffee", + ".iced": "coffee", + ".cos": "cosmo", + ".⭐": "cosmo", + "regex:\\.c[+px]{2}$|\\.cc$": "cpp", + "regex:\\.h[+px]{2}$": "cpp", + "regex:\\.[it]pp$": "cpp", + "regex:\\.(tcc|inl)$": "cpp", + ".cats": "cpp", + ".idc": "cpp", + ".w": "cpp", + ".nc": "cpp", + ".upc": "cpp", + ".xpm": "cpp", + "regex:\\.e?cr$": "crystal", + ".cs": "csharp", + ".csx": "csharp", + ".cshtml": "razor", + ".csproj": "csproj", + ".css": "css", + ".css.map": "cssmap", + ".cu": "cuda", + ".pyx": "cython", + "regex:\\.di?$": "d", + ".dart": "dart", + ".dfm": "delphi", + ".dpr": "delphi", + ".dsc": "denizen", + ".dm": "dm", + ".dme": "dm", + ".dmm": "dm", + "regex:^(Dockerfile|docker-compose|\\.docker(file|ignore))$": "docker", + "regex:^docker-sync\\.yml$": "docker", + ".editorconfig": "editorconfig", + ".ejs": "ejs", + ".ex": "elixir", + "regex:\\.(exs|l?eex)$": "elixir", + "regex:^mix\\.(exs?|lock)$": "elixir", + ".elm": "elm", + ".env": "env", + ".erl": "erlang", + "regex:\\.([fF])(03|08|18|90|95)$": "fortran", + ".beam": "erlang", + ".hrl": "erlang", + ".xrl": "erlang", + ".yrl": "erlang", + ".app.src": "erlang", + "regex:^Emakefile$": "erlang", + "regex:^rebar(\\.config)?\\.lock$": "erlang", + "regex:(\\.firebaserc|firebase\\.json)$": "firebase", + ".flowconfig": "flowconfig", + ".fs": "fsharp", + ".fsi": "fsharp", + ".fsscript": "fsharp", + ".fsx": "fsharp", + "regex:^Gemfile(\\.lock)?$": "gemfile", + "regex:^\\.git|^\\.keep$|\\.mailmap$": "git", + ".gml": "gml", + ".gleam": "gleam", + ".go": "go", + ".gd": "godot", + ".gr": "grain", + ".gradle": "gradle", + "gradlew": "gradle", + "regex:\\.(g|c)sc$": "gamescript", + ".gql": "graphql", + ".graphql": "graphql", + ".groovy": "groovy", + "regex:\\.gv?y$": "groovy", + ".gsh": "groovy", + "regex:[Gg]runtfile\\.(js|coffee)$": "gruntfile", + "gulpfile.js": "gulp", + "regex:\\.(hbs|handlebars|(mu)?stache)$": "handlebars", + ".prg": "harbour", + ".ha": "hare", + ".hbp": "harbour", + ".hbc": "harbour", + ".rc": "harbour", + ".fmg": "harbour", + ".hs": "haskell", + ".hsc": "haskell", + ".c2hs": "haskell", + ".c3": "c3", + ".lhs": "haskell", + "regex:\\.(hlsl|cginc|cg|shader|fx)$": "hlsl", + "regex:\\.(glsl|vert|frag|geom|tesc|tese|comp)$": "glsl", + "regex:\\.hx(ml)?$": "haxe", + "^procfile$": "heroku", + ".heex": "heex", + "heroku.yml": "heroku", + ".hjson": "hjson", + ".hc": "holyc", + "regex:\\.x?html?$": "html", + ".http": "http", + ".rest": "http", + ".jar": "jar", + ".java": "java", + ".j2": "jinja", + ".jinja": "jinja", + ".js": "js", + ".es6": "js", + ".es": "js", + ".mjs": "js", + ".js.map": "jsmap", + ".json": "json", + ".jsonc": "json", + ".jsx": "jsx", + ".jule": "jule", + "regex:\\.(jil|jl)$": "julia", + ".ipynb": "jupyter", + "regex:\\.kt[ms]?$": "kotlin", + ".less": "less", + "regex:\\.l(i?sp)?$": "lisp", + "regex:\\.n[ly]$": "lisp", + ".podsl": "lisp", + "regex:\\.s([s]|(cm)|(exp))$": "lisp", + ".ls": "livescript", + ".log": "log", + "regex:\\.([w]|(pd_))?lua$": "lua", + "regex:\\.luau$": "luau", + "regex:\\.rbx(?:lx|l|m|s)?$": "luau", + "^Makefile$": "makefile", + "^mk\\.config$": "makefile", + "regex:\\.(mk|mak|make)$": "makefile", + "regex:^BSDmakefile$": "makefile", + "regex:^GNUmakefile$": "makefile", + "regex:^makefile\\.sco$": "makefile", + "regex:^Kbuild$": "makefile", + "regex:^makefile$": "makefile", + "regex:^mkfile$": "makefile", + "regex:^\\.?qmake$": "makefile", + "regex:\\.(geo|topo)$": "manifest", + ".cson": "manifest", + ".json5": "manifest", + ".ndjson": "manifest", + ".fea": "manifest", + ".json.eex": "manifest", + ".pawn": "pawn", + ".proto": "manifest", + ".pytb": "manifest", + ".pydeps": "manifest", + "regex:\\.pot?$": "manifest", + ".ejson": "manifest", + ".edn": "manifest", + ".eam.fs": "manifest", + ".qml": "manifest", + ".qbs": "manifest", + ".ston": "manifest", + ".ttl": "manifest", + ".rviz": "manifest", + ".sol": "solidity", + ".syntax": "manifest", + ".webmanifest": "manifest", + "regex:^pkginfo$": "manifest", + ".moon": "moonscript", + "regex:^mime\\.types$": "manifest", + "regex:^METADATA\\.pb$": "manifest", + "regex:/\\\\[/\\\\][-.\\w]+$": "manifest", + "regex:([/\\\\]|\\/)dev[-\\w]+\\1(?:[^/\\\\]+\\1)*(?!DESC|NOTES)(?:[A-Z][-A-Z]*)(?:\\.in)?$": "manifest", + "lib/icons/.icondb.js": "manifest", + "regex:\\.git/\\\\?(HEAD|ORIG_HEAD|packed-refs|logs/\\\\?[^/\\\\]+)$": "manifest", + "regex:\\.(md|mdown|markdown|mkd|mkdown|mdwn|mkdn|rmd|ron|pmd)$": "markdown", + ".mdx": "markdownx", + ".marko": "marko", + "regex:\\.m$": "matlab", + ".nim": "nim", + ".nims": "nim", + ".nimble": "nim", + ".nix": "nix", + ".npmrc": "npm", + ".npmignore": "npm", + ".nut": "squirrel", + "regex:\\.mm?$": "objective-c", + ".pch": "objective-c", + ".x": "objective-c", + "regex:\\.eliom[i]?$": "ocaml", + "regex:\\.ml[4lyi]?$": "ocaml", + ".mt": "metal", + ".odin": "odin", + ".onyx": "onyx", + "regex:\\.pas(cal)?$": "pascal", + ".lpr": "pascal", + ".inc": "pawn", + ".sma": "pawn", + "regex:\\.p(wn)?$": "pawn", + ".sp": "sourcepawn", + "regex:\\.p(er)?l$": "perl", + ".al": "perl", + "regex:\\.p([hm]|lx)$": "perl", + "regex:\\.(psgi|xs)$": "perl", + ".pl6": "perl", + "regex:\\.[tp]6$|\\.6pl$": "perl", + "regex:\\.(pm6|p6m)$": "perl", + ".6pm": "perl", + ".nqp": "perl", + ".p6l": "perl", + ".pod6": "perl", + "regex:^Rexfile$": "perl", + "regex:\\.php([st\\d]|_cs)?$": "php", + "^Phakefile$": "php", + ".pony": "ponylang", + ".pcss": "postcss", + "regex:\\.ps[md]?1$": "powershell", + ".ps1xml": "powershell", + ".prettierignore": "prettier", + "prisma.yml": "prisma", + ".pde": "processing", + ".jade": "pug", + ".pug": "pug", + ".purs": "purescript", + ".ipy": "python", + ".isolate": "python", + ".pep": "python", + "regex:\\.gypi?$": "python", + ".pyde": "python", + "regex:\\.py([wi3tp]|de)?$": "python", + ".tac": "python", + ".wsgi": "python", + ".xpy": "python", + ".rpy": "python", + "regex:\\.?(pypirc|pythonrc|python-venv)$": "python", + "regex:^(SConstruct|SConscript)$": "python", + "regex:^(Snakefile|WATCHLISTS)$": "python", + "regex:^wscript$": "python", + "regex:\\.(r|Rprofile|rsx|rd)$": "r", + ".razor": "razor", + "regex:\\.res?i?$": "reasonml", + ".rst": "restructuredtext", + "regex:\\.(rb|ru|ruby|erb|gemspec|god|mspec|pluginspec|podspec|rabl|rake|opal)$": "ruby", + "regex:^\\.?(irbrc|gemrc|pryrc|ruby-(gemset|version))$": "ruby", + "regex:^(Appraisals|(Rake|[bB]uild|Cap|Danger|Deliver|Fast|Guard|Jar|Maven|Pod|Puppet|Snap)file(\\.lock)?)$": "ruby", + "regex:\\.(jbuilder|rbuild|rb[wx]|builder)$": "ruby", + "regex:^rails$": "ruby", + ".watchr": "ruby", + ".rs": "rust", + "regex:\\.(sc|scala)$": "scala", + "regex:\\.s[ac]ss$": "scss", + "regex:\\.(sh|rc|bats|bash|tool|install|command)$": "shell", + "regex:^(\\.?bash(rc|[-_]?(profile|login|logout|history|prompt))|_osc|config|install-sh|PKGBUILD)$": "shell", + "regex:\\.(ksh|mksh|pdksh)$": "shell", + ".sh-session": "shell", + "regex:\\.zsh(-theme|_history)?$|^\\.?(antigen|zpreztorc|zlogin|zlogout|zprofile|zshenv|zshrc)$": "shell", + "regex:\\.fish$|^\\.fishrc$": "shell", + "regex:^\\.?(login|profile)$": "shell", + ".inputrc": "shell", + ".tmux": "shell", + "regex:^(configure|config\\.(guess|rpath|status|sub)|depcomp|libtool|compile)$": "shell", + "regex:^/(private/)?etc/([^/]+/)*(profile$|nanorc$|rc\\.|csh\\.)$": "shell", + "regex:^\\.?cshrc$": "shell", + ".profile": "shell", + ".tcsh": "shell", + ".csh": "shell", + ".sk": "skript", + ".sqf": "sqf", + "regex:\\.(my)?sql$": "sql", + ".ddl": "sql", + ".udf": "sql", + ".hql": "sql", + ".rkt": "racket", + ".viw": "sql", + ".prc": "sql", + ".cql": "sql", + ".db2": "sql", + "regex:\\.(styl|stylus)$": "stylus", + ".sln": "csproj", + "regex:\\.sv(h)?$": "systemverilog", + ".svelte": "svelte", + ".svg": "svg", + ".swift": "swift", + "regex:\\.tex(i)?$": "tex", + ".ltx": "tex", + ".aux": "tex", + ".sty": "tex", + ".dtx": "tex", + ".cls": "tex", + ".ins": "tex", + ".lbx": "tex", + ".mkiv": "tex", + "regex:\\.mk[vi]i$": "tex", + "regex:^hyphen(ex)?\\.(cs|den|det|fr|sv|us)$": "tex", + "regex:\\.te?xt$": "text", + ".rtf": "text", + "regex:\\.i?nfo$": "text", + ".msg": "text", + "regex:\\.(utxt|utf8)$": "text", + ".toml": "toml", + ".travis.yml": "travis", + ".ts.map": "tsmap", + "regex:.*\\.d\\.ts$": "typescript-def", + ".ts": "ts", + ".tsx": "tsx", + ".twig": "twig", + ".umm": "umm", + ".v": "v", + ".vh": "v", + ".vala": "vala", + ".vapi": "vala", + ".vb": "vb", + ".vbs": "vb", + ".vbhtml": "vb", + ".vbproj": "vb", + ".vba": "vba", + ".vcxproj": "vcxproj", + ".verse": "verse", + ".vscodeignore": "vscodeignore", + ".vue": "vue", + ".zu": "zura", + ".zura": "zura", + ".wat": "wasm", + ".wast": "wasm", + ".wasm": "wasm", + ".xml": "xml", + ".xaml": "xaml", + "regex:\\.ya?ml$": "yaml", + "regex:^yarn(\\.lock)?$": "yarn", + ".yarnrc": "yarn", + ".zig": "zig", + ".maeel": "maeel", + "regex:\\.(tfvars|tf)$": "terraform", + "regex:\\.mojo$": "mojo", + ".🔥": "mojo", + ".zs": "zs" +} diff --git a/lsp/Cargo.toml b/lsp/Cargo.toml index 2981c5b..2a17eb2 100644 --- a/lsp/Cargo.toml +++ b/lsp/Cargo.toml @@ -5,7 +5,9 @@ edition = "2021" [dependencies] discord-rich-presence = "0.2.4" -tokio = { version = "1.37.0", features = ["full"] } +tokio = { version = "1.37.0", features = ["rt-multi-thread", "io-std", "macros"] } tower-lsp = "0.20.0" -git2 = "0.19.0" -serde_json = "1.0.122" +git2 = { version = "0.19.0", default-features = false } +serde_json = { version = "1.0.122", features = ["std"] } +lazy_static = "1.5.0" +regex = { version = "1.10.6", default-features = false, features = ["std", "perf"] } diff --git a/lsp/src/configuration.rs b/lsp/src/configuration.rs index e470a03..e9beb20 100644 --- a/lsp/src/configuration.rs +++ b/lsp/src/configuration.rs @@ -21,37 +21,66 @@ use serde_json::Value; #[derive(Debug)] pub struct Configuration { - pub state: String, - pub details: String, + pub base_icons_url: String, + + pub state: Option, + pub details: Option, + + pub large_image: Option, + pub large_text: Option, + pub small_image: Option, + pub small_text: Option, + pub git_integration: bool, } +macro_rules! set_option { + ($self:ident, $options:ident, $field:ident, $key:expr) => { + if let Some(value) = $options.get($key) { + $self.$field = if value.is_null() { + None + } else { + Some(value.as_str().unwrap().to_string()) + }; + } + }; +} + +macro_rules! set_string { + ($self:ident, $options:ident, $field:ident, $key:expr) => { + if let Some(value) = $options.get($key) { + $self.$field = value.as_str().unwrap().to_string(); + } + }; +} + impl Configuration { pub fn new() -> Self { Self { - state: String::from("Working on {filename}"), - details: String::from("In {workspace}"), + base_icons_url: String::from("https://raw.githubusercontent.com/xhyrom/zed-discord-presence/feat/recognize-languages/assets/icons/"), + state: Some(String::from("Working on {filename}")), + details: Some(String::from("In {workspace}")), + large_image: Some(String::from("{base_icons_url}/{language}.png")), + large_text: Some(String::from("{language:u}")), + small_image: Some(String::from("{base_icons_url}/zed.png")), + small_text: Some(String::from("Zed")), git_integration: true, } } pub fn set(&mut self, initialization_options: Option) { - if initialization_options.is_none() { - return; - } + if let Some(options) = initialization_options { + set_string!(self, options, base_icons_url, "base_icons_url"); + set_option!(self, options, state, "state"); + set_option!(self, options, details, "details"); + set_option!(self, options, large_image, "large_image"); + set_option!(self, options, large_text, "large_text"); + set_option!(self, options, small_image, "small_image"); + set_option!(self, options, small_text, "small_text"); - let initialization_options = initialization_options.unwrap(); - - if let Some(state) = initialization_options.get("state") { - self.state = state.as_str().unwrap().to_string(); - } - - if let Some(details) = initialization_options.get("details") { - self.details = details.as_str().unwrap().to_string(); - } - - if let Some(git_integration) = initialization_options.get("git_integration") { - self.git_integration = git_integration.as_bool().unwrap_or(true); + if let Some(git_integration) = options.get("git_integration") { + self.git_integration = git_integration.as_bool().unwrap_or(true); + } } } } diff --git a/lsp/src/discord.rs b/lsp/src/discord.rs index 64d301f..5f46e09 100644 --- a/lsp/src/discord.rs +++ b/lsp/src/discord.rs @@ -23,10 +23,12 @@ use std::{ }; use discord_rich_presence::{ - activity::{self, Assets, Button, Timestamps}, + activity::{Activity, Assets, Button, Timestamps}, DiscordIpc, DiscordIpcClient, }; +use crate::util; + #[derive(Debug)] pub struct Discord { client: Mutex, @@ -64,30 +66,42 @@ impl Discord { return self.client.lock().expect("Failed to lock discord client"); } - pub fn change_activity(&self, state: String, details: String, git_remote_url: Option) { + #[allow(clippy::too_many_arguments)] + pub fn change_activity( + &self, + state: Option, + details: Option, + large_image: Option, + large_text: Option, + small_image: Option, + small_text: Option, + git_remote_url: Option, + ) { let mut client = self.get_client(); let timestamp: i64 = self.start_timestamp.as_millis() as i64; - let mut buttons: Vec