Merge pull request #1 from tawfeeqm/develop

Develop
This commit is contained in:
Tawfeeq Meeri 2025-02-26 14:43:58 +01:00 committed by GitHub
commit a8b4dd598a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
98 changed files with 2120 additions and 44 deletions

View File

@ -62,7 +62,8 @@ fork to your machine using one of the commands below, depending on your OS.
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
too - it's ignored in the kickstart repo to make maintenance easier, but it's
[recommended to track it in version control](https://lazy.folke.io/usage/lockfile).
[recommmended to track it in version control](https://lazy.folke.io/usage/lockfile).
#### Clone kickstart.nvim
> **NOTE**

View File

@ -0,0 +1 @@
"return" @keyword.return

View File

@ -0,0 +1,4 @@
# note: this is moved into `dist` during compilation, and does not actually apply here
**/*.map
src/build/**
src/testRunner.js

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) Microsoft Corporation. All rights reserved.
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

View File

@ -0,0 +1,134 @@
<h1>
<img alt="vscode-js-debug" src="resources/readme/logo-with-text.png" width="500">
</h1>
This is a [DAP](https://microsoft.github.io/debug-adapter-protocol/)-based JavaScript debugger. It debugs Node.js, Chrome, Edge, WebView2, VS Code extensions, Blazor, React Native, and more. It is the default JavaScript debugger in Visual Studio Code and Visual Studio, and the standalone debug server can also be used in other tools such as [nvim](https://github.com/mxsdev/nvim-dap-vscode-js).
## Usage
If you're using Visual Studio or Visual Studio Code, `js-debug` is already installed. Otherwise, please consult your editor's documentation for possible installation instructions. Builds of the VS Code extension and standalone DAP server are available on the [releases](https://github.com/microsoft/vscode-js-debug/releases) page.
See [OPTIONS.md](./OPTIONS.md) for a list of options you can use in your launch configurations.
- For usage in VS Code, please check out our guides for [Node.js debugging](https://code.visualstudio.com/docs/nodejs/nodejs-debugging), [Browser debugging](https://code.visualstudio.com/docs/nodejs/browser-debugging).
- For debugging React Native, install and read through the [React Native](https://marketplace.visualstudio.com/items?itemName=msjsdiag.vscode-react-native) extension which builds upon `js-debug`.
- For debugging Blazor, check out [its documentation here](https://learn.microsoft.com/en-us/aspnet/core/blazor/debug?view=aspnetcore-8.0&tabs=visual-studio-code).
- For debugging WebView2 apps, check out [documentation here](https://learn.microsoft.com/en-us/microsoft-edge/webview2/how-to/debug-visual-studio-code).
### Nightly Extension
The shipped version of VS Code includes the js-debug version at the time of its release, however you may want to install our nightly build to get the latest fixes and features. The nightly build runs at 5PM PST on each day that there are changes ([see pipeline](https://dev.azure.com/vscode/VS%20Code%20debug%20adapters/_build?definitionId=28)). To get the build:
1. Open the extensions view (ctrl+shift+x) and search for `@builtin @id:ms-vscode.js-debug`
2. Right click on the `JavaScript Debugger` extension and `Disable` it.
3. Search for `@id:ms-vscode.js-debug-nightly` in the extensions view.
4. Install that extension.
## Notable Features
In `js-debug` we aim to provide rich debugging for modern applications, with no or minimal configuration required. Here are a few distinguishing features of `js-debug` beyond basic debugging capabilities. Please refer to the VS Code documentation for a complete overview of capabilities.
### Debug child processes, web workers, service workers, and worker threads
In Node.js, child processes and worker threads will automatically be debugged. In browsers, service workers, webworkers, and iframes will be debugged as well. While debugging workers, you can also step through `postMessage()` calls.
<details>
<summary>Preview</summary>
<img src="resources/readme/web-worker.png" width="302">
</details>
### Debug WebAssembly with DWARF symbols
The debugger automatically reads DWARF symbols from WebAssembly binaries, and debugs them. The usual debugging features are available, including limited evaluation support via `lldb-eval`.
<details>
<summary>Preview</summary>
<img src="resources/readme/wasm-dwarf.png" width="302">
</details>
### Debug Node.js processes in the terminal
You can debug any Node.js process you run in the terminal with Auto Attach. If auto attach isn't on, you can run the command `Debug: Toggle Auto Attach` to turn it on. Next time you run a command like `npm start`, we'll debug it.
<details>
<summary>Preview</summary>
<img src="resources/readme/auto-attach.png" width="554">
</details>
Once enabled, you can toggle Auto Attach by clicking the `Auto Attach: On/Off` button in the status bar on the bottom of your screen. You can also create a one-off terminal for debugging via the `Debug: Create JavaScript Debug Terminal` command.
### Profiling Support
You can capture and view performance profiles natively in VS Code, by clicking on the ⚪ button in the Call Stack view, or through the `Debug: Take Performance Profile` command. The profile information collected through VS Code is sourcemap-aware.
We support taking and visualizating CPU profiles, heap profiles, and heap snapshots.
<details>
<summary>Preview</summary>
<img src="resources/readme/flame-chart.png" width="845">
</details>
### Instrumentation breakpoints
When debugging web apps, you can configure instrumentation breakpoints from VS Code in the "Event Listener Breakpoints" view.
<details>
<summary>Preview</summary>
<img src="resources/readme/instrumentation-breakpoints.png" width="367">
<img src="resources/readme/instrumentation-breakpoints2.png" width="602">
</details>
### Return value interception
On a function's return statement, you can use, inspect, and modify the `$returnValue`.
<details>
<summary>Preview</summary>
<img src="resources/readme/returnvalue.png">
</details>
Note that you can use and modify properties on the `$returnValue`, but not assign it to--it is effectively a `const` variable.
### Pretty-print minified sources
The debugger can pretty print files, especially useful when dealing with minified sources. You can trigger pretty printing by clicking on the braces `{}` icon in editor actions, or via the `Debug: Pretty print for debugging` command.
<details>
<summary>Preview</summary>
<img src="resources/readme/pretty-print.png">
</details>
### Experimental Network View
The debugger allows viewing network traffic of browser targets and Node.js >22.6.0. This requires enabling the `debug.javascript.enableNetworkView` setting.
<details>
<summary>Preview</summary>
<img src="resources/readme/network-view.png">
</details>
### Advanced Rename Support
When using a tool that emits renames in its sourcemap, the debugger maps renamed variables in all displayed views, and also rewrites evaluation requests to use the renamed identifiers, allowing near-source-level debugging of minified code.
### Conditional Exception Breakpoints
As in most debuggers, you can pause on caught exceptions, but you can also filter the exceptions you want to pause on by checking against the `error` object. In VS Code, you can do this by clicking the pencil icon in the Breakpoints view.
<details>
<summary>Preview</summary>
<img src="resources/readme/conditional-exception-breakpoints.png">
</details>
### Excluded Callers
If you have a breakpoint you want to pause on, but not when called from certain frames, you can right click on call frames in the stack trace view to "exclude caller" which prevents pausing on that breakpoint when the requested caller is in the stack trace.
<details>
<summary>Preview</summary>
<img src="resources/readme/exclude-caller.png">
</details>
### Step-in Targets
When paused on a location with multiple calls or expressions, the debugger supports the **Debug: Step Into Target** action that allows you to request a specific expression you wish to step into.

View File

@ -0,0 +1,234 @@
{
"add.eventListener.breakpoint": "Toggle Event Listener Breakpoints",
"add.xhr.breakpoint": "Add XHR/fetch Breakpoint",
"breakpoint.xhr.contains": "Break when URL contains:",
"breakpoint.xhr.any": "Any XHR/fetch",
"edit.xhr.breakpoint": "Edit XHR/fetch Breakpoint",
"attach.node.process": "Attach to Node Process",
"base.cascadeTerminateToConfigurations.label": "A list of debug sessions which, when this debug session is terminated, will also be stopped.",
"base.enableDWARF.label": "Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.",
"browser.address.description": "IP address or hostname the debugged browser is listening on.",
"browser.attach.port.description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.",
"browser.baseUrl.description": "Base URL to resolve paths baseUrl. baseURL is trimmed when mapping URLs to the files on disk. Defaults to the launch URL domain.",
"browser.browserAttachLocation.description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.",
"browser.browserLaunchLocation.description": "Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.",
"browser.cleanUp.description": "What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.",
"browser.cwd.description": "Optional working directory for the runtime executable.",
"browser.disableNetworkCache.description": "Controls whether to skip the network cache for each request",
"browser.env.description": "Optional dictionary of environment key/value pairs for the browser.",
"browser.file.description": "A local html file to open in the browser",
"browser.includeDefaultArgs.description": "Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.",
"browser.includeLaunchArgs.description": "Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.",
"browser.inspectUri.description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n",
"browser.launch.port.description": "Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.",
"browser.pathMapping.description": "A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk",
"browser.perScriptSourcemaps.description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.",
"browser.profileStartup.description": "If true, will start profiling soon as the process launches",
"browser.restart": "Whether to reconnect if the browser connection is closed",
"browser.revealPage": "Focus Tab",
"browser.runtimeArgs.description": "Optional arguments passed to the runtime executable.",
"browser.runtimeExecutable.description": "Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.",
"browser.runtimeExecutable.edge.description": "Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.",
"browser.server.description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.",
"browser.skipFiles.description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`",
"browser.smartStep.description": "Automatically step through unmapped lines in sourcemapped files. For example, code that TypeScript produces automatically when downcompiling async/await or other features.",
"browser.sourceMapPathOverrides.description": "A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk. See README for details.",
"browser.sourceMapRenames.description": "Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.",
"browser.sourceMaps.description": "Use JavaScript source maps (if they exist).",
"browser.targetSelection": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").",
"browser.timeout.description": "Retry for this number of milliseconds to connect to the browser. Default is 10000 ms.",
"browser.url.description": "Will search for a tab with this exact url and attach to it, if found",
"browser.urlFilter.description": "Will search for a page with this url and attach to it, if found. Can have * wildcards.",
"browser.userDataDir.description": "By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.",
"browser.vueComponentPaths": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.",
"browser.webRoot.description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"",
"chrome.attach.description": "Attach to an instance of Chrome already in debug mode",
"chrome.attach.label": "Chrome: Attach",
"chrome.label": "Web App (Chrome)",
"chrome.launch.description": "Launch Chrome to debug a URL",
"chrome.launch.label": "Chrome: Launch",
"commands.callersAdd.label": "Exclude Caller",
"commands.callersAdd.paletteLabel": "Exclude caller from pausing in the current location",
"commands.callersGoToCaller.label": "Go to caller location",
"commands.callersGoToTarget.label": "Go to target location",
"commands.callersRemove.label": "Remove excluded caller",
"commands.callersRemoveAll.label": "Remove all excluded callers",
"commands.disableSourceMapStepping.label": "Disable Source Mapped Stepping",
"commands.enableSourceMapStepping.label": "Enable Source Mapped Stepping",
"configuration.autoAttachMode.always": "Auto attach to every Node.js process launched in the terminal.",
"configuration.autoAttachMode.disabled": "Auto attach is disabled and not shown in status bar.",
"configuration.autoAttachMode.explicit": "Only auto attach when the `--inspect` is given.",
"configuration.autoAttachMode.smart": "Auto attach when running scripts that aren't in a node_modules folder.",
"configuration.autoAttachMode": "Configures which processes to automatically attach and debug when `#debug.node.autoAttach#` is on. A Node process launched with the `--inspect` flag will always be attached to, regardless of this setting.",
"configuration.autoAttachSmartPatterns": "Configures glob patterns for determining when to attach in \"smart\" `#debug.javascript.autoAttachFilter#` mode. `$KNOWN_TOOLS$` is replaced with a list of names of common test and code runners. [Read more on the VS Code docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-smart-patterns).",
"configuration.automaticallyTunnelRemoteServer": "When debugging a remote web app, configures whether to automatically tunnel the remote server to your local machine.",
"configuration.breakOnConditionalError": "Whether to stop when conditional breakpoints throw an error.",
"configuration.debugByLinkOptions": "Options used when debugging open links clicked from inside the JavaScript Debug Terminal. Can be set to \"off\" to disable this behavior, or \"always\" to enable debugging in all terminals.",
"configuration.defaultRuntimeExecutables": "The default `runtimeExecutable` used for launch configurations, if unspecified. This can be used to config custom paths to Node.js or browser installations.",
"configuration.npmScriptLensLocation": "Where a \"Run\" and \"Debug\" code lens should be shown in your npm scripts. It may be on \"all\", scripts, on \"top\" of the script section, or \"never\".",
"configuration.pickAndAttachOptions": "Default options used when debugging a process through the `Debug: Attach to Node.js Process` command",
"configuration.resourceRequestOptions": "Request options to use when loading resources, such as source maps, in the debugger. You may need to configure this if your sourcemaps require authentication or use a self-signed certificate, for instance. Options are used to create a request using the [`got`](https://github.com/sindresorhus/got) library.\n\nA common case to disable certificate verification can be done by passing `{ \"https\": { \"rejectUnauthorized\": false } }`.",
"configuration.terminalOptions": "Default launch options for the JavaScript debug terminal and npm scripts.",
"configuration.unmapMissingSources": "Configures whether sourcemapped file where the original file can't be read will automatically be unmapped. If this is false (default), a prompt is shown.",
"configuration.enableNetworkView": "Enables the experimental network view for targets that support it.",
"createDiagnostics.label": "Diagnose Breakpoint Problems",
"customDescriptionGenerator.description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ",
"customPropertiesGenerator.description": "Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181",
"debug.npm.edit": "Edit package.json",
"debug.npm.noScripts": "No npm scripts found in your package.json",
"debug.npm.noWorkspaceFolder": "You need to open a workspace folder to debug npm scripts.",
"debug.npm.parseError": "Could not read {0}: {1}",
"debug.npm.script": "Debug npm Script",
"debug.terminal.attach": "Attach to Node.js Terminal Process",
"debug.terminal.label": "JavaScript Debug Terminal",
"debug.terminal.program.description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.",
"debug.terminal.snippet.label": "Run \"npm start\" in a debug terminal",
"debug.terminal.toggleAuto": "Toggle Terminal Node.js Auto Attach",
"debug.terminal.welcome": {
"message": "[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.",
"comment": ["{Locked='](command:extension.js-debug.createDebuggerTerminal)'}"]
},
"debug.terminal.welcomeWithLink": {
"message": "[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.\n\n[Debug URL](command:extension.js-debug.debugLink)",
"comment": [
"{Locked='](command:extension.js-debug.createDebuggerTerminal)'}",
"{Locked='](command:extension.js-debug.debugLink)'}"
]
},
"debug.unverifiedBreakpoints": {
"message": "Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics).",
"comment": ["{Locked='](command:extension.js-debug.createDiagnostics)'}"]
},
"debugLink.label": "Open Link",
"edge.address.description": "When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.",
"edge.attach.description": "Attach to an instance of Edge already in debug mode",
"edge.attach.label": "Edge: Attach",
"edge.label": "Web App (Edge)",
"edge.launch.description": "Launch Edge to debug a URL",
"edge.launch.label": "Edge: Launch",
"edge.port.description": "When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.",
"edge.useWebView.attach.description": "An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"",
"edge.useWebView.launch.description": "When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.",
"enableContentValidation.description": "Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.",
"errors.timeout": "{0}: timeout after {1}ms",
"extension.description": "An extension for debugging Node.js programs and Chrome.",
"extensionHost.label": "VS Code Extension Development",
"extensionHost.launch.config.name": "Launch Extension",
"extensionHost.launch.debugWebviews": "Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.",
"extensionHost.launch.debugWebWorkerHost": "Configures whether we should try to attach to the web worker extension host.",
"extensionHost.launch.env.description": "Environment variables passed to the extension host.",
"extensionHost.launch.rendererDebugOptions": "Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.",
"extensionHost.launch.testConfiguration": "Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).",
"extensionHost.launch.testConfigurationLabel": "A single configuration to run from the file. If not specified, you may be asked to pick.",
"extensionHost.launch.runtimeExecutable.description": "Absolute path to VS Code.",
"extensionHost.launch.stopOnEntry.description": "Automatically stop the extension host after launch.",
"extensionHost.snippet.launch.description": "Launch a VS Code extension in debug mode",
"extensionHost.snippet.launch.label": "VS Code Extension Development",
"getDiagnosticLogs.label": "Save Diagnostic JS Debug Logs",
"longPredictionWarning.disable": "Don't show again",
"longPredictionWarning.message": "It's taking a while to configure your breakpoints. You can speed this up by updating the 'outFiles' in your launch.json.",
"longPredictionWarning.noFolder": "No workspace folder open.",
"longPredictionWarning.open": "Open launch.json",
"node.address.description": "TCP/IP address of process to be debugged. Default is 'localhost'.",
"node.attach.attachExistingChildren.description": "Whether to attempt to attach to already-spawned child processes.",
"node.attach.attachSpawnedProcesses.description": "Whether to set environment variables in the attached process to track spawned children.",
"node.attach.config.name": "Attach",
"node.attach.continueOnAttach": "If true, we'll automatically resume programs launched and waiting on `--inspect-brk`",
"node.attach.processId.description": "ID of process to attach to.",
"node.attach.restart.description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.",
"node.attachSimplePort.description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.",
"node.console.title": "Node Debug Console",
"node.disableOptimisticBPs.description": "Don't set breakpoints in any file until a sourcemap has been loaded for that file.",
"node.enableTurboSourcemaps.description": "Configures whether to use a new, faster mechanism for sourcemap discovery",
"node.killBehavior.description": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.",
"node.label": "Node.js",
"node.launch.args.description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.",
"node.launch.autoAttachChildProcesses.description": "Attach debugger to new child processes automatically.",
"node.launch.config.name": "Launch",
"node.launch.console.description": "Where to launch the debug target.",
"node.launch.console.externalTerminal.description": "External terminal that can be configured via user settings",
"node.launch.console.integratedTerminal.description": "VS Code's integrated terminal",
"node.launch.console.internalConsole.description": "VS Code Debug Console (which doesn't support to read input from a program)",
"node.launch.cwd.description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder",
"node.launch.env.description": "Environment variables passed to the program. The value `null` removes the variable from the environment.",
"node.launch.envFile.description": "Absolute path to a file containing environment variable definitions.",
"node.launch.logging.cdp": "Path to the log file for Chrome DevTools Protocol messages",
"node.launch.logging.dap": "Path to the log file for Debug Adapter Protocol messages",
"node.launch.logging": "Logging configuration",
"node.launch.outputCapture.description": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.",
"node.launch.program.description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.",
"node.launch.restart.description": "Try to restart the program if it exits with a non-zero exit code.",
"node.launch.runtimeArgs.description": "Optional arguments passed to the runtime executable.",
"node.launch.runtimeExecutable.description": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.",
"node.launch.runtimeSourcemapPausePatterns": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).",
"node.launch.runtimeVersion.description": "Version of `node` runtime to use. Requires `nvm`.",
"node.launch.useWSL.deprecation": "'useWSL' is deprecated and support for it will be dropped. Use the 'Remote - WSL' extension instead.",
"node.launch.useWSL.description": "Use Windows Subsystem for Linux.",
"node.localRoot.description": "Path to the local directory containing the program.",
"node.pauseForSourceMap.description": "Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.",
"node.port.description": "Debug port to attach to. Default is 9229.",
"node.processattach.config.name": "Attach to Process",
"node.profileStartup.description": "If true, will start profiling as soon as the process launches",
"node.remoteRoot.description": "Absolute path to the remote directory containing the program.",
"node.resolveSourceMapLocations.description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.",
"node.showAsyncStacks.description": "Show the async calls that led to the current call stack.",
"node.snippet.attach.description": "Attach to a running node program",
"node.snippet.attach.label": "Node.js: Attach",
"node.snippet.attachProcess.description": "Open process picker to select node process to attach to",
"node.snippet.attachProcess.label": "Node.js: Attach to Process",
"node.snippet.electron.description": "Debug the Electron main process",
"node.snippet.electron.label": "Node.js: Electron Main",
"node.snippet.gulp.description": "Debug gulp task (make sure to have a local gulp installed in your project)",
"node.snippet.gulp.label": "Node.js: Gulp task",
"node.snippet.launch.description": "Launch a node program in debug mode",
"node.snippet.launch.label": "Node.js: Launch Program",
"node.snippet.mocha.description": "Debug mocha tests",
"node.snippet.mocha.label": "Node.js: Mocha Tests",
"node.snippet.nodemon.description": "Use nodemon to relaunch a debug session on source changes",
"node.snippet.nodemon.label": "Node.js: Nodemon Setup",
"node.snippet.npm.description": "Launch a node program through an npm `debug` script",
"node.snippet.npm.label": "Node.js: Launch via npm",
"node.snippet.remoteattach.description": "Attach to the debug port of a remote node program",
"node.snippet.remoteattach.label": "Node.js: Attach to Remote Program",
"node.snippet.yo.description": "Debug yeoman generator (install by running `npm link` in project folder)",
"node.snippet.yo.label": "Node.js: Yeoman generator",
"node.sourceMapPathOverrides.description": "A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.",
"node.sourceMaps.description": "Use JavaScript source maps (if they exist).",
"node.stopOnEntry.description": "Automatically stop program after launch.",
"node.timeout.description": "Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.",
"node.versionHint.description": "Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.",
"node.websocket.address.description": "Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.",
"node.remote.host.header.description": "Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.",
"node.experimentalNetworking.description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.",
"openEdgeDevTools.label": "Open Browser Devtools",
"outFiles.description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.",
"pretty.print.script": "Pretty print for debugging",
"profile.start": "Take Performance Profile",
"profile.stop": "Stop Performance Profile",
"remove.eventListener.breakpoint.all": "Remove All Event Listener Breakpoints",
"remove.xhr.breakpoint.all": "Remove All XHR/fetch Breakpoints",
"remove.xhr.breakpoint": "Remove XHR/fetch Breakpoint",
"requestCDPProxy.label": "Request CDP Proxy for Debug Session",
"skipFiles.description": "An array of glob patterns for files to skip when debugging. The pattern `<node_internals>/**` matches all internal Node.js modules.",
"smartStep.description": "Automatically step through generated code that cannot be mapped back to the original source.",
"start.with.stop.on.entry": "Start Debugging and Stop on Entry",
"startWithStopOnEntry.label": "Start Debugging and Stop on Entry",
"timeouts.generalDescription.markdown": "Timeouts for several debugger operations.",
"timeouts.generalDescription": "Timeouts for several debugger operations.",
"timeouts.hoverEvaluation.description": "Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.",
"timeouts.sourceMaps.description": "Timeouts related to source maps operations.",
"timeouts.sourceMaps.sourceMapCumulativePause.description": "Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted",
"timeouts.sourceMaps.sourceMapMinPause.description": "Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed",
"toggle.skipping.this.file": "Toggle Skipping this File",
"trace.boolean.description": "Trace may be set to 'true' to write diagnostic logs to the disk.",
"trace.description": "Configures what diagnostic output is produced.",
"trace.logFile.description": "Configures where on disk logs are written.",
"trace.stdio.description": "Whether to return trace data from the launched application or browser.",
"workspaceTrust.description": "Trust is required to debug code in this workspace.",
"commands.networkViewRequest.label": "View Request as cURL",
"commands.networkOpenBody.label": "Open Response Body",
"commands.networkOpenBodyInHexEditor.label": "Open Response Body in Hex Editor",
"commands.networkReplayXHR.label": "Replay Request",
"commands.networkCopyURI.label": "Copy Request URL",
"commands.networkClear.label": "Clear Network Log"
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none">
<path d="M12.11745 5.343985c-.1003-.31445-.2507-.60384-.4512-.86816l1.3535-1.36036-.6152-.61523-1.3604 1.35352c-.2643-.20053-.5537-.35092-.8681-.45118-.3099-.10481-.6312-.15722-.9639-.15722-.4056 0-.79751.07747-1.17577.23242-.3737.15495-.7041.37598-.99121.66308l-1.54492 1.55176 4.3271 4.32715 1.5518-1.54492c.2871-.28711.5081-.61751.6631-.99121.1549-.37826.2324-.77018.2324-1.17578 0-.33269-.0524-.65397-.1572-.96387zm-.8887 1.80469c-.1094.26432-.2666.49902-.4717.7041l-.9297.92969-3.0898-3.08985.92969-.92968c.20508-.20508.43978-.36231.7041-.47168.26891-.11394.54911-.1709.84081-.1709.3008 0 .5833.05924.8477.17773.2643.11393.4944.27116.6904.47168.2005.19596.3577.42611.4717.69043.1185.26432.1777.54688.1777.84766 0 .29166-.057.57194-.1709.84082zM5.19253 5.93009L3.64077 7.47501c-.2871.28711-.50813.61979-.66308.99805-.15495.37369-.23242.76334-.23242 1.16894 0 .3327.05013.6563.15039.9707.10482.3099.25748.597.45801.8613l-1.35352 1.3604.61523.6152 1.36036-1.3535c.26432.2005.55143.3532.86132.458.31446.1003.63802.1504.97071.1504.4056 0 .79524-.0775 1.16894-.2324.37826-.155.71094-.376.99805-.6631l1.54492-1.5518-4.32715-4.32711zm1.44922 5.73531c-.26432.1094-.54232.1641-.83398.1641-.30078 0-.58561-.057-.8545-.1709-.26432-.1139-.49674-.2689-.69726-.4648-.19596-.2006-.35091-.433-.46484-.6973-.11394-.2689-.1709-.5537-.1709-.8545 0-.2917.05468-.5697.16406-.83398.11393-.26888.27344-.50586.47852-.71094l.92968-.92969 3.08985 3.08981-.92969.9297c-.20508.2051-.44206.3646-.71094.4785z" clip-rule="evenodd" fill="#89D185" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.6172 3.84375C13.5169 3.5293 13.3665 3.23991 13.166 2.97559L14.5195 1.61523L13.9043 1L12.5439 2.35352C12.2796 2.15299 11.9902 2.0026 11.6758 1.90234C11.3659 1.79753 11.0446 1.74512 10.7119 1.74512C10.3063 1.74512 9.91439 1.82259 9.53613 1.97754C9.16243 2.13249 8.83203 2.35352 8.54492 2.64062L7 4.19238L11.3271 8.51953L12.8789 6.97461C13.166 6.6875 13.387 6.3571 13.542 5.9834C13.6969 5.60514 13.7744 5.21322 13.7744 4.80762C13.7744 4.47493 13.722 4.15365 13.6172 3.84375ZM12.7285 5.64844C12.6191 5.91276 12.4619 6.14746 12.2568 6.35254L11.3271 7.28223L8.2373 4.19238L9.16699 3.2627C9.37207 3.05762 9.60677 2.90039 9.87109 2.79102C10.14 2.67708 10.4202 2.62012 10.7119 2.62012C11.0127 2.62012 11.2952 2.67936 11.5596 2.79785C11.8239 2.91178 12.054 3.06901 12.25 3.26953C12.4505 3.46549 12.6077 3.69564 12.7217 3.95996C12.8402 4.22428 12.8994 4.50684 12.8994 4.80762C12.8994 5.09928 12.8424 5.37956 12.7285 5.64844ZM7.9043 10.6416L9.3877 9.09668L8.77246 8.47461L7.28223 10.0264L5.42285 8.16699L6.91309 6.61523L6.29102 6L4.80762 7.54492L4.19238 6.92969L2.64062 8.47461C2.35352 8.76172 2.13249 9.0944 1.97754 9.47266C1.82259 9.84635 1.74512 10.236 1.74512 10.6416C1.74512 10.9743 1.79525 11.2979 1.89551 11.6123C2.00033 11.9222 2.15299 12.2093 2.35352 12.4736L1 13.834L1.61523 14.4492L2.97559 13.0957C3.23991 13.2962 3.52702 13.4489 3.83691 13.5537C4.15137 13.654 4.47493 13.7041 4.80762 13.7041C5.21322 13.7041 5.60286 13.6266 5.97656 13.4717C6.35482 13.3167 6.6875 13.0957 6.97461 12.8086L8.51953 11.2568L7.9043 10.6416ZM5.6416 12.665C5.37728 12.7744 5.09928 12.8291 4.80762 12.8291C4.50684 12.8291 4.22201 12.7721 3.95312 12.6582C3.6888 12.5443 3.45638 12.3893 3.25586 12.1934C3.0599 11.9928 2.90495 11.7604 2.79102 11.4961C2.67708 11.2272 2.62012 10.9424 2.62012 10.6416C2.62012 10.3499 2.6748 10.0719 2.78418 9.80762C2.89811 9.53874 3.05762 9.30176 3.2627 9.09668L4.19238 8.16699L7.28223 11.2568L6.35254 12.1865C6.14746 12.3916 5.91048 12.5511 5.6416 12.665Z" fill="#F48771"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22"><path d="M10.627348 2.1717149l-7.0539613 4.071557c-.263894.1520947-.4262258.4334435-.4262258.737793v8.1498341c0 .30451.1623318.585688.42589.738123l7.0539611 4.074917c.263727.152255.588725.152255.85262 0l7.055471-4.074917c.263726-.152435.426058-.433613.426058-.738123V6.9814049c0-.3046895-.162332-.5860383-.426226-.738133l-7.055639-4.071557c-.131779-.076202-.278835-.1141436-.426058-.1141436-.147055 0-.294278.038001-.42589.1141436" fill="#77ae64"/></svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.06065 3.85356L5.91421 6L5.2071 5.29289L6.49999 4H3.5C3.10218 4 2.72064 4.15804 2.43934 4.43934C2.15804 4.72065 2 5.10218 2 5.5C2 5.89783 2.15804 6.27936 2.43934 6.56066C2.72064 6.84197 3.10218 7 3.5 7H4V8H3.5C2.83696 8 2.20107 7.73661 1.73223 7.26777C1.26339 6.79893 1 6.16305 1 5.5C1 4.83696 1.26339 4.20108 1.73223 3.73224C2.20107 3.2634 2.83696 3 3.5 3H6.49999L6.49999 3H6.49996L6 2.50004V2.50001L5.2071 1.70711L5.91421 1L8.06065 3.14645L8.06065 3.85356ZM5 6.50003L5.91421 7.41424L6 7.32845V14H14V7H10V3H9.06065V2.73227L8.32838 2H11.2L11.5 2.1L14.9 5.6L15 6V14.5L14.5 15H5.5L5 14.5V9.00003V6.50003ZM11 3V6H13.9032L11 3Z" fill="#C5C5C5"/>
</svg>

After

Width:  |  Height:  |  Size: 796 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" id="svg5288"><style id="style5282"></style><path d="M8 7c-.1292196 0-.2582658.041082-.3572481.1396656L4.2265736 10.383234l-1.379877 1.304048c-.1979645.187314-.1979645.489646 0 .678603l1.379877 1.307992 3.4161783 3.243568c.1979645.187313.5165409.187313.7144875 0l1.3798772-1.308075c.197965-.187314.197965-.489644 0-.678601l-3.058934-2.904598 3.058934-2.9004888c.197965-.1873128.197965-.490466 0-.6786005L8.3572529 7.1390063c-.0990086-.0928345-.2280714-.1396657-.3572394-.1396657z" id="rect931" fill="#c5c5c5" stroke-width=".20000002" stroke-linecap="round" stroke-linejoin="round"/><path id="path8177" d="M14 7c.129219 0 .258265.041082.357248.1396656l3.416178 3.2435684 1.379877 1.304048c.197965.187314.197965.489646 0 .678603l-1.379877 1.307992-3.416178 3.243568c-.197965.187313-.516541.187313-.714488 0l-1.379877-1.308075c-.197965-.187314-.197965-.489644 0-.678601l3.058934-2.904598-3.058934-2.9004888c-.197965-.1873128-.197965-.490466 0-.6786005l1.379864-1.3080754c.09901-.092835.228071-.1396657.357239-.1396657z" fill="#c5c5c5" stroke-width=".20000002" stroke-linecap="round" stroke-linejoin="round"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M4.5 3L6 3V13H4.5V3ZM11.5 3V13H10V3L11.5 3Z" fill="#75BEFF"/>
</svg>

After

Width:  |  Height:  |  Size: 174 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.75 8C12.75 10.4853 10.7353 12.5 8.24999 12.5C6.41795 12.5 4.84162 11.4052 4.13953 9.83416L2.74882 10.399C3.67446 12.5186 5.78923 14 8.24999 14C11.5637 14 14.25 11.3137 14.25 8C14.25 4.68629 11.5637 2 8.24999 2C6.3169 2 4.59732 2.91418 3.5 4.3338V2.5H2V6.5L2.75 7.25H6.25V5.75H4.35201C5.13008 4.40495 6.58436 3.5 8.24999 3.5C10.7353 3.5 12.75 5.51472 12.75 8Z" fill="#89D185"/>
</svg>

After

Width:  |  Height:  |  Size: 533 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.5 2H4V2.24001L4 14L2.5 14L2.5 2ZM6 2.18094V14L15 8.06218L6 2.18094ZM12.3148 8.06218L7.50024 5L7.50024 11.1809L12.3148 8.06218Z" fill="#75BEFF"/>
</svg>

After

Width:  |  Height:  |  Size: 299 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" id="svg5288"><style id="style5282"></style><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" d="M7.1926933 5.992145l-.5055708 1.5400915.00292.195799-.096438-.17242L5.389588 6.4772592l-1.5780823.911781.3302284 1.5810047.1052054.1724202-.17242-.1052057-1.5839273-.3302283-.9117809 1.5810049 1.0783563 1.204018.1724201.09643-.1957991-.003-1.5371691.502649v1.826484l1.5371691.502648.1957991-.003-.1724201.09643-1.0783563 1.204019.9117809 1.581006 1.5839273-.333152.17242-.102284-.1052048.169497-.3302284 1.583928 1.5780823.911781 1.2040185-1.078356.096438-.172421-.00292.1958.5055709 1.537169h1.8235618l.505571-1.537169-.00292-.1958.096438.172421 1.2040182 1.078356 1.578083-.911781-.330229-1.583928-.105201-.169497.172421.102284 1.583926.333152.911781-1.581006-1.078356-1.204019-.17242-.09643.195799.003 1.537169-.502648v-1.826484l-1.537169-.502649-.195799.003.17242-.09643 1.078361-1.204018-.911781-1.5810049-1.583926.3302283-.172421.1052063.105201-.1724202.330219-1.5810053-1.578082-.911781-1.2040189 1.0783563-.096438.17242.00292-.195799-.505571-1.5400915zm.9117809 4.278357A2.7313908 2.730667 0 0 1 10.836895 13a2.7313908 2.730667 0 0 1-2.7324208 2.729497A2.7313908 2.730667 0 0 1 5.3720539 13a2.7313908 2.730667 0 0 1 2.7324203-2.729498zm3.2730598.683835l.09936.09937.05845.222096a3.8590267 3.8375958 0 0 0-.157808-.321462zm.452969 1.41443L12 13l-.523105 1.949224-1.426119 1.426118-1.9463018.523105-1.9463015-.523105-.6049317-.604931a3.8590267 3.8375958 0 0 0 2.4489502.873791 3.8590267 3.8375958 0 0 0 3.8604568-3.837078 3.8590267 3.8375958 0 0 0-.03214-.438357zm-7.1510519 2.378812a3.8590267 3.8375958 0 0 0 .3419178.490961l-.2893151-.289316z" id="path841" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#c5c5c5" stroke="#c5c5c5" stroke-width=".37795275" stroke-linecap="round" stroke-linejoin="round"/><path id="path864" d="M16.140381.81933236l-.299033.91092564.0018.1158085-.05702-.101982-.712146-.6378206-.933397.5392954.195319.9351248.06223.1019838-.102018-.062228-.936854-.1953215-.539295.9351247.637822.7121463.101986.057043-.115792-.00173-.909198.2973044v1.0803195l.909198.2973037.115792-.00173-.101986.057041-.637822.7121472.539295.9351253.936854-.1970525.101985-.060489-.06225.1002554-.195319.9368541.933395.5392956.712148-.6378219.05702-.1019871-.0018.115802.299032.9091983h1.07859l.299033-.9091983-.0018-.115802.05702.1019871.712148.6378219.933398-.5393059-.195319-.9368541-.06223-.1002554.101985.060489.93687.1970525.53938-.9351278-.637822-.7121474-.101985-.057043.115808.00173.909198-.2973037V4.4250074l-.909221-.2973044-.115808.0017299.101985-.0570409.637822-.7121462-.539295-.9351248-.936853.1953215-.101986.0622275.062229-.1019837.19532-.9351247-.933397-.5392956-.712145.6378208-.057023.1019837.00183-.1158086-.299043-.91092804zm.539295 2.53054074a1.6155491 1.6151211 0 0 1 1.616157 1.6144299 1.6155491 1.6151211 0 0 1-1.616157 1.6144288 1.6155491 1.6151211 0 0 1-1.616158-1.6144288 1.6155491 1.6151211 0 0 1 1.616158-1.6144299zm1.935933.4044716l.05877.058769.03458.1313667a2.2825175 2.2698416 0 0 0-.093316-.1901362zm.267919.8365998l.100255.3733585-.309408 1.1529168-.843508.8435132-1.151189.3094043-1.151188-.3094043-.3578-.3578018a2.2825175 2.2698416 0 0 0 1.448492.5168259 2.2825175 2.2698416 0 0 0 2.283362-2.2695357 2.2825175 2.2698416 0 0 0-.01895-.2592769zm-4.229667 1.4070076a2.2825175 2.2698416 0 0 0 .202241.2903909l-.171115-.1711227z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#c5c5c5" stroke="#c5c5c5" stroke-width=".18897636" stroke-linecap="round" stroke-linejoin="round"/></svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<circle cx="8" cy="8" r="6" fill="red" />
<circle cx="8" cy="8" r="8" fill="red" fill-opacity="0.2" />
</svg>

After

Width:  |  Height:  |  Size: 194 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.625" y="2.625" width="10.75" height="10.75" stroke="#F48771" stroke-width="1.25"/>
</svg>

After

Width:  |  Height:  |  Size: 196 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" id="svg5288">
<style id="style5282">
.icon-canvas-transparent,.icon-vs-out{opacity:0;fill:#f6f6f6}
</style>
<path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" d="M10.080333 4.077528l-.5055705 1.5400915.00292.195799-.096438-.17242L8.277228 4.5626422l-1.5780823.911781.3302284 1.5810047.1052054.1724202-.17242-.1052057-1.5839273-.3302283-.9117809 1.5810049 1.0783563 1.204018.1724201.09643-.1957991-.003-1.5371691.502649V12l1.5371691.502648.1957991-.003-.1724201.09643-1.0783563 1.204019.9117809 1.581006 1.5839273-.333152.17242-.102284-.1052048.169497-.3302284 1.583928 1.5780823.911781 1.2040185-1.078356.096438-.172421-.00292.1958.5055709 1.537169h1.823562l.505571-1.537169-.0029-.1958.09644.172421 1.204018 1.078356 1.578083-.911781-.330229-1.583928-.105201-.169497.172421.102284 1.583926.333152.911781-1.581006-1.078356-1.204019-.17242-.09643.195799.003L18 12v-1.826484l-1.537169-.502649-.195799.003.17242-.09643 1.078361-1.204018-.911781-1.5810049-1.583926.3302283-.172421.1052063.105201-.1724202.330219-1.5810053-1.578082-.911781-1.204019 1.0783563-.09644.17242.0029-.195799-.505571-1.5400915zm.911781 4.278357a2.7313908 2.730667 0 0 1 2.732421 2.729498 2.7313908 2.730667 0 0 1-2.732421 2.729497 2.7313908 2.730667 0 0 1-2.7324201-2.729497 2.7313908 2.730667 0 0 1 2.7324201-2.729498zm3.27306.683835l.09936.09937.05845.222096a3.8590267 3.8375958 0 0 0-.157808-.321462zm.452969 1.41443l.169497.631233-.523105 1.949224-1.426119 1.426118-1.946302.523105-1.9463013-.523105-.6049317-.604931a3.8590267 3.8375958 0 0 0 2.44895.873791 3.8590267 3.8375958 0 0 0 3.860457-3.837078 3.8590267 3.8375958 0 0 0-.03214-.438357zm-7.1510519 2.378812a3.8590267 3.8375958 0 0 0 .3419178.490961l-.2893151-.289316z" id="path841" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#c5c5c5" stroke="#c5c5c5" stroke-width=".37795275" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="path3643" cx="10.992129" cy="11.085297" r="1" fill="#c5c5c5" stroke-width=".18897638" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none">
<path d="M12.11745 5.343985c-.1003-.31445-.2507-.60384-.4512-.86816l1.3535-1.36036-.6152-.61523-1.3604 1.35352c-.2643-.20053-.5537-.35092-.8681-.45118-.3099-.10481-.6312-.15722-.9639-.15722-.4056 0-.79751.07747-1.17577.23242-.3737.15495-.7041.37598-.99121.66308l-1.54492 1.55176 4.3271 4.32715 1.5518-1.54492c.2871-.28711.5081-.61751.6631-.99121.1549-.37826.2324-.77018.2324-1.17578 0-.33269-.0524-.65397-.1572-.96387zm-.8887 1.80469c-.1094.26432-.2666.49902-.4717.7041l-.9297.92969-3.0898-3.08985.92969-.92968c.20508-.20508.43978-.36231.7041-.47168.26891-.11394.54911-.1709.84081-.1709.3008 0 .5833.05924.8477.17773.2643.11393.4944.27116.6904.47168.2005.19596.3577.42611.4717.69043.1185.26432.1777.54688.1777.84766 0 .29166-.057.57194-.1709.84082zM5.19253 5.93009L3.64077 7.47501c-.2871.28711-.50813.61979-.66308.99805-.15495.37369-.23242.76334-.23242 1.16894 0 .3327.05013.6563.15039.9707.10482.3099.25748.597.45801.8613l-1.35352 1.3604.61523.6152 1.36036-1.3535c.26432.2005.55143.3532.86132.458.31446.1003.63802.1504.97071.1504.4056 0 .79524-.0775 1.16894-.2324.37826-.155.71094-.376.99805-.6631l1.54492-1.5518-4.32715-4.32711zm1.44922 5.73531c-.26432.1094-.54232.1641-.83398.1641-.30078 0-.58561-.057-.8545-.1709-.26432-.1139-.49674-.2689-.69726-.4648-.19596-.2006-.35091-.433-.46484-.6973-.11394-.2689-.1709-.5537-.1709-.8545 0-.2917.05468-.5697.16406-.83398.11393-.26888.27344-.50586.47852-.71094l.92968-.92969 3.08985 3.08981-.92969.9297c-.20508.2051-.44206.3646-.71094.4785z" clip-rule="evenodd" fill="#388A34" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.6172 3.84375C13.5169 3.5293 13.3665 3.23991 13.166 2.97559L14.5195 1.61523L13.9043 1L12.5439 2.35352C12.2796 2.15299 11.9902 2.0026 11.6758 1.90234C11.3659 1.79753 11.0446 1.74512 10.7119 1.74512C10.3063 1.74512 9.91439 1.82259 9.53613 1.97754C9.16243 2.13249 8.83203 2.35352 8.54492 2.64062L7 4.19238L11.3271 8.51953L12.8789 6.97461C13.166 6.6875 13.387 6.3571 13.542 5.9834C13.6969 5.60514 13.7744 5.21322 13.7744 4.80762C13.7744 4.47493 13.722 4.15365 13.6172 3.84375ZM12.7285 5.64844C12.6191 5.91276 12.4619 6.14746 12.2568 6.35254L11.3271 7.28223L8.2373 4.19238L9.16699 3.2627C9.37207 3.05762 9.60677 2.90039 9.87109 2.79102C10.14 2.67708 10.4202 2.62012 10.7119 2.62012C11.0127 2.62012 11.2952 2.67936 11.5596 2.79785C11.8239 2.91178 12.054 3.06901 12.25 3.26953C12.4505 3.46549 12.6077 3.69564 12.7217 3.95996C12.8402 4.22428 12.8994 4.50684 12.8994 4.80762C12.8994 5.09928 12.8424 5.37956 12.7285 5.64844ZM7.9043 10.6416L9.3877 9.09668L8.77246 8.47461L7.28223 10.0264L5.42285 8.16699L6.91309 6.61523L6.29102 6L4.80762 7.54492L4.19238 6.92969L2.64062 8.47461C2.35352 8.76172 2.13249 9.0944 1.97754 9.47266C1.82259 9.84635 1.74512 10.236 1.74512 10.6416C1.74512 10.9743 1.79525 11.2979 1.89551 11.6123C2.00033 11.9222 2.15299 12.2093 2.35352 12.4736L1 13.834L1.61523 14.4492L2.97559 13.0957C3.23991 13.2962 3.52702 13.4489 3.83691 13.5537C4.15137 13.654 4.47493 13.7041 4.80762 13.7041C5.21322 13.7041 5.60286 13.6266 5.97656 13.4717C6.35482 13.3167 6.6875 13.0957 6.97461 12.8086L8.51953 11.2568L7.9043 10.6416ZM5.6416 12.665C5.37728 12.7744 5.09928 12.8291 4.80762 12.8291C4.50684 12.8291 4.22201 12.7721 3.95312 12.6582C3.6888 12.5443 3.45638 12.3893 3.25586 12.1934C3.0599 11.9928 2.90495 11.7604 2.79102 11.4961C2.67708 11.2272 2.62012 10.9424 2.62012 10.6416C2.62012 10.3499 2.6748 10.0719 2.78418 9.80762C2.89811 9.53874 3.05762 9.30176 3.2627 9.09668L4.19238 8.16699L7.28223 11.2568L6.35254 12.1865C6.14746 12.3916 5.91048 12.5511 5.6416 12.665Z" fill="#A1260D"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22"><path d="M10.627348 2.1717149l-7.0539613 4.071557c-.263894.1520947-.4262258.4334435-.4262258.737793v8.1498341c0 .30451.1623318.585688.42589.738123l7.0539611 4.074917c.263727.152255.588725.152255.85262 0l7.055471-4.074917c.263726-.152435.426058-.433613.426058-.738123V6.9814049c0-.3046895-.162332-.5860383-.426226-.738133l-7.055639-4.071557c-.131779-.076202-.278835-.1141436-.426058-.1141436-.147055 0-.294278.038001-.42589.1141436" fill="#77ae64"/></svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.06065 3.85356L5.91421 6L5.2071 5.29289L6.49999 4H3.5C3.10218 4 2.72064 4.15804 2.43934 4.43934C2.15804 4.72065 2 5.10218 2 5.5C2 5.89783 2.15804 6.27936 2.43934 6.56066C2.72064 6.84197 3.10218 7 3.5 7H4V8H3.5C2.83696 8 2.20107 7.73661 1.73223 7.26777C1.26339 6.79893 1 6.16305 1 5.5C1 4.83696 1.26339 4.20108 1.73223 3.73224C2.20107 3.2634 2.83696 3 3.5 3H6.49999L6.49999 3H6.49996L6 2.50004V2.50001L5.2071 1.70711L5.91421 1L8.06065 3.14645L8.06065 3.85356ZM5 6.50003L5.91421 7.41424L6 7.32845V14H14V7H10V3H9.06065V2.73227L8.32838 2H11.2L11.5 2.1L14.9 5.6L15 6V14.5L14.5 15H5.5L5 14.5V9.00003V6.50003ZM11 3V6H13.9032L11 3Z" fill="#424242"/>
</svg>

After

Width:  |  Height:  |  Size: 796 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" id="svg5288"><style id="style5282"></style><path d="M8 7c-.1292196 0-.2582658.041082-.3572481.1396656L4.2265736 10.383234l-1.379877 1.304048c-.1979645.187314-.1979645.489646 0 .678603l1.379877 1.307992 3.4161783 3.243568c.1979645.187313.5165409.187313.7144875 0l1.3798772-1.308075c.197965-.187314.197965-.489644 0-.678601l-3.058934-2.904598 3.058934-2.9004888c.197965-.1873128.197965-.490466 0-.6786005L8.3572529 7.1390063c-.0990086-.0928345-.2280714-.1396657-.3572394-.1396657z" id="rect931" fill="gray" stroke-width=".20000002" stroke-linecap="round" stroke-linejoin="round"/><path id="path8177" d="M14 7c.129219 0 .258265.041082.357248.1396656l3.416178 3.2435684 1.379877 1.304048c.197965.187314.197965.489646 0 .678603l-1.379877 1.307992-3.416178 3.243568c-.197965.187313-.516541.187313-.714488 0l-1.379877-1.308075c-.197965-.187314-.197965-.489644 0-.678601l3.058934-2.904598-3.058934-2.9004888c-.197965-.1873128-.197965-.490466 0-.6786005l1.379864-1.3080754c.09901-.092835.228071-.1396657.357239-.1396657z" fill="gray" stroke-width=".20000002" stroke-linecap="round" stroke-linejoin="round"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M4.5 3L6 3V13H4.5V3ZM11.5 3V13H10V3L11.5 3Z" fill="#007ACC"/>
</svg>

After

Width:  |  Height:  |  Size: 173 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.75 8C12.75 10.4853 10.7353 12.5 8.24999 12.5C6.41795 12.5 4.84162 11.4052 4.13953 9.83416L2.74882 10.399C3.67446 12.5186 5.78923 14 8.24999 14C11.5637 14 14.25 11.3137 14.25 8C14.25 4.68629 11.5637 2 8.24999 2C6.3169 2 4.59732 2.91418 3.5 4.3338V2.5H2V6.5L2.75 7.25H6.25V5.75H4.35201C5.13008 4.40495 6.58436 3.5 8.24999 3.5C10.7353 3.5 12.75 5.51472 12.75 8Z" fill="#388A34"/>
</svg>

After

Width:  |  Height:  |  Size: 533 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.5 2H4V2.24001L4 14L2.5 14L2.5 2ZM6 2.18094V14L15 8.06218L6 2.18094ZM12.3148 8.06218L7.50024 5L7.50024 11.1809L12.3148 8.06218Z" fill="#007ACC"/>
</svg>

After

Width:  |  Height:  |  Size: 299 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" id="svg5288"><style id="style5282"></style><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" d="M7.1926933 5.992145l-.5055708 1.5400915.00292.195799-.096438-.17242L5.389588 6.4772592l-1.5780823.911781.3302284 1.5810047.1052054.1724202-.17242-.1052057-1.5839273-.3302283-.9117809 1.5810049 1.0783563 1.204018.1724201.09643-.1957991-.003-1.5371691.502649v1.826484l1.5371691.502648.1957991-.003-.1724201.09643-1.0783563 1.204019.9117809 1.581006 1.5839273-.333152.17242-.102284-.1052048.169497-.3302284 1.583928 1.5780823.911781 1.2040185-1.078356.096438-.172421-.00292.1958.5055709 1.537169h1.8235618l.505571-1.537169-.00292-.1958.096438.172421 1.2040182 1.078356 1.578083-.911781-.330229-1.583928-.105201-.169497.172421.102284 1.583926.333152.911781-1.581006-1.078356-1.204019-.17242-.09643.195799.003 1.537169-.502648v-1.826484l-1.537169-.502649-.195799.003.17242-.09643 1.078361-1.204018-.911781-1.5810049-1.583926.3302283-.172421.1052063.105201-.1724202.330219-1.5810053-1.578082-.911781-1.2040189 1.0783563-.096438.17242.00292-.195799-.505571-1.5400915zm.9117809 4.278357A2.7313908 2.730667 0 0 1 10.836895 13a2.7313908 2.730667 0 0 1-2.7324208 2.729497A2.7313908 2.730667 0 0 1 5.3720539 13a2.7313908 2.730667 0 0 1 2.7324203-2.729498zm3.2730598.683835l.09936.09937.05845.222096a3.8590267 3.8375958 0 0 0-.157808-.321462zm.452969 1.41443L12 13l-.523105 1.949224-1.426119 1.426118-1.9463018.523105-1.9463015-.523105-.6049317-.604931a3.8590267 3.8375958 0 0 0 2.4489502.873791 3.8590267 3.8375958 0 0 0 3.8604568-3.837078 3.8590267 3.8375958 0 0 0-.03214-.438357zm-7.1510519 2.378812a3.8590267 3.8375958 0 0 0 .3419178.490961l-.2893151-.289316z" id="path841" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="gray" stroke="gray" stroke-width=".37795275" stroke-linecap="round" stroke-linejoin="round"/><path id="path864" d="M16.140381.81933236l-.299033.91092564.0018.1158085-.05702-.101982-.712146-.6378206-.933397.5392954.195319.9351248.06223.1019838-.102018-.062228-.936854-.1953215-.539295.9351247.637822.7121463.101986.057043-.115792-.00173-.909198.2973044v1.0803195l.909198.2973037.115792-.00173-.101986.057041-.637822.7121472.539295.9351253.936854-.1970525.101985-.060489-.06225.1002554-.195319.9368541.933395.5392956.712148-.6378219.05702-.1019871-.0018.115802.299032.9091983h1.07859l.299033-.9091983-.0018-.115802.05702.1019871.712148.6378219.933398-.5393059-.195319-.9368541-.06223-.1002554.101985.060489.93687.1970525.53938-.9351278-.637822-.7121474-.101985-.057043.115808.00173.909198-.2973037V4.4250074l-.909221-.2973044-.115808.0017299.101985-.0570409.637822-.7121462-.539295-.9351248-.936853.1953215-.101986.0622275.062229-.1019837.19532-.9351247-.933397-.5392956-.712145.6378208-.057023.1019837.00183-.1158086-.299043-.91092804zm.539295 2.53054074a1.6155491 1.6151211 0 0 1 1.616157 1.6144299 1.6155491 1.6151211 0 0 1-1.616157 1.6144288 1.6155491 1.6151211 0 0 1-1.616158-1.6144288 1.6155491 1.6151211 0 0 1 1.616158-1.6144299zm1.935933.4044716l.05877.058769.03458.1313667a2.2825175 2.2698416 0 0 0-.093316-.1901362zm.267919.8365998l.100255.3733585-.309408 1.1529168-.843508.8435132-1.151189.3094043-1.151188-.3094043-.3578-.3578018a2.2825175 2.2698416 0 0 0 1.448492.5168259 2.2825175 2.2698416 0 0 0 2.283362-2.2695357 2.2825175 2.2698416 0 0 0-.01895-.2592769zm-4.229667 1.4070076a2.2825175 2.2698416 0 0 0 .202241.2903909l-.171115-.1711227z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="gray" stroke="gray" stroke-width=".18897636" stroke-linecap="round" stroke-linejoin="round"/></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.625" y="2.625" width="10.75" height="10.75" stroke="#A1260D" stroke-width="1.25"/>
</svg>

After

Width:  |  Height:  |  Size: 196 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" id="svg5288">
<style id="style5282">
.icon-canvas-transparent,.icon-vs-out{opacity:0;fill:#f6f6f6}
</style>
<path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" d="M10.080333 4.077528l-.5055705 1.5400915.00292.195799-.096438-.17242L8.277228 4.5626422l-1.5780823.911781.3302284 1.5810047.1052054.1724202-.17242-.1052057-1.5839273-.3302283-.9117809 1.5810049 1.0783563 1.204018.1724201.09643-.1957991-.003-1.5371691.502649V12l1.5371691.502648.1957991-.003-.1724201.09643-1.0783563 1.204019.9117809 1.581006 1.5839273-.333152.17242-.102284-.1052048.169497-.3302284 1.583928 1.5780823.911781 1.2040185-1.078356.096438-.172421-.00292.1958.5055709 1.537169h1.823562l.505571-1.537169-.0029-.1958.09644.172421 1.204018 1.078356 1.578083-.911781-.330229-1.583928-.105201-.169497.172421.102284 1.583926.333152.911781-1.581006-1.078356-1.204019-.17242-.09643.195799.003L18 12v-1.826484l-1.537169-.502649-.195799.003.17242-.09643 1.078361-1.204018-.911781-1.5810049-1.583926.3302283-.172421.1052063.105201-.1724202.330219-1.5810053-1.578082-.911781-1.204019 1.0783563-.09644.17242.0029-.195799-.505571-1.5400915zm.911781 4.278357a2.7313908 2.730667 0 0 1 2.732421 2.729498 2.7313908 2.730667 0 0 1-2.732421 2.729497 2.7313908 2.730667 0 0 1-2.7324201-2.729497 2.7313908 2.730667 0 0 1 2.7324201-2.729498zm3.27306.683835l.09936.09937.05845.222096a3.8590267 3.8375958 0 0 0-.157808-.321462zm.452969 1.41443l.169497.631233-.523105 1.949224-1.426119 1.426118-1.946302.523105-1.9463013-.523105-.6049317-.604931a3.8590267 3.8375958 0 0 0 2.44895.873791 3.8590267 3.8375958 0 0 0 3.860457-3.837078 3.8590267 3.8375958 0 0 0-.03214-.438357zm-7.1510519 2.378812a3.8590267 3.8375958 0 0 0 .3419178.490961l-.2893151-.289316z" id="path841" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="gray" stroke="gray" stroke-width=".37795275" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="path3643" cx="10.992129" cy="11.085297" r="1" fill="gray" stroke="gray" stroke-width=".18897638" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,4 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="22" cy="22" r="22" fill="#F7DF1E"/>
<path d="M12.032 23.008V22.924V23.008ZM20.516 23.82L16.988 20.264L18.164 19.06L21.916 22.84L25.584 19.144L26.788 20.32L23.232 23.876L26.788 27.432L25.584 28.608L21.86 24.828L18.164 28.524L16.988 27.348L20.516 23.82ZM27.768 13.824V15H29.336L32.64 11.696L33.816 12.872L30.68 16.008L30.708 16.092C31.4173 17.94 31.7627 19.8533 31.744 21.832C31.744 22.224 31.7347 22.616 31.716 23.008V23.092H35.832V24.744H31.492V24.828C31.1373 26.7507 30.4747 28.468 29.504 29.98L29.448 30.092L33.424 34.124L32.248 35.3L28.44 31.464L28.328 31.576C27.432 32.5653 26.4333 33.3307 25.332 33.872C24.2493 34.4133 23.1013 34.684 21.888 34.684C20.6933 34.684 19.536 34.404 18.416 33.844C17.3147 33.284 16.3253 32.5 15.448 31.492L15.336 31.352L11.584 35.104L10.408 33.928L14.328 30.008L14.272 29.896C13.3387 28.384 12.6947 26.6947 12.34 24.828V24.772H8V23.092H12.116V23.008C12.0973 22.616 12.088 22.224 12.088 21.832C12.088 19.8347 12.424 17.9493 13.096 16.176L13.124 16.064L9.904 12.844L11.08 11.668L14.412 15H16.092V13.824C16.092 12.7787 16.3533 11.808 16.876 10.912C17.3987 10.016 18.0987 9.30666 18.976 8.784C19.872 8.26133 20.852 8 21.916 8C22.98 8 23.9507 8.26133 24.828 8.784C25.724 9.30666 26.4333 10.016 26.956 10.912C27.4973 11.808 27.768 12.7787 27.768 13.824ZM17.744 13.824V15H26.088V13.824C26.088 13.0773 25.9013 12.3867 25.528 11.752C25.1547 11.1173 24.6507 10.6133 24.016 10.24C23.3813 9.86667 22.6813 9.68 21.916 9.68C21.1693 9.68 20.4693 9.86667 19.816 10.24C19.1813 10.6133 18.6773 11.1173 18.304 11.752C17.9307 12.3867 17.744 13.0773 17.744 13.824ZM29.196 16.792L29.14 16.68H14.692L14.636 16.792C14.0387 18.416 13.7493 20.096 13.768 21.832C13.768 23.4 13.992 24.9027 14.44 26.34C14.888 27.684 15.5133 28.8693 16.316 29.896C17.0813 30.904 17.94 31.6787 18.892 32.22C19.8627 32.7427 20.8707 33.004 21.916 33.004C22.9613 33.004 23.96 32.7427 24.912 32.22C25.8827 31.6787 26.76 30.904 27.544 29.896C28.328 28.8693 28.944 27.684 29.392 26.34C29.8587 24.9027 30.092 23.4 30.092 21.832C30.092 20.04 29.7933 18.36 29.196 16.792Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
*{margin:0;padding:0}:root{--subtle-bg: rgba(0, 0, 0, .05)}body{color:var(--vscode-foreground)}a{cursor:pointer;text-decoration:underline}a:hover{text-decoration:none}.back{padding:1rem 0;display:inline-block}.intro{display:flex;height:100vh;justify-content:center;align-items:center}.intro>div{overflow:hidden;box-shadow:0 5px 30px #0003;border:1px solid var(--vscode-notebook-focusedCellBorder)}.intro>div,.content,.source-container.expanded{background:var(--vscode-notebook-focusedCellBackground);border:1px solid var(--vscode-notebook-focusedCellBorder)}.intro header{background:var(--subtle-bg);padding:1rem}.intro-content{padding:1rem}.intro-content li{list-style-type:none}.intro-content li a{display:block;margin-top:.5rem;padding:.5rem}.intro-content li a:hover{background:var(--subtle-bg)}.content{margin:2rem;padding:1rem}.source-filter{display:block;width:100%;padding:.5rem;font-size:1.1rem;margin-bottom:.5rem;background:var(--vscode-input-background);color:var(--vscode-input-foreground);border:none}.source-container{padding:.5rem}.source-container code{word-break:break-all}.source-container.expanded+.source-container.expanded{border-top:none}.source-container h2{font-family:var(--editor-font-family);font-weight:300;cursor:pointer;opacity:.8;font-size:1.2rem;user-select:none}.source-container h2:hover{opacity:1}.source-container.expanded h2{margin-bottom:.5rem}.source-data-grid{display:grid;grid-template-columns:25% 75%;row-gap:.5rem;padding:.5rem .25rem}.source-data-grid li{list-style-type:none}.source-breadcrumbs{padding:.5rem .25rem .75rem;border-bottom:1px solid rgba(0,0,0,.1)}.source-breadcrumbs li{display:inline;list-style-type:none}.bp-tracing code{font-size:var(--vscode-editor-font-size)}.bp-tracing li{margin:1rem 0 1rem 1rem}.bp-tracing p{margin:.5rem 0}.bp-tracing li ul{margin:.5rem 1rem}.decision-buttons{margin:.5rem 0}button{background:var(--vscode-button-background);color:var(--vscode-button-foreground);border:0;padding:.3rem .6rem;cursor:pointer}button:hover,button:focus{background:var(--vscode-button-hoverBackground)}.decision-buttons button+button{margin-left:.25rem}.decision-buttons button.active{background:var(--vscode-button-hoverBackground)}.text-diff .add{background:var(--vscode-diffEditor-insertedTextBackground);border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.text-diff .rm{background:var(--vscode-diffEditor-removedTextBackground);text-decoration:line-through;border:1px solid var(--vscode-diffEditor-removedTextBorder)}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
"use strict";(()=>{var W=Object.create;var H=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var d=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var L=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of C(t))!j.call(e,s)&&s!==r&&H(e,s,{get:()=>t[s],enumerable:!(n=k(t,s))||n.enumerable});return e};var I=(e,t,r)=>(r=e!=null?W(N(e)):{},L(t||!e||!e.__esModule?H(r,"default",{value:e,enumerable:!0}):r,e));var O=F((me,u)=>{var T={};T.__wbindgen_placeholder__=u.exports;var c,{TextDecoder:G}=d("util"),M=new G("utf-8",{ignoreBOM:!0,fatal:!0});M.decode();var f=null;function x(){return(f===null||f.buffer!==c.memory.buffer)&&(f=new Uint8Array(c.memory.buffer)),f}function J(e,t){return M.decode(x().subarray(e,e+t))}var B=0;function q(e,t){let r=t(e.length*1);return x().set(e,r/1),B=e.length,r}var g=class e{static __wrap(t){let r=Object.create(e.prototype);return r.ptr=t,r}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();c.__wbg_hasher_free(t)}constructor(){var t=c.hasher_new();return e.__wrap(t)}update(t){var r=q(t,c.__wbindgen_malloc),n=B;c.hasher_update(this.ptr,r,n)}digest(t){try{var r=q(t,c.__wbindgen_malloc),n=B;c.hasher_digest(this.ptr,r,n)}finally{t.set(x().subarray(r/1,r/1+n)),c.__wbindgen_free(r,n*1)}}};u.exports.Hasher=g;u.exports.__wbindgen_throw=function(e,t){throw new Error(J(e,t))};var K=d("path").join(__dirname,"chromehash_bg.wasm"),Q=d("fs").readFileSync(K),X=new WebAssembly.Module(Q),Y=new WebAssembly.Instance(X,T);c=Y.exports;u.exports.__wasm=c});var U=F(l=>{"use strict";Object.defineProperty(l,"__esModule",{value:!0});l.shaHashFile=l.hashFile=l.shaHash=l.hash=void 0;var D=O(),S=d("fs"),P=d("string_decoder"),E=d("crypto"),y=Buffer.alloc(4*5),Z=e=>{let t=new D.Hasher;return t.update(te(e)),t.digest(y),t.free(),y.toString("hex")};l.hash=Z;var $=e=>{let t=(0,E.createHash)("sha256");return t.update(re(e)),t.digest("hex")};l.shaHash=$;var z=async(e,t=4096)=>{t%2===1&&t++;let r=Buffer.alloc(t),n=new D.Hasher,s;try{s=await S.promises.open(e,"r");let a=await s.read(r,0,r.length,null),i=r.slice(0,a.bytesRead);if(w(i))for(n.update(i.slice(2));a.bytesRead===r.length;)a=await s.read(r,0,r.length,null),n.update(r.slice(0,a.bytesRead));else if(_(i))for(n.update(i.slice(2).swap16());a.bytesRead===r.length;)a=await s.read(r,0,r.length,null),n.update(r.slice(0,a.bytesRead).swap16());else if(m(i)){let o=new P.StringDecoder("utf8");for(n.update(Buffer.from(o.write(i.slice(3)),"utf16le"));a.bytesRead===r.length;)a=await s.read(r,0,r.length,null),n.update(Buffer.from(o.write(r.slice(0,a.bytesRead)),"utf16le"))}else{let o=new P.StringDecoder("utf8");for(n.update(Buffer.from(o.write(i),"utf16le"));a.bytesRead===r.length;)a=await s.read(r,0,r.length,null),n.update(Buffer.from(o.write(r.slice(0,a.bytesRead)),"utf16le"))}return n.digest(y),y.toString("hex")}finally{n.free(),s!==void 0&&await s.close()}};l.hashFile=z;var p={stream:!0},ee=async(e,t=4096)=>{t%2===1&&t++;let r=Buffer.alloc(t),n=(0,E.createHash)("sha256"),s;try{s=await S.promises.open(e,"r");let a=await s.read(r,0,r.length,null),i=r.slice(0,a.bytesRead);if(w(i)){let o=new TextDecoder("utf-16le");for(n.update(o.decode(i.slice(2),p));a.bytesRead>0;)a=await s.read(r,0,r.length,null),n.update(o.decode(r.slice(0,a.bytesRead),p))}else if(_(i)){let o=new TextDecoder("utf-16be");for(n.update(o.decode(i.slice(2),p));a.bytesRead>0;)a=await s.read(r,0,r.length,null),n.update(o.decode(r.slice(0,a.bytesRead),p))}else if(m(i))for(n.update(i.slice(3));a.bytesRead>0;)a=await s.read(r,0,r.length,null),n.update(r.slice(0,a.bytesRead));else for(n.update(i);a.bytesRead>0;)a=await s.read(r,0,r.length,null),n.update(r.slice(0,a.bytesRead));return n.digest("hex")}finally{await s?.close()}};l.shaHashFile=ee;var m=e=>e.length>=3&&e[0]===239&&e[1]===187&&e[2]===191,w=e=>e.length>=2&&e[0]===255&&e[1]===254,_=e=>e.length>=2&&e[0]===254&&e[1]===255,te=e=>m(e)?v(e.slice(3)):w(e)?e.slice(2):_(e)?e.slice(2).swap16():v(e),re=e=>m(e)?e.slice(3):w(e)?new TextEncoder().encode(new TextDecoder("utf-16le").decode(e.slice(2))):_(e)?new TextEncoder().encode(new TextDecoder("utf-16be").decode(e.slice(2))):e,v=e=>Buffer.from(e.toString("utf8"),"utf16le")});var h=I(U()),b=d("fs"),R=d("worker_threads"),se=(s=>(s[s.HashFile=0]="HashFile",s[s.HashBytes=1]="HashBytes",s[s.VerifyFile=2]="VerifyFile",s[s.VerifyBytes=3]="VerifyBytes",s))(se||{}),ne=(r=>(r[r.Chromehash=0]="Chromehash",r[r.SHA256=1]="SHA256",r))(ne||{}),ae=Buffer.from("(function (exports, require, module, __filename, __dirname) { "),ie=Buffer.from(`
});`),oe=Buffer.from("(function (exports, require, module, __filename, __dirname, process, global, Buffer) { return function (exports, require, module, __filename, __dirname) { "),ce=Buffer.from(`
}.call(this, exports, require, module, __filename, __dirname); });`),le=Buffer.from("#!"),de=Buffer.from("\r")[0],he=Buffer.from(`
`)[0],ue=(e,t)=>e.slice(0,t.length).equals(t),V=(e,t,r)=>{let n=t.length===64?h.shaHash:h.hash;if(n(e)===t)return!0;if(r){if(ue(e,le)){let s=e.indexOf(he);return e[s-1]===de&&s--,n(e.slice(s))===t}if(n(Buffer.concat([ae,e,ie]))===t)return!0}return n(Buffer.concat([oe,e,ce]))===t},A=e=>e instanceof Buffer?e:Buffer.from(e,"utf-8");async function fe(e){switch(e.type){case 0:try{let t=await b.promises.readFile(e.file);return{id:e.id,hash:e.mode===0?(0,h.hash)(t):(0,h.shaHash)(t)}}catch{return{id:e.id}}case 1:try{return{id:e.id,hash:(0,h.hash)(A(e.data))}}catch{return{id:e.id}}case 2:try{let t=await b.promises.readFile(e.file);return{id:e.id,matches:V(t,e.expected,e.checkNode)}}catch{return{id:e.id,matches:!1}}case 3:try{return{id:e.id,matches:V(A(e.data),e.expected,e.checkNode)}}catch{return{id:e.id,matches:!1}}}}function pe(e){e.on("message",t=>{fe(t).then(r=>e.postMessage(r))})}R.parentPort&&pe(R.parentPort);})();

View File

@ -0,0 +1 @@
"use strict";(()=>{var d=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var p=d("worker_threads");var x=d("./vendor/acorn.js"),f=d("./vendor/acorn-loose.js");var m={ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],AwaitExpression:["argument"],BinaryExpression:["left","right"],BlockStatement:["body"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],ExportAllDeclaration:["exported","source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],ForStatement:["init","test","update","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportExpression:["source"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXClosingFragment:[],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXFragment:["openingFragment","children","closingFragment"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","attributes"],JSXOpeningFragment:[],JSXSpreadAttribute:["argument"],JSXSpreadChild:["expression"],JSXText:[],LabeledStatement:["label","body"],Literal:[],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],StaticBlock:["body"],Super:[],SwitchCase:["test","consequent"],SwitchStatement:["discriminant","cases"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},b=Object.keys(m);for(let t of b)Object.freeze(m[t]);Object.freeze(m);var u=m;var h={ecmaVersion:"latest",locations:!0,allowAwaitOutsideFunction:!0,allowImportExportEverywhere:!0,allowReserved:!0,allowReturnOutsideFunction:!0};var S=(t,r=!1)=>(r?x.parse:f.parse)(t,h);var g=(t,r)=>{y(t,r)};var y=(t,r,s)=>{if(!t)return;let n=r.enter(t,s);if(n===0)return 0;if(n&&typeof n=="object")return n;if(n===1)return;let i=u[t.type];if(i)for(let a of i){let e=t[a];if(e instanceof Array)for(let[o,l]of e.entries()){let c=y(l,r,t);if(c===0)return 0;c&&typeof c=="object"&&(e[o]=c.replace)}else if(e){let o=y(e,r,t);if(o===0)return 0;o&&typeof o=="object"&&(t[a]=o.replace)}}r.leave?.(t)};function k(t){let r=S(t),s=[],n=(e,{loc:o}=e,{loc:l}=e)=>{if(!o||!l)throw new Error("should include locations");s.push({start:o.start,end:l.end,depth:a.length}),a.push(e)},i=new Set,a=[];return g(r,{enter:e=>{switch(e.type){case"FunctionDeclaration":case"ArrowFunctionExpression":n(e,e.params[0]||e.body,e.body),i.add(e.body);break;case"Program":n(e);break;case"ForStatement":case"ForOfStatement":case"ForInStatement":n(e),i.add(e.body);break;case"BlockStatement":i.has(e)||n(e);break}},leave:e=>{e===a[a.length-1]&&a.pop()}}),s}p.isMainThread||p.parentPort?.postMessage(k(p.workerData));})();

View File

@ -0,0 +1,13 @@
#!/bin/bash
ROOT_PID=$1
SIGNAL=$2
terminateTree() {
for cpid in $(pgrep -P $1); do
terminateTree $cpid
done
kill -$SIGNAL $1 > /dev/null 2>&1
}
terminateTree $ROOT_PID

View File

@ -0,0 +1,93 @@
{
"name": "WebAssembly Text Format",
"scopeName": "text.wat",
"patterns": [
{ "include": "#block-comment" },
{ "include": "#line-comment" },
{ "include": "#expr" }
],
"repository": {
"op": {
"match": "[a-zA-Z0-9!#$%&`*+\\-/:<=>?@\\\\^_|~\\.]+",
"name": "keyword"
},
"id": {
"match": "\\$[A-Za-z0-9!#$%&`*+\\-/:<=>?@\\\\^_|~\\.]+",
"name": "variable"
},
"decimal-number": {
"match": "\\b[+-]?[0-9_]+(.[0-9_]+)?([Ee][+-][0-9_]+)?\\b",
"name": "constant.numeric"
},
"hexadecimal-number": {
"match": "\\b[+-]?0x[0-9a-fA-F_]+(.[0-9a-fA-F_]+)?([pP][+-][0-9a-fA-F_]+)?\\b",
"name": "constant.numeric"
},
"number-special": {
"match": "\\b[+-]?(inf|nan(:0x[0-9]+)?)\\b",
"name": "constant.numeric"
},
"memarg": {
"match": "\\b(offset|align)(=)([0-9_]+)\\b",
"name": "keyword",
"captures": {
"1": { "name": "keyword" },
"2": { "name": "keyword.operator.arithmetic" },
"3": { "name": "constant.numeric" }
}
},
"any-number": {
"patterns": [
{ "include": "#decimal-number" },
{ "include": "#hexadecimal-number" },
{ "include": "#number-special" }
]
},
"types": {
"match": "\\b([if](32|64)|v128|funcref|externref|func|extern|func|param|result|mut)\\b",
"name": "keyword"
},
"string": {
"begin": "\"",
"end": "\"",
"name": "string.quoted",
"patterns": [
{
"name": "constant.character.escape",
"match": "\\\\[\"\\\\]"
}
]
},
"line-comment": {
"match": ";;.*$",
"name": "comment.line.double-semicolon"
},
"block-comment": {
"begin": "\\(;",
"end": ";\\)",
"name": "comment.block"
},
"expr": {
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": { "name": "punctuation.paren.open" }
},
"endCaptures": {
"0": { "name": "punctuation.paren.close" }
},
"name": "expression.group",
"patterns": [
{ "include": "#block-comment" },
{ "include": "$self" },
{ "include": "#types" },
{ "include": "#line-comment" },
{ "include": "#any-number" },
{ "include": "#memarg" },
{ "include": "#id" },
{ "include": "#string" },
{ "include": "#op" }
]
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

248
init.lua
View File

@ -25,7 +25,7 @@ What is Kickstart?
Kickstart.nvim is *not* a distribution.
Kickstart.nvim is a starting point for your own configuration.
The goal is that you can read every line of code, top-to-bottom, understand
/// goal is that you can read every line of code, top-to-bottom, understand
what your configuration is doing, and modify it to suit your needs.
Once you've done that, you can start exploring, configuring and tinkering to
@ -81,17 +81,126 @@ If you experience any errors while trying to install kickstart, run `:checkhealt
I hope you enjoy your Neovim journey,
- TJ
P.S. You can delete this when you're done too. It's your config now! :)
--]]
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
P.S. You can delete this when you're done too. It's your config now! :)
--]]
vim.cmd [[ autocmd VimEnter * Neotree position=left ]]
--AUTO RELOAD ON SAVE
vim.api.nvim_create_autocmd('BufWritePost', {
pattern = '*', -- For all files
callback = function()
vim.cmd [[silent edit]] -- Reload the buffer silently
end,
})
-- Your existing Neovim configurations..
vim.opt.autoread = true
vim.cmd 'autocmd VimResume * checktime'
-- Triger `autoread` when files changes on disk
-- https://unix.stackexchange.com/questions/149209/refresh-changed-content-of-file-opened-in-vim/383044#383044
-- https://vi.stackexchange.com/questions/13692/prevent-focusgained-autocmd-running-in-command-line-editing-mode
vim.api.nvim_create_autocmd({ 'FocusGained', 'BufEnter', 'CursorHold', 'CursorHoldI' }, {
pattern = '*',
command = "if mode() !~ '\v(c|r.?|!|t)' && getcmdwintype() == '' | checktime | endif",
})
-- Notification after file change
-- https://vi.stackexchange.com/questions/13091/autocmd-event-for-autoread
vim.api.nvim_create_autocmd({ 'FileChangedShellPost' }, {
pattern = '*',
command = "echohl WarningMsg | echo 'File changed on disk. Buffer reloaded.' | echohl None",
})
vim.lsp.inlay_hint.enable()
-- vim.opt.tabstop = 2
-- vim.opt.shiftwidth = 2
-- vim.opt.softtabstop = 2
vim.opt.expandtab = true
-- Function to toggle transparency
-- Initialize transparency state if not set
if vim.g.transparency_enabled == nil then
vim.g.transparency_enabled = false
end
function ToggleTransparency()
if vim.g.transparency_enabled then
-- Disable transparency: set a non-transparent background color.
vim.cmd 'hi Normal guibg=#1e222a ctermbg=NONE'
vim.cmd 'hi NormalNC guibg=#1e222a ctermbg=NONE'
vim.g.transparency_enabled = false
else
-- Enable transparency: remove the background color.
vim.cmd 'hi Normal guibg=NONE ctermbg=NONE'
vim.cmd 'hi NormalNC guibg=NONE ctermbg=NONE'
vim.g.transparency_enabled = true
end
end
-- Create the command to toggle transparency
vim.cmd 'command! Transp lua ToggleTransparency()'
-- vim.api.nvim_command [[
-- augroup ChangeBackgroundColour
-- autocmd colorscheme * :hi normal guibg=#000000
-- augroup END
-- ]]
vim.o.termguicolors = true
vim.cmd [[silent! colorscheme snow]]
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
vim.o.autoread = true
vim.api.nvim_create_autocmd('BufEnter', {
group = vim.api.nvim_create_augroup('lazyvim_auto_reload', { clear = true }),
pattern = '*',
command = 'checktime',
})
-- Ensure Neovim recognizes .tf and .tfvars files as terraform
-- vim.filetype.add {
-- extension = {
-- tf = 'terraform',
-- tfvars = 'terraform', -- Include .tfvars files
-- },
-- }
-- Refresh Neovim
vim.api.nvim_set_keymap('n', '<leader>rr', ':lua os.exit(1)<CR>', { noremap = true, silent = true })
-- Add custom key bindings
vim.api.nvim_set_keymap('i', '<C-j>', '<Right>', { noremap = true })
vim.api.nvim_set_keymap('i', '<C-g>', '<Left>', { noremap = true })
vim.api.nvim_set_keymap('i', '<C-]>', '<C-o>$', { noremap = true })
vim.api.nvim_set_keymap('i', '<C-f>', '<ESC>^', { noremap = true })
vim.api.nvim_set_keymap('i', '<C-M-p>', '<ESC>opi', { noremap = true })
vim.api.nvim_set_keymap('i', '<C-M-P>', '<ESC>oPi', { noremap = true })
-- Block cursor
-- vim.opt.guicursor = 'n-v-c:block,i:block-blinkwait700-blinkoff400-blinkon250,sm:block'
-- vim.opt.guicursor = 'n-v-c:block,i:ver25-blinkon250-blinkoff400-blinkwait700,r:hor20,o:hor50,sm:block-blinkwait175-blinkoff150-blinkon175'
vim.api.nvim_create_autocmd('VimEnter', {
callback = function()
vim.opt.guicursor = 'n-v-c:ver90,i:block-blinkwait400-blinkoff200-blinkon250,sm:block'
end,
})
--------------------------------------------------------------------
if vim.fn.has 'termguicolors' == 1 then
vim.opt.termguicolors = true
end
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
-- Set to true if you have a Nerd Font installed and selected in the terminal
vim.g.have_nerd_font = false
vim.g.have_nerd_font = true
-- [[ Setting options ]]
-- See `:help vim.opt`
@ -145,7 +254,8 @@ vim.opt.splitbelow = true
-- See `:help 'list'`
-- and `:help 'listchars'`
vim.opt.list = true
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
-- vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
vim.opt.listchars = { tab = '', trail = '·', nbsp = '' }
-- Preview substitutions live, as you type!
vim.opt.inccommand = 'split'
@ -465,11 +575,30 @@ require('lazy').setup({
-- Main LSP Configuration
'neovim/nvim-lspconfig',
dependencies = {
'saghen/blink.cmp',
-- Automatically install LSPs and related tools to stdpath for Neovim
{ 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
-- { 'williamboman/mason-lspconfig.nvim' },
{
'williamboman/mason-lspconfig.nvim',
dependencies = { 'williamboman/mason.nvim', 'neovim/nvim-lspconfig' },
config = function()
require('mason').setup()
require('mason-lspconfig').setup {
ensure_installed = { 'ts_ls', 'lua_ls', 'eslint' },
automatic_installation = true,
}
local lspconfig = require 'lspconfig'
-- Setup tsserver
lspconfig.ts_ls.setup {}
-- Setup other servers similarly
end,
},
-- Mason must be loaded before its dependents so we need to set it up here.
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
{ 'williamboman/mason.nvim', opts = {} },
'williamboman/mason-lspconfig.nvim',
'WhoIsSethDaniel/mason-tool-installer.nvim',
-- Useful status updates for LSP.
@ -479,8 +608,22 @@ require('lazy').setup({
'hrsh7th/cmp-nvim-lsp',
},
config = function()
-- Brief aside: **What is LSP?**
--
local capabilities = require('blink.cmp').get_lsp_capabilities()
require('lspconfig').lua_ls.setup { capabilities = capabilities }
-- Mason setup to ensure terraform-ls is installed
require('mason-lspconfig').setup {
ensure_installed = { 'terraformls', 'tflint' },
automatic_installation = {},
}
require('lspconfig').terraformls.setup {}
vim.api.nvim_create_autocmd({ 'BufWritePre' }, {
pattern = { '*.tf', '*.tfvars' },
callback = function()
vim.lsp.buf.format()
end,
})
vim.keymap.set('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<CR>', { noremap = true })
-- LSP is an initialism you've probably heard, but might not understand what it is.
--
-- LSP stands for Language Server Protocol. It's a protocol that helps editors
@ -658,18 +801,18 @@ require('lazy').setup({
-- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = {
-- terraformls = {},
-- clangd = {},
-- gopls = {},
-- pyright = {},
-- rust_analyzer = {},
rust_analyzer = {},
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
--
-- Some languages (like typescript) have entire language plugins that can be useful:
-- https://github.com/pmizio/typescript-tools.nvim
--
-- But for many setups, the LSP (`ts_ls`) will work just fine
-- ts_ls = {},
--
-- But for many setups, the LSP (`tsserver`) will work just fine
-- ts_ls = {}
lua_ls = {
-- cmd = { ... },
@ -785,7 +928,7 @@ require('lazy').setup({
dependencies = {
-- `friendly-snippets` contains a variety of premade snippets.
-- See the README about individual language/framework/plugin snippets:
-- https://github.com/rafamadriz/friendly-snippets
-- https://github.com/rafamadriz/friendly-snippetjs
-- {
-- 'rafamadriz/friendly-snippets',
-- config = function()
@ -902,7 +1045,15 @@ require('lazy').setup({
-- Load the colorscheme here.
-- Like many other themes, this one has different styles, and you could load
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
vim.cmd.colorscheme 'tokyonight-night'
-- vim.cmd.colorscheme 'tokyonight-night'
-- vim.cmd.colorscheme 'kanagawa'
vim.cmd.colorscheme 'material-palenight'
-- vim.cmd.colorscheme 'obscure'
-- vim.cmd.colorscheme 'rose-pine'
-- You can configure highlights by doing something like:
vim.cmd.hi 'Comment gui=none'
end,
},
@ -952,7 +1103,24 @@ require('lazy').setup({
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
opts = {
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
ensure_installed = {
'bash',
'c',
'diff',
'html',
'lua',
'luadoc',
'markdown',
'markdown_inline',
'query',
'vim',
'vimdoc',
'c_sharp',
'python',
'typescript',
'javascript',
-- 'go',
},
-- Autoinstall languages that are not installed
auto_install = true,
highlight = {
@ -963,13 +1131,27 @@ require('lazy').setup({
additional_vim_regex_highlighting = { 'ruby' },
},
indent = { enable = true, disable = { 'ruby' } },
-- custom_captures = {
-- -- Highlight the `return` keyword with the `ReturnKeyword` group
-- ['@keyword.return'] = 'ReturnKeyword',
-- },
},
-- There are additional nvim-treesitter modules that you can use to interact
-- with nvim-treesitter. You should go explore a few and see what interests you:
--
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
config = function(_, opts)
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
-- Prefer git instead of curl in order to improve connectivity in some environments
require('nvim-treesitter.install').prefer_git = true
---@diagnostic disable-next-line: missing-fields
require('nvim-treesitter.configs').setup(opts)
-- There are additional nvim-treesitter modules that you can use to interact
-- with nvim-treesitter. You should go explore a few and see what interests you:
--
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
end,
},
-- The following comments only work if you have downloaded the kickstart repo, not just copy pasted the
@ -980,24 +1162,20 @@ require('lazy').setup({
--
-- Here are some example plugins that I've included in the Kickstart repository.
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
--
-- require 'kickstart.plugins.debug',
-- require 'kickstart.plugins.indent_line',
-- require 'kickstart.plugins.lint',
-- require 'kickstart.plugins.autopairs',
-- require 'kickstart.plugins.neo-tree',
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
require 'kickstart.plugins.debug',
require 'kickstart.plugins.indent_line',
require 'kickstart.plugins.lint',
require 'kickstart.plugins.autopairs',
require 'kickstart.plugins.neo-tree',
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
-- This is the easiest way to modularize your config.
--
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
-- { import = 'custom.plugins' },
--
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
-- Or use telescope!
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
-- you can continue same window with `<space>sr` which resumes last telescope search
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
{ import = 'custom.plugins' },
}, {
ui = {
-- If you are using a Nerd Font: set icons to an empty table which will use the

BIN
lazygit Executable file

Binary file not shown.

BIN
lazygit.tar.gz Normal file

Binary file not shown.

View File

@ -0,0 +1,224 @@
-- ~/.config/nvim/lua/custom/config/lualine_config.lua
local lualine = require 'lualine'
-- Color table for highlights
-- stylua: ignore
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67',
}
local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand '%:t') ~= 1
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 80
end,
check_git_workspace = function()
local filepath = vim.fn.expand '%:p:h'
local gitdir = vim.fn.finddir('.git', filepath .. ';')
return gitdir and #gitdir > 0 and #gitdir < #filepath
end,
}
-- Config
local config = {
options = {
-- Disable sections and component separators
component_separators = '',
section_separators = '',
theme = {
-- We are going to use lualine_c and lualine_x as left and
-- right sections. Both are highlighted by the c theme.
-- So we are just setting default looks of statusline
normal = { c = { fg = colors.fg, bg = colors.bg } },
inactive = { c = { fg = colors.fg, bg = colors.bg } },
},
},
sections = {
-- these are to remove the defaults
lualine_a = {
-- {
-- 'buffers',
-- show_filename_only = false,
-- },
},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- These will be filled later
lualine_c = {},
lualine_x = {},
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
}
-- Inserts a component in lualine_c at the left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
-- Inserts a component in lualine_x at the right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
ins_left {
function()
return ''
end,
color = { fg = colors.blue }, -- Sets highlighting of component
padding = { left = 0, right = 1 }, -- No space before this
}
ins_left {
-- mode component
function()
return ''
end,
color = function()
-- Auto change color according to Neovim's mode
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
[''] = colors.blue,
V = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
S = colors.orange,
[''] = colors.orange,
ic = colors.yellow,
R = colors.violet,
Rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.red,
t = colors.red,
}
return { fg = mode_color[vim.fn.mode()] }
end,
padding = { right = 1 },
}
ins_left {
-- filesize component
'filesize',
cond = conditions.buffer_not_empty,
}
-- ins_left {
-- 'filename',
-- cond = conditions.buffer_not_empty,
-- color = { fg = colors.magenta, gui = 'bold' },
-- }
ins_left { 'location', show_filename_only = false }
ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
ins_left { 'buffers', show_filename_only = false }
ins_left {
'diagnostics',
sources = { 'nvim_diagnostic' },
symbols = { error = '', warn = '', info = '' },
diagnostics_color = {
error = { fg = colors.red },
warn = { fg = colors.yellow },
info = { fg = colors.cyan },
},
}
-- Insert mid section. You can make any number of sections in Neovim :)
-- for lualine it's any number greater than 2
ins_left {
function()
return '%='
end,
}
ins_left {
-- Lsp server name
function()
local msg = 'No Active Lsp'
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = ' LSP:',
color = { fg = '#ffffff', gui = 'bold' },
}
-- Add components to right sections
ins_right {
'o:encoding', -- option component same as &encoding in viml
fmt = string.upper, -- Convert to uppercase
cond = conditions.hide_in_width,
color = { fg = colors.green, gui = 'bold' },
}
ins_right {
'fileformat',
fmt = string.upper,
icons_enabled = false, -- Disable icons
color = { fg = colors.green, gui = 'bold' },
}
ins_right {
'branch',
icon = '',
color = { fg = colors.violet, gui = 'bold' },
}
ins_right {
'diff',
-- Symbols for diff
symbols = { added = '', modified = '󰝤 ', removed = '' },
diff_color = {
added = { fg = colors.green },
modified = { fg = colors.orange },
removed = { fg = colors.red },
},
cond = conditions.hide_in_width,
}
ins_right {
function()
return ''
end,
color = { fg = colors.blue },
padding = { left = 1 },
}
-- Initialize lualine with the configuration
lualine.setup(config)

View File

@ -0,0 +1,31 @@
return {
'goolord/alpha-nvim',
dependencies = {
'nvim-tree/nvim-web-devicons',
},
config = function()
local alpha = require 'alpha'
local dashboard = require 'alpha.themes.startify'
dashboard.section.header.val = {
[[ ]],
[[ ]],
[[ ]],
[[ ]],
[[  ]],
[[ ████ ██████ █████ ██ ]],
[[ ███████████ █████  ]],
[[ █████████ ███████████████████ ███ ███████████ ]],
[[ █████████ ███ █████████████ █████ ██████████████ ]],
[[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
[[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
[[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
[[ ]],
[[ ]],
[[ ]],
}
alpha.setup(dashboard.opts)
end,
}

View File

@ -0,0 +1,27 @@
return {
'okuuva/auto-save.nvim',
version = '^1.0.0', -- see https://devhints.io/semver, alternatively use '*' to use the latest tagged release
cmd = 'ASToggle', -- optional for lazy loading on command
event = { 'InsertLeave', 'TextChanged' }, -- optional for lazy loading on trigger events
opts = {
-- your config goes here
-- or just leave it empty :)
enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
trigger_events = { -- See :h events
immediate_save = { 'BufLeave', 'FocusLost', 'QuitPre', 'VimSuspend' }, -- vim events that trigger an immediate save
defer_save = { 'InsertLeave', 'TextChanged' }, -- vim events that trigger a deferred save (saves after `debounce_delay`)
cancel_deferred_save = { 'InsertEnter' }, -- vim events that cancel a pending deferred save
},
-- function that takes the buffer handle and determines whether to save the current buffer or not
-- return true: if buffer is ok to be saved
-- return false: if it's not ok to be saved
-- if set to `nil` then no specific condition is applied
condition = nil,
write_all_buffers = false, -- write all buffers when the current one meets `condition`
noautocmd = false, -- do not execute autocmds when saving
lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
debounce_delay = 1000, -- delay after which a pending save is executed
-- log debug messages to 'auto-save.log' file in neovim cache directory, set to `true` to enable
debug = false,
},
}

View File

@ -0,0 +1,16 @@
return {
'saghen/blink.cmp',
dependencies = 'rafamadriz/friendly-snippets',
version = 'v0.*',
opts = {
keymap = { preset = 'default' },
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = 'mono',
},
signature = { enabled = true },
},
}

View File

@ -0,0 +1,6 @@
return {
'numToStr/Comment.nvim',
opts = {
-- add any options here
},
}

View File

@ -0,0 +1 @@
return {}

View File

@ -0,0 +1 @@
return { 'sainnhe/everforest' }

View File

@ -0,0 +1 @@
return { 'fcpg/vim-fahrenheit' }

View File

@ -0,0 +1 @@
return { 'fcpg/vim-farout' }

View File

@ -0,0 +1,52 @@
vim.keymap.set('t', '<esc><esc>', '<c-\\><c-n>')
local state = {
floating = {
buf = -1,
win = -1,
},
}
local function create_floating_window(opts)
opts = opts or {}
local width = opts.width or math.floor(vim.o.columns * 0.8)
local height = opts.heighh or math.floor(vim.o.lines * 0.8)
local col = math.floor((vim.o.columns - width) / 2)
local row = math.floor((vim.o.lines - height) / 2)
local buf = nil
if vim.api.nvim_buf_is_valid(opts.buf) then
buf = opts.buf
else
buf = vim.api.nvim_create_buf(false, true)
end
local win_config = {
relative = 'editor',
width = width,
height = height,
col = col,
row = row,
style = 'minimal',
border = 'rounded',
}
local win = vim.api.nvim_open_win(buf, true, win_config)
return { buf = buf, win = win }
end
local toggle_terminal = function()
if not vim.api.nvim_win_is_valid(state.floating.win) then
state.floating = create_floating_window { buf = state.floating.buf }
if vim.bo[state.floating.buf].buftype ~= 'terminal' then
vim.cmd.terminal()
end
else
vim.api.nvim_win_hide(state.floating.win)
end
end
return {
vim.api.nvim_create_user_command('Floaterminal', toggle_terminal, {}),
vim.keymap.set({ 'n', 't' }, '<space>ft', toggle_terminal),
}

View File

@ -0,0 +1 @@
return { 'sainnhe/gruvbox-material' }

View File

@ -0,0 +1 @@
return { 'ellisonleao/gruvbox.nvim' }

View File

@ -0,0 +1 @@
return { 'nanotech/jellybeans.vim' }

View File

@ -0,0 +1,39 @@
return {
'rebelot/kanagawa.nvim',
config = function()
require('kanagawa').setup {
statementStyle = { italic = false },
functionStyle = { italic = false },
typeStyle = { italic = false },
colors = {
palette = {
-- change all usages of these colors
sumiInk0 = '#0D0D0D',
fujiWhite = '#FFFFFF',
},
keywordStyle = { italic = false },
commentStyle = { italic = false },
theme = {
-- change specific usages for a certain theme, or for all of them
wave = {
ui = {
float = {
bg = 'none',
},
},
},
dragon = {
syn = {
parameter = 'yellow',
},
},
all = {
ui = {
bg_gutter = 'none',
},
},
},
},
}
end,
}

View File

@ -0,0 +1 @@
return { 'lmburns/kimbox' }

View File

@ -0,0 +1,14 @@
-- ~/.config/nvim/lua/custom/plugins/plugins.lua
return {
-- Custom Lualine configuration
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' }, -- Ensure icons are available
config = function()
require 'custom.config.lualine_config' -- Path to your custom Lualine config
end,
event = 'VeryLazy', -- Lazy load Lualine
priority = 1000, -- Ensure it loads before other plugins that might depend on it
},
}

View File

@ -0,0 +1 @@
return { 'sainnhe/gruvbox-material' }

View File

@ -0,0 +1,104 @@
-- ~/.config/nvim/lua/plugins.lua
return {
-- ... other plugins ...
-- {
'marko-cerovac/material.nvim',
-- opts = {
-- contrast = {
-- terminal = false,
-- sidebars = false,
-- floating_windows = false,
-- cursor_line = false,
-- lsp_virtual_text = false,
-- non_current_windows = false,
-- filetypes = {},
-- },
--
-- styles = {
--
-- comments = { italic = false }, -- Ensure no italics are set here
-- strings = { italic = false }, -- Ensure no italics are set here
-- keywords = { italic = false }, -- Ensure no italics are set here
-- functions = { italic = false }, -- Ensure no italics are set here
-- variables = { italic = false },
-- operators = { italic = false },
-- types = { italic = false },
-- },
--
-- plugins = {
-- -- Available plugins:
-- -- "coc",
-- -- "colorful-winsep",
-- -- "dap",
-- -- "dashboard",
-- -- "eyeliner",
-- -- "fidget",
-- -- "flash",
-- 'gitsigns',
-- -- "harpoon",
-- -- "hop",
-- -- "illuminate",
-- 'indent-blankline',
-- -- "lspsaga",
-- -- "mini",
-- -- "neogit",
-- -- "neotest",
-- 'neo-tree',
-- -- "neorg",
-- -- "noice",
-- -- "nvim-cmp",
-- -- "nvim-navic",
-- 'nvim-tree',
-- -- "nvim-web-devicons",
-- 'rainbow-delimiters',
-- -- "sneak",
-- 'telescope',
-- -- "trouble",
-- 'which-key',
-- 'nvim-notify',
-- },
--
-- disable = {
-- colored_cursor = false,
-- borders = false,
-- background = false,
-- term_colors = false,
-- eob_lines = false,
-- },
--
-- high_visibility = {
-- lighter = false,
-- darker = false,
-- },
--
-- lualine_style = 'default',
--
-- async_loading = true,
--
-- custom_colors = nil,
--
-- custom_highlights = {
-- -- Explicitly disable italics for common highlight groups
-- Comment = { italic = false },
-- String = { italic = false },
-- Keyword = { italic = false },
-- Function = { italic = false },
-- Type = { italic = false },
-- Identifier = { italic = false },
-- -- Treesitter groups
-- TSKeyword = { italic = false },
-- TSKeywordFunction = { italic = false },
-- TSKeywordOperator = { italic = false },
-- -- Add more groups as necessary
-- },
-- },
-- config = function(_, opts)
-- require('material').setup(opts)
-- vim.cmd 'colorscheme material-palenight'
-- end,
-- priority = 1000,
-- },
}
-- ... other plugins ...

View File

@ -0,0 +1 @@
return { 'Lokaltog/vim-monotone' }

View File

@ -0,0 +1,245 @@
return {
{
'nvim-neo-tree/neo-tree.nvim',
branch = 'v3.x',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'MunifTanjim/nui.nvim',
{
's1n7ax/nvim-window-picker',
version = '2.*',
config = function()
require('window-picker').setup {
filter_rules = {
include_current_win = false,
autoselect_one = true,
bo = {
filetype = { 'neo-tree', 'neo-tree-popup', 'notify' },
buftype = { 'terminal', 'quickfix' },
},
},
}
end,
},
},
config = function()
vim.fn.sign_define('DiagnosticSignError', { text = '', texthl = 'DiagnosticSignError' })
vim.fn.sign_define('DiagnosticSignWarn', { text = '', texthl = 'DiagnosticSignWarn' })
vim.fn.sign_define('DiagnosticSignInfo', { text = '', texthl = 'DiagnosticSignInfo' })
vim.fn.sign_define('DiagnosticSignHint', { text = '󰌵', texthl = 'DiagnosticSignHint' })
require('neo-tree').setup {
close_if_last_window = false,
popup_border_style = 'rounded',
enable_git_status = true,
enable_diagnostics = true,
open_files_do_not_replace_types = { 'terminal', 'trouble', 'qf' },
sort_case_insensitive = false,
sort_function = nil,
default_component_configs = {
container = {
enable_character_fade = true,
},
indent = {
indent_size = 2,
padding = 1,
with_markers = true,
indent_marker = '',
last_indent_marker = '',
highlight = 'NeoTreeIndentMarker',
with_expanders = nil,
expander_collapsed = '',
expander_expanded = '',
expander_highlight = 'NeoTreeExpander',
},
icon = {
folder_closed = '',
folder_open = '',
folder_empty = '󰜌',
default = '*',
highlight = 'NeoTreeFileIcon',
},
modified = {
symbol = '[+]',
highlight = 'NeoTreeModified',
},
name = {
trailing_slash = false,
use_git_status_colors = true,
highlight = 'NeoTreeFileName',
},
git_status = {
symbols = {
added = '',
modified = '',
deleted = '',
renamed = '󰁕',
untracked = '',
ignored = '',
unstaged = '󰄱',
staged = '',
conflict = '',
},
},
file_size = {
enabled = true,
required_width = 64,
},
type = {
enabled = true,
required_width = 122,
},
last_modified = {
enabled = true,
required_width = 88,
},
created = {
enabled = true,
required_width = 110,
},
symlink_target = {
enabled = false,
},
},
commands = {},
window = {
position = 'left',
width = 40,
mapping_options = {
noremap = true,
nowait = true,
},
mappings = {
['<space>'] = { 'toggle_node', nowait = false },
['<2-LeftMouse>'] = 'open',
['<cr>'] = 'open',
['<esc>'] = 'cancel',
['P'] = { 'toggle_preview', config = { use_float = true, use_image_nvim = true } },
['l'] = 'focus_preview',
['S'] = 'open_split',
['s'] = 'open_vsplit',
['t'] = 'open_tabnew',
['w'] = 'open_with_window_picker',
['C'] = 'close_node',
['z'] = 'close_all_nodes',
['a'] = {
'add',
config = {
show_path = 'none',
},
},
['A'] = 'add_directory',
['d'] = 'delete',
['r'] = 'rename',
['y'] = 'copy_to_clipboard',
['x'] = 'cut_to_clipboard',
['p'] = 'paste_from_clipboard',
['c'] = 'copy',
['m'] = 'move',
['q'] = 'close_window',
['R'] = 'refresh',
['?'] = 'show_help',
['<'] = 'prev_source',
['>'] = 'next_source',
['i'] = 'show_file_details',
},
},
nesting_rules = {},
filesystem = {
filtered_items = {
visible = false,
hide_dotfiles = true,
hide_gitignored = true,
hide_hidden = true,
hide_by_name = {},
hide_by_pattern = {},
always_show = {},
never_show = {},
never_show_by_pattern = {},
},
follow_current_file = {
enabled = false,
leave_dirs_open = false,
},
group_empty_dirs = false,
hijack_netrw_behavior = 'open_default',
use_libuv_file_watcher = false,
window = {
mappings = {
['<bs>'] = 'navigate_up',
['.'] = 'set_root',
['H'] = 'toggle_hidden',
['/'] = 'fuzzy_finder',
['D'] = 'fuzzy_finder_directory',
['#'] = 'fuzzy_sorter',
['f'] = 'filter_on_submit',
['<c-x>'] = 'clear_filter',
['[g'] = 'prev_git_modified',
[']g'] = 'next_git_modified',
['o'] = { 'show_help', nowait = false, config = { title = 'Order by', prefix_key = 'o' } },
['oc'] = { 'order_by_created', nowait = false },
['od'] = { 'order_by_diagnostics', nowait = false },
['om'] = { 'order_by_modified', nowait = false },
['on'] = { 'order_by_name', nowait = false },
['os'] = { 'order_by_size', nowait = false },
['ot'] = { 'order_by_type', nowait = false },
},
fuzzy_finder_mappings = {
['<down>'] = 'move_cursor_down',
['<C-n>'] = 'move_cursor_down',
['<up>'] = 'move_cursor_up',
['<C-p>'] = 'move_cursor_up',
},
},
commands = {},
},
buffers = {
follow_current_file = {
enabled = true,
leave_dirs_open = false,
},
group_empty_dirs = true,
show_unloaded = true,
window = {
mappings = {
['bd'] = 'buffer_delete',
['<bs>'] = 'navigate_up',
['.'] = 'set_root',
['o'] = { 'show_help', nowait = false, config = { title = 'Order by', prefix_key = 'o' } },
['oc'] = { 'order_by_created', nowait = false },
['od'] = { 'order_by_diagnostics', nowait = false },
['om'] = { 'order_by_modified', nowait = false },
['on'] = { 'order_by_name', nowait = false },
['os'] = { 'order_by_size', nowait = false },
['ot'] = { 'order_by_type', nowait = false },
},
},
},
git_status = {
window = {
position = 'float',
mappings = {
['A'] = 'git_add_all',
['gu'] = 'git_unstage_file',
['ga'] = 'git_add_file',
['gr'] = 'git_revert_file',
['gc'] = 'git_commit',
['gp'] = 'git_push',
['gg'] = 'git_commit_and_push',
['o'] = { 'show_help', nowait = false, config = { title = 'Order by', prefix_key = 'o' } },
['oc'] = { 'order_by_created', nowait = false },
['od'] = { 'order_by_diagnostics', nowait = false },
['om'] = { 'order_by_modified', nowait = false },
['on'] = { 'order_by_name', nowait = false },
['os'] = { 'order_by_size', nowait = false },
['ot'] = { 'order_by_type', nowait = false },
},
},
},
}
vim.cmd [[nnoremap \ :Neotree reveal<cr>]]
end,
},
}

View File

@ -0,0 +1,3 @@
return {
'shaunsingh/nord.nvim'
}

View File

@ -0,0 +1 @@
return { 'norcalli/nvim-colorizer.lua' }

View File

@ -0,0 +1 @@
return { 'brenoprata10/nvim-highlight-colors' }

View File

@ -0,0 +1 @@
return { 'DaikyXendo/nvim-material-icon' }

View File

@ -0,0 +1 @@
return { 'nvim-neotest/nvim-nio' }

View File

@ -0,0 +1 @@
return { 'killitar/obscure.nvim' }

View File

@ -0,0 +1 @@
return { 'rose-pine/neovim', as = 'rose-pine' }

View File

@ -0,0 +1,28 @@
return {
'seblj/roslyn.nvim',
ft = 'cs',
opts = {
-- your configuration comes here; leave empty for default settings
config = {
settings = {
['csharp|inlay_hints'] = {
csharp_enable_inlay_hints_for_implicit_object_creation = true,
csharp_enable_inlay_hints_for_implicit_variable_types = true,
csharp_enable_inlay_hints_for_lambda_parameter_types = true,
csharp_enable_inlay_hints_for_types = true,
dotnet_enable_inlay_hints_for_indexer_parameters = true,
dotnet_enable_inlay_hints_for_literal_parameters = true,
dotnet_enable_inlay_hints_for_object_creation_parameters = true,
dotnet_enable_inlay_hints_for_other_parameters = true,
dotnet_enable_inlay_hints_for_parameters = true,
dotnet_suppress_inlay_hints_for_parameters_that_differ_only_by_suffix = true,
dotnet_suppress_inlay_hints_for_parameters_that_match_argument_name = true,
dotnet_suppress_inlay_hints_for_parameters_that_match_method_intent = true,
},
['csharp|code_lens'] = {
dotnet_enable_references_code_lens = true,
},
},
},
},
}

View File

@ -0,0 +1,195 @@
return {
'folke/snacks.nvim',
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
bigfile = { enabled = true },
dashboard = { enabled = true },
indent = { enabled = true },
input = { enabled = true },
notifier = {
enabled = true,
timeout = 3000,
},
quickfile = { enabled = true },
scroll = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
styles = {
notification = {
-- wo = { wrap = true } -- Wrap notifications
},
},
lazygit = {},
},
keys = {
{
'<leader>z',
function()
Snacks.zen()
end,
desc = 'Toggle Zen Mode',
},
{
'<leader>Z',
function()
Snacks.zen.zoom()
end,
desc = 'Toggle Zoom',
},
{
'<leader>.',
function()
Snacks.scratch()
end,
desc = 'Toggle Scratch Buffer',
},
{
'<leader>S',
function()
Snacks.scratch.select()
end,
desc = 'Select Scratch Buffer',
},
{
'<leader>n',
function()
Snacks.notifier.show_history()
end,
desc = 'Notification History',
},
{
'<leader>bd',
function()
Snacks.bufdelete()
end,
desc = 'Delete Buffer',
},
{
'<leader>cR',
function()
Snacks.rename.rename_file()
end,
desc = 'Rename File',
},
{
'<leader>gB',
function()
Snacks.gitbrowse()
end,
desc = 'Git Browse',
},
{
'<leader>gb',
function()
Snacks.git.blame_line()
end,
desc = 'Git Blame Line',
},
{
'<leader>gf',
function()
Snacks.lazygit.log_file()
end,
desc = 'Lazygit Current File History',
},
{
'<leader>gg',
function()
Snacks.lazygit()
end,
desc = 'Lazygit',
},
{
'<leader>gl',
function()
Snacks.lazygit.log()
end,
desc = 'Lazygit Log (cwd)',
},
{
'<leader>un',
function()
Snacks.notifier.hide()
end,
desc = 'Dismiss All Notifications',
},
{
'<c-/>',
function()
Snacks.terminal()
end,
desc = 'Toggle Terminal',
},
{
'<c-_>',
function()
Snacks.terminal()
end,
desc = 'which_key_ignore',
},
{
']]',
function()
Snacks.words.jump(vim.v.count1)
end,
desc = 'Next Reference',
mode = { 'n', 't' },
},
{
'[[',
function()
Snacks.words.jump(-vim.v.count1)
end,
desc = 'Prev Reference',
mode = { 'n', 't' },
},
{
'<leader>N',
desc = 'Neovim News',
function()
Snacks.win {
file = vim.api.nvim_get_runtime_file('doc/news.txt', false)[1],
width = 0.6,
height = 0.6,
wo = {
spell = false,
wrap = false,
signcolumn = 'yes',
statuscolumn = ' ',
conceallevel = 3,
},
}
end,
},
},
init = function()
vim.api.nvim_create_autocmd('User', {
pattern = 'VeryLazy',
callback = function()
-- Setup some globals for debugging (lazy-loaded)
_G.dd = function(...)
Snacks.debug.inspect(...)
end
_G.bt = function()
Snacks.debug.backtrace()
end
vim.print = _G.dd -- Override print to use snacks for `:=` command
-- Create some toggle mappings
Snacks.toggle.option('spell', { name = 'Spelling' }):map '<leader>us'
Snacks.toggle.option('wrap', { name = 'Wrap' }):map '<leader>uw'
Snacks.toggle.option('relativenumber', { name = 'Relative Number' }):map '<leader>uL'
Snacks.toggle.diagnostics():map '<leader>ud'
Snacks.toggle.line_number():map '<leader>ul'
Snacks.toggle.option('conceallevel', { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 }):map '<leader>uc'
Snacks.toggle.treesitter():map '<leader>uT'
Snacks.toggle.option('background', { off = 'light', on = 'dark', name = 'Dark Background' }):map '<leader>ub'
Snacks.toggle.inlay_hints():map '<leader>uh'
Snacks.toggle.indent():map '<leader>ug'
Snacks.toggle.dim():map '<leader>uD'
end,
})
end,
}

View File

@ -0,0 +1,3 @@
return {
'owickstrom/vim-colors-paramount',
}

View File

@ -0,0 +1,8 @@
return {
'altermo/ultimate-autopair.nvim',
event = { 'InsertEnter', 'CmdlineEnter' },
branch = 'v0.6', --recommended as each new version will have breaking changes
opts = {
--Config goes here
},
}

View File

@ -0,0 +1 @@
return { 'timmajani/tokyonightnoir-vim' }

View File

@ -0,0 +1 @@
return { 'mg979/vim-visual-multi', branch = 'master' }

View File

@ -23,6 +23,7 @@ return {
-- Add your own debuggers here
'leoluz/nvim-dap-go',
'microsoft/vscode-js-debug',
},
keys = {
-- Basic debugging keymaps, feel free to change to your liking!
@ -94,7 +95,8 @@ return {
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
'delve',
-- 'delve',
'js',
},
}
@ -135,7 +137,28 @@ return {
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
dap.listeners.before.event_exited['dapui_config'] = dapui.close
-- Configure the adapter
dap.adapters['pwa-node'] = {
type = 'server',
host = 'localhost',
port = '${port}', -- nvim-dap will replace this with an open port number
executable = {
command = 'node',
-- Update the path below to point to your `dapDebugServer.js`
args = { '/home/tawfeeq/.config/nvim/debuggers/vscode-js-debug/js-debug/src/dapDebugServer.js', '${port}' },
},
}
-- Configure a launch configuration for JavaScript
dap.configurations.javascript = {
{
type = 'pwa-node',
request = 'launch',
name = 'Launch file',
program = '${file}',
cwd = '${workspaceFolder}',
},
}
-- Install golang specific config
require('dap-go').setup {
delve = {

View File

@ -1,9 +1,17 @@
return {
{ -- Add indentation guides even on blank lines
'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
main = 'ibl',
opts = {},
-- Add indentation guides even on blank lines
'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
main = 'ibl',
---@module "ibl"
---@type ibl.config
opts = {
-- debounce = 100,
indent = {
char = { '' },
},
whitespace = { highlight = { 'Whitespace', 'NonText' } },
enabled = true,
},
}