|
@ -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
|
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
|
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
|
#### Clone kickstart.nvim
|
||||||
> **NOTE**
|
> **NOTE**
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
"return" @keyword.return
|
|
@ -0,0 +1,4 @@
|
||||||
|
# note: this is moved into `dist` during compilation, and does not actually apply here
|
||||||
|
**/*.map
|
||||||
|
src/build/**
|
||||||
|
src/testRunner.js
|
|
@ -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
|
|
@ -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.
|
|
@ -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"
|
||||||
|
}
|
After Width: | Height: | Size: 9.9 KiB |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
After Width: | Height: | Size: 9.9 KiB |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
After Width: | Height: | Size: 8.0 KiB |
|
@ -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 |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 59 KiB |
|
@ -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)}
|
|
@ -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);})();
|
|
@ -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));})();
|
|
@ -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
|
|
@ -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" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
250
init.lua
|
@ -25,7 +25,7 @@ What is Kickstart?
|
||||||
Kickstart.nvim is *not* a distribution.
|
Kickstart.nvim is *not* a distribution.
|
||||||
|
|
||||||
Kickstart.nvim is a starting point for your own configuration.
|
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.
|
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
|
Once you've done that, you can start exploring, configuring and tinkering to
|
||||||
|
@ -69,7 +69,7 @@ Kickstart Guide:
|
||||||
I have left several `:help X` comments throughout the init.lua
|
I have left several `:help X` comments throughout the init.lua
|
||||||
These are hints about where to find more information about the relevant settings,
|
These are hints about where to find more information about the relevant settings,
|
||||||
plugins or Neovim features used in Kickstart.
|
plugins or Neovim features used in Kickstart.
|
||||||
|
|
||||||
NOTE: Look for lines like this
|
NOTE: Look for lines like this
|
||||||
|
|
||||||
Throughout the file. These are for you, the reader, to help you understand what is happening.
|
Throughout the file. These are for you, the reader, to help you understand what is happening.
|
||||||
|
@ -81,17 +81,126 @@ If you experience any errors while trying to install kickstart, run `:checkhealt
|
||||||
I hope you enjoy your Neovim journey,
|
I hope you enjoy your Neovim journey,
|
||||||
- TJ
|
- TJ
|
||||||
|
|
||||||
P.S. You can delete this when you're done too. It's your config now! :)
|
|
||||||
--]]
|
|
||||||
|
|
||||||
-- Set <space> as the leader key
|
-- Set <space> as the leader key
|
||||||
-- See `:help mapleader`
|
-- See `:help mapleader`
|
||||||
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
|
-- 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.mapleader = ' '
|
||||||
vim.g.maplocalleader = ' '
|
vim.g.maplocalleader = ' '
|
||||||
|
|
||||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
-- 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 ]]
|
-- [[ Setting options ]]
|
||||||
-- See `:help vim.opt`
|
-- See `:help vim.opt`
|
||||||
|
@ -145,7 +254,8 @@ vim.opt.splitbelow = true
|
||||||
-- See `:help 'list'`
|
-- See `:help 'list'`
|
||||||
-- and `:help 'listchars'`
|
-- and `:help 'listchars'`
|
||||||
vim.opt.list = true
|
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!
|
-- Preview substitutions live, as you type!
|
||||||
vim.opt.inccommand = 'split'
|
vim.opt.inccommand = 'split'
|
||||||
|
@ -465,11 +575,30 @@ require('lazy').setup({
|
||||||
-- Main LSP Configuration
|
-- Main LSP Configuration
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
'saghen/blink.cmp',
|
||||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
-- 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.
|
-- 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({})`
|
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
||||||
{ 'williamboman/mason.nvim', opts = {} },
|
|
||||||
'williamboman/mason-lspconfig.nvim',
|
|
||||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||||
|
|
||||||
-- Useful status updates for LSP.
|
-- Useful status updates for LSP.
|
||||||
|
@ -479,8 +608,22 @@ require('lazy').setup({
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
},
|
},
|
||||||
config = function()
|
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 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
|
-- 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.
|
-- - 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/
|
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
|
||||||
local servers = {
|
local servers = {
|
||||||
|
-- terraformls = {},
|
||||||
-- clangd = {},
|
-- clangd = {},
|
||||||
-- gopls = {},
|
-- gopls = {},
|
||||||
-- pyright = {},
|
-- pyright = {},
|
||||||
-- rust_analyzer = {},
|
rust_analyzer = {},
|
||||||
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
-- ... 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:
|
-- Some languages (like typescript) have entire language plugins that can be useful:
|
||||||
-- https://github.com/pmizio/typescript-tools.nvim
|
-- https://github.com/pmizio/typescript-tools.nvim
|
||||||
--
|
--
|
||||||
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
-- But for many setups, the LSP (`tsserver`) will work just fine
|
||||||
-- ts_ls = {},
|
-- ts_ls = {}
|
||||||
--
|
|
||||||
|
|
||||||
lua_ls = {
|
lua_ls = {
|
||||||
-- cmd = { ... },
|
-- cmd = { ... },
|
||||||
|
@ -785,7 +928,7 @@ require('lazy').setup({
|
||||||
dependencies = {
|
dependencies = {
|
||||||
-- `friendly-snippets` contains a variety of premade snippets.
|
-- `friendly-snippets` contains a variety of premade snippets.
|
||||||
-- See the README about individual language/framework/plugin 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',
|
-- 'rafamadriz/friendly-snippets',
|
||||||
-- config = function()
|
-- config = function()
|
||||||
|
@ -902,7 +1045,15 @@ require('lazy').setup({
|
||||||
-- Load the colorscheme here.
|
-- Load the colorscheme here.
|
||||||
-- Like many other themes, this one has different styles, and you could load
|
-- Like many other themes, this one has different styles, and you could load
|
||||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
-- 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,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -952,7 +1103,24 @@ require('lazy').setup({
|
||||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
opts = {
|
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
|
-- Autoinstall languages that are not installed
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
|
@ -963,13 +1131,27 @@ require('lazy').setup({
|
||||||
additional_vim_regex_highlighting = { 'ruby' },
|
additional_vim_regex_highlighting = { 'ruby' },
|
||||||
},
|
},
|
||||||
indent = { enable = true, disable = { '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:
|
config = function(_, opts)
|
||||||
--
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
|
-- Prefer git instead of curl in order to improve connectivity in some environments
|
||||||
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
|
require('nvim-treesitter.install').prefer_git = true
|
||||||
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
---@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
|
-- 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.
|
-- 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).
|
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||||
--
|
require 'kickstart.plugins.debug',
|
||||||
-- require 'kickstart.plugins.debug',
|
require 'kickstart.plugins.indent_line',
|
||||||
-- require 'kickstart.plugins.indent_line',
|
require 'kickstart.plugins.lint',
|
||||||
-- require 'kickstart.plugins.lint',
|
require 'kickstart.plugins.autopairs',
|
||||||
-- require 'kickstart.plugins.autopairs',
|
require 'kickstart.plugins.neo-tree',
|
||||||
-- require 'kickstart.plugins.neo-tree',
|
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
-- 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`
|
-- 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.
|
-- 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.
|
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||||
-- { import = 'custom.plugins' },
|
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
|
||||||
--
|
{ 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
|
|
||||||
}, {
|
}, {
|
||||||
ui = {
|
ui = {
|
||||||
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||||
|
|
|
@ -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)
|
|
@ -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,
|
||||||
|
}
|
|
@ -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,
|
||||||
|
},
|
||||||
|
}
|
|
@ -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 },
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
return {
|
||||||
|
'numToStr/Comment.nvim',
|
||||||
|
opts = {
|
||||||
|
-- add any options here
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return {}
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'sainnhe/everforest' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'fcpg/vim-fahrenheit' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'fcpg/vim-farout' }
|
|
@ -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),
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'sainnhe/gruvbox-material' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'ellisonleao/gruvbox.nvim' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'nanotech/jellybeans.vim' }
|
|
@ -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,
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'lmburns/kimbox' }
|
|
@ -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
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'sainnhe/gruvbox-material' }
|
|
@ -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 ...
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'Lokaltog/vim-monotone' }
|
|
@ -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,
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
return {
|
||||||
|
'shaunsingh/nord.nvim'
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'norcalli/nvim-colorizer.lua' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'brenoprata10/nvim-highlight-colors' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'DaikyXendo/nvim-material-icon' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'nvim-neotest/nvim-nio' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'killitar/obscure.nvim' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'rose-pine/neovim', as = 'rose-pine' }
|
|
@ -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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -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,
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
return {
|
||||||
|
'owickstrom/vim-colors-paramount',
|
||||||
|
}
|
|
@ -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
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'timmajani/tokyonightnoir-vim' }
|
|
@ -0,0 +1 @@
|
||||||
|
return { 'mg979/vim-visual-multi', branch = 'master' }
|
|
@ -23,6 +23,7 @@ return {
|
||||||
|
|
||||||
-- Add your own debuggers here
|
-- Add your own debuggers here
|
||||||
'leoluz/nvim-dap-go',
|
'leoluz/nvim-dap-go',
|
||||||
|
'microsoft/vscode-js-debug',
|
||||||
},
|
},
|
||||||
keys = {
|
keys = {
|
||||||
-- Basic debugging keymaps, feel free to change to your liking!
|
-- 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 :)
|
-- online, please don't ask me how to install them :)
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
-- Update this to ensure that you have the debuggers for the langs you want
|
-- 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.after.event_initialized['dapui_config'] = dapui.open
|
||||||
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
|
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
|
||||||
dap.listeners.before.event_exited['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
|
-- Install golang specific config
|
||||||
require('dap-go').setup {
|
require('dap-go').setup {
|
||||||
delve = {
|
delve = {
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
return {
|
return {
|
||||||
{ -- Add indentation guides even on blank lines
|
-- Add indentation guides even on blank lines
|
||||||
'lukas-reineke/indent-blankline.nvim',
|
'lukas-reineke/indent-blankline.nvim',
|
||||||
-- Enable `lukas-reineke/indent-blankline.nvim`
|
-- Enable `lukas-reineke/indent-blankline.nvim`
|
||||||
-- See `:help ibl`
|
-- See `:help ibl`
|
||||||
main = 'ibl',
|
main = 'ibl',
|
||||||
opts = {},
|
---@module "ibl"
|
||||||
|
---@type ibl.config
|
||||||
|
opts = {
|
||||||
|
-- debounce = 100,
|
||||||
|
indent = {
|
||||||
|
char = { '│' },
|
||||||
|
},
|
||||||
|
whitespace = { highlight = { 'Whitespace', 'NonText' } },
|
||||||
|
enabled = true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|