pascal-vscode 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.changeset/README.md +8 -0
- package/.changeset/better-showers-knock.md +5 -0
- package/.changeset/config.json +12 -0
- package/.changeset/pre.json +10 -0
- package/.editorconfig +15 -0
- package/.github/FUNDING.yml +6 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +47 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +5 -0
- package/.github/actions/setup-git-commiter/action.yml +49 -0
- package/.github/actions/setup-pnpm/action.yml +42 -0
- package/.github/issue_labeler.yml +2 -0
- package/.github/labeler.yml +9 -0
- package/.github/renovate.json5 +48 -0
- package/.github/workflows/check_merge.yml +109 -0
- package/.github/workflows/cleanup_cache.yml +46 -0
- package/.github/workflows/diff_dependencies.yml +26 -0
- package/.github/workflows/format.yml +45 -0
- package/.github/workflows/label_issue.yml +18 -0
- package/.github/workflows/label_pr.yml +16 -0
- package/.github/workflows/lint_pr_title.yml +49 -0
- package/.github/workflows/release.yml +67 -0
- package/.prettierignore +25 -0
- package/.vscode/extensions.json +10 -0
- package/.vscode/launch.json +25 -0
- package/.vscode/settings.json +13 -0
- package/.vscode/tasks.json +17 -0
- package/.vscodeignore +32 -0
- package/CHANGELOG.md +7 -0
- package/CODE_OF_CONDUCT.md +65 -0
- package/CONTRIBUTING.md +86 -0
- package/LICENSE +21 -0
- package/README.md +51 -0
- package/assets/icon.png +0 -0
- package/assets/icon.svg +1 -0
- package/assets/preview.png +0 -0
- package/biome.jsonc +113 -0
- package/dist/browser.js +1 -0
- package/dist/extension.js +1 -0
- package/eslint.config.js +91 -0
- package/package.json +78 -0
- package/pnpm-workspace.yaml +4 -0
- package/prettier.config.mjs +17 -0
- package/scripts/build.js +107 -0
- package/src/browser.ts +14 -0
- package/src/extension.ts +4 -0
- package/themes/default.json +358 -0
- package/tsconfig.json +24 -0
package/.prettierignore
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Deep Directories
|
|
2
|
+
**/dist
|
|
3
|
+
**/node_modules
|
|
4
|
+
**/.vscode-test
|
|
5
|
+
|
|
6
|
+
# Directories
|
|
7
|
+
.github
|
|
8
|
+
.changeset
|
|
9
|
+
|
|
10
|
+
# Files
|
|
11
|
+
vitest.config.ts.timestamp*
|
|
12
|
+
pnpm-lock.yaml
|
|
13
|
+
|
|
14
|
+
# Formatted by Biome
|
|
15
|
+
**/*.json
|
|
16
|
+
**/*.jsonc
|
|
17
|
+
**/*.js
|
|
18
|
+
**/*.ts
|
|
19
|
+
**/*.tsx
|
|
20
|
+
**/*.jsx
|
|
21
|
+
**/*.mjs
|
|
22
|
+
**/*.cjs
|
|
23
|
+
**/*.css
|
|
24
|
+
|
|
25
|
+
CHANGELOG.md
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// A launch configuration that launches the extension inside a new window
|
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
|
3
|
+
// Hover to view descriptions of existing attributes.
|
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
+
{
|
|
6
|
+
"version": "0.2.0",
|
|
7
|
+
"configurations": [
|
|
8
|
+
{
|
|
9
|
+
"name": "Launch Theme",
|
|
10
|
+
"type": "extensionHost",
|
|
11
|
+
"request": "launch",
|
|
12
|
+
"runtimeExecutable": "${execPath}",
|
|
13
|
+
"preLaunchTask": "${defaultBuildTask}",
|
|
14
|
+
"args": ["--extensionDevelopmentPath=${workspaceFolder}", "--disable-extensions", "${file}"]
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "Launch Theme (with extensions)",
|
|
18
|
+
"type": "extensionHost",
|
|
19
|
+
"request": "launch",
|
|
20
|
+
"runtimeExecutable": "${execPath}",
|
|
21
|
+
"preLaunchTask": "${defaultBuildTask}",
|
|
22
|
+
"args": ["--extensionDevelopmentPath=${workspaceFolder}", "${file}"]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Place your settings in this file to overwrite default and user settings.
|
|
2
|
+
{
|
|
3
|
+
"files.exclude": {
|
|
4
|
+
"out": false, // set this to true to hide the "out" folder with the compiled JS files
|
|
5
|
+
"dist": false // set this to true to hide the "dist" folder with the compiled JS files
|
|
6
|
+
},
|
|
7
|
+
"search.exclude": {
|
|
8
|
+
"out": true, // set this to false to include "out" folder in search results
|
|
9
|
+
"dist": true // set this to false to include "dist" folder in search results
|
|
10
|
+
},
|
|
11
|
+
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
|
|
12
|
+
"typescript.tsc.autoDetect": "off"
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0.0",
|
|
3
|
+
"tasks": [
|
|
4
|
+
{
|
|
5
|
+
"type": "shell",
|
|
6
|
+
"command": "pnpm",
|
|
7
|
+
"args": ["run", "build"],
|
|
8
|
+
"group": {
|
|
9
|
+
"kind": "build",
|
|
10
|
+
"isDefault": true
|
|
11
|
+
},
|
|
12
|
+
"problemMatcher": [],
|
|
13
|
+
"label": "pnpm: build",
|
|
14
|
+
"detail": "pnpm run prebuild && tsdown"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
package/.vscodeignore
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# IDE and test files
|
|
2
|
+
.vscode/**
|
|
3
|
+
.vscode-test/**
|
|
4
|
+
|
|
5
|
+
# Source files
|
|
6
|
+
src/**
|
|
7
|
+
scripts/**
|
|
8
|
+
|
|
9
|
+
# Configuration files
|
|
10
|
+
.gitignore
|
|
11
|
+
.yarnrc
|
|
12
|
+
**/tsconfig.json
|
|
13
|
+
**/eslint.config.js
|
|
14
|
+
**/biome.jsonc
|
|
15
|
+
**/prettier.config.mjs
|
|
16
|
+
.eslintcache
|
|
17
|
+
.prettierignore
|
|
18
|
+
|
|
19
|
+
# Build artifacts
|
|
20
|
+
**/*.map
|
|
21
|
+
|
|
22
|
+
# Documentation
|
|
23
|
+
vsc-extension-quickstart.md
|
|
24
|
+
|
|
25
|
+
# Version control and CI
|
|
26
|
+
.github/**
|
|
27
|
+
.changeset/**
|
|
28
|
+
|
|
29
|
+
# Dependencies
|
|
30
|
+
node_modules/**
|
|
31
|
+
pnpm-lock.yaml
|
|
32
|
+
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and maintainers of OpenCLI pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behavior that contributes to a positive environment:
|
|
12
|
+
|
|
13
|
+
- Using welcoming and inclusive language.
|
|
14
|
+
- Being respectful of differing viewpoints and experiences.
|
|
15
|
+
- Giving and gracefully accepting constructive feedback.
|
|
16
|
+
- Focusing on what is best for the community.
|
|
17
|
+
- Showing empathy towards other community members.
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behavior:
|
|
20
|
+
|
|
21
|
+
- The use of sexualized language or imagery, and sexual attention or advances of any kind.
|
|
22
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks.
|
|
23
|
+
- Public or private harassment.
|
|
24
|
+
- Publishing others' private information, such as a physical or email address, without their explicit permission.
|
|
25
|
+
- Other conduct which could reasonably be considered inappropriate in a professional setting.
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Maintainers are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
|
|
32
|
+
|
|
33
|
+
## Scope
|
|
34
|
+
|
|
35
|
+
This Code of Conduct applies within all community spaces, including the GitHub repository, issues, pull requests, discussions, and the Discord server. It also applies when an individual is officially representing the project in public spaces.
|
|
36
|
+
|
|
37
|
+
## Enforcement
|
|
38
|
+
|
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported — please [open a security advisory](https://github.com/hadez8877/pascal/security/advisories/new) or contact the maintainers directly through the Discord server. All complaints will be reviewed and investigated promptly and fairly. Maintainers are obligated to respect the privacy and security of the reporter.
|
|
40
|
+
|
|
41
|
+
## Enforcement Guidelines
|
|
42
|
+
|
|
43
|
+
Maintainers will follow these guidelines when determining consequences for any action in violation of this Code of Conduct:
|
|
44
|
+
|
|
45
|
+
**1. Correction**
|
|
46
|
+
A private, written warning from maintainers, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
|
|
47
|
+
|
|
48
|
+
**2. Warning**
|
|
49
|
+
A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time.
|
|
50
|
+
|
|
51
|
+
**3. Temporary Ban**
|
|
52
|
+
A temporary ban from any sort of interaction or public communication with the community for a specified period of time.
|
|
53
|
+
|
|
54
|
+
**4. Permanent Ban**
|
|
55
|
+
A permanent ban from any sort of public interaction within the community.
|
|
56
|
+
|
|
57
|
+
## Attribution
|
|
58
|
+
|
|
59
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
60
|
+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
|
61
|
+
|
|
62
|
+
[homepage]: https://www.contributor-covenant.org
|
|
63
|
+
|
|
64
|
+
For answers to common questions about this code of conduct, see
|
|
65
|
+
https://www.contributor-covenant.org/faq
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Contributor Manual
|
|
2
|
+
|
|
3
|
+
Thank you for considering contributing to Pascal! Here's how you can help.
|
|
4
|
+
|
|
5
|
+
## Development Setup
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
# Clone the repository
|
|
9
|
+
git clone https://github.com/your-username/pascal.git
|
|
10
|
+
cd pascal
|
|
11
|
+
|
|
12
|
+
# Install dependencies and build
|
|
13
|
+
pnpm install
|
|
14
|
+
pnpm run build
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Press `F5` to launch an Extension Development Host window with the theme loaded.
|
|
18
|
+
|
|
19
|
+
## Making Changes
|
|
20
|
+
|
|
21
|
+
### Theme Colors
|
|
22
|
+
|
|
23
|
+
See the [VS Code Theme Documentation](https://code.visualstudio.com/api/extension-capabilities/theming) for available keys.
|
|
24
|
+
|
|
25
|
+
## Code Quality
|
|
26
|
+
|
|
27
|
+
All checks must pass before a pull request is merged:
|
|
28
|
+
|
|
29
|
+
```shell
|
|
30
|
+
pnpm run typecheck
|
|
31
|
+
pnpm run lint
|
|
32
|
+
pnpm run format
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
We use:
|
|
36
|
+
|
|
37
|
+
- **[Biome](https://biomejs.dev)** for linting and formatting (primary)
|
|
38
|
+
- **[Prettier](https://prettier.io)** for additional formatting (fallback)
|
|
39
|
+
- **[ESLint](https://eslint.org)** with typescript-eslint for deeper analysis
|
|
40
|
+
- **[TypeScript](https://www.typescriptlang.org)** with strict mode
|
|
41
|
+
|
|
42
|
+
### Linting
|
|
43
|
+
|
|
44
|
+
```shell
|
|
45
|
+
pnpm run lint
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Formatting
|
|
49
|
+
|
|
50
|
+
```shell
|
|
51
|
+
pnpm run format
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Versioning
|
|
55
|
+
|
|
56
|
+
This project uses [Changesets](https://github.com/changesets/changesets) for version management.
|
|
57
|
+
|
|
58
|
+
When your changes affect the published package, run:
|
|
59
|
+
|
|
60
|
+
```shell
|
|
61
|
+
pnpm changeset --empty
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Add the generated file to your commit.
|
|
65
|
+
|
|
66
|
+
## Pull Request Process
|
|
67
|
+
|
|
68
|
+
1. Create a feature branch from `main`
|
|
69
|
+
2. Make your changes
|
|
70
|
+
3. Run all checks (`typecheck`, `lint`, `format`)
|
|
71
|
+
4. Add a changeset if needed
|
|
72
|
+
5. Open a pull request with a clear title and description
|
|
73
|
+
6. If your change affects the UI, include screenshots showing before and after
|
|
74
|
+
|
|
75
|
+
## Reporting Issues
|
|
76
|
+
|
|
77
|
+
Open an issue at [github.com/hadez8877/pascal/issues](https://github.com/hadez8877/pascal/issues) with:
|
|
78
|
+
|
|
79
|
+
- A clear description of the problem
|
|
80
|
+
- Steps to reproduce
|
|
81
|
+
- Screenshots if applicable
|
|
82
|
+
- Your environment (Extension version, OS)
|
|
83
|
+
|
|
84
|
+
## Code of Conduct
|
|
85
|
+
|
|
86
|
+
This project follows the [Contributor Covenant](CODE_OF_CONDUCT.md). By participating, you agree to uphold it.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Fabricio Pasapera Viera (@Hadez)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img alt="Pascal logo" src="assets/icon.png" height="200px" />
|
|
3
|
+
<h1>Pascal</h1>
|
|
4
|
+
<p>
|
|
5
|
+
A modern dark theme for your favorite editors, shells and more
|
|
6
|
+
<br/>
|
|
7
|
+
by <a href="https://github.com/hadez8877">@Hadez</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<img alt="Version" src="https://img.shields.io/open-vsx/v/hadez8877/pascal?style=for-the-badge">
|
|
12
|
+
<img alt="Downloads" src="https://img.shields.io/open-vsx/dt/hadez8877/pascal?style=for-the-badge">
|
|
13
|
+
<img alt="Rating" src="https://img.shields.io/open-vsx/stars/hadez8877/pascal?style=for-the-badge">
|
|
14
|
+
</p>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
## What is Pascal?
|
|
18
|
+
|
|
19
|
+
Pascal is a dark theme for editors, shells, and more. The palette is tuned for long coding sessions: enough contrast to read code clearly, not so intense that your eyes notice it after an hour.
|
|
20
|
+
|
|
21
|
+
### Preview
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
#### Install using Command Palette
|
|
28
|
+
|
|
29
|
+
1. Go to `View -> Command Palette` or press `Ctrl+Shift+P`
|
|
30
|
+
2. Then enter `Install Extension`
|
|
31
|
+
3. Write `Pascal`
|
|
32
|
+
4. Select it or press Enter to install
|
|
33
|
+
|
|
34
|
+
#### Install using Git
|
|
35
|
+
|
|
36
|
+
If you are a git user, you can install the theme and keep up to date by cloning the repo:
|
|
37
|
+
|
|
38
|
+
```shell
|
|
39
|
+
git clone https://github.com/hadez8877/pascal.git ~/.<your-editor>/extensions/pascal
|
|
40
|
+
cd ~/.<your-editor>/extensions/pascal
|
|
41
|
+
|
|
42
|
+
# Install dependencies
|
|
43
|
+
pnpm install
|
|
44
|
+
|
|
45
|
+
# Build the theme
|
|
46
|
+
pnpm run build
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### Activating theme
|
|
50
|
+
|
|
51
|
+
Run your editor. The Pascal theme will be available from `File -> Preferences -> Color Theme` dropdown menu.
|
package/assets/icon.png
ADDED
|
Binary file
|
package/assets/icon.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="-0 -0 256 256"><defs><linearGradient id="g" x2="0" y2="1"><stop stop-color="#111"/><stop offset="1" stop-color="#444"/></linearGradient></defs><path fill="#f7f7f7" stroke="url(#g)" stroke-linecap="round" stroke-linejoin="round" stroke-width="28" d="M141.56 31.47c.743-.01 1.49-.018 2.25-.027 2.45-.022 4.9-.015 7.35-.006q2.56-.008 5.12-.02 5.36-.014 10.72.01c4.58.017 9.15-.007 13.73-.042 3.52-.022 7.05-.02 10.57-.012q2.53 0 5.06-.02a416 416 0 0 1 7.8.02l2.1-.036c3.85.076 5.36.59 8.36 3.08 3.27 4.05 3.44 6.37 3.09 11.59-1.93 3.85-4.28 6.42-7.5 9.25l-2.69 2.36c-3.65 3.1-7.37 6.12-11.09 9.14-2.64 2.19-5.19 4.44-7.72 6.75-4.36 3.97-8.86 7.71-13.44 11.41-3.24 2.64-6.41 5.35-9.56 8.09.67 3.31 1.91 5.94 3.52 8.9.52.96 1.04 1.92 1.58 2.91l1.71 3.12 1.77 3.25c4.67 8.53 9.47 16.98 14.32 25.41 5.17 8.99 10.2 18.07 15.26 27.12q2.86 5.11 5.72 10.21l1.92 3.43 3.65 6.49a739 739 0 0 1 3.19 5.75 135 135 0 0 0 3.29 5.55c1.55 4.24 1.55 7.59.043 11.86-2.29 3.23-5.02 5.83-7.94 8.5l-2.25 2.16c-4.62 4.41-6.76 6.45-13.28 6.52l-3.52.048-3.88.036-4.08.05c-12.43.144-24.87.22-37.3.278-9.18.045-18.36.122-27.55.242-6.46.082-12.93.12-19.39.14-3.86.01-7.71.04-11.56.106-27.82.478-27.82.478-35.44-5.92A109 109 0 0 1 50 214a137 137 0 0 0-4.66-3.71 1893 1893 0 0 1-3.96-3.22l-2.06-1.67c-8.67-7.05-8.67-7.05-9.25-11.71-.295-3.62-.053-4.71 1.62-8.12 2.65-2.94 4.55-4.34 8.5-4.84l2.4-.04 2.73-.061 2.92-.035 3.01-.059c3.17-.06 6.34-.106 9.51-.152l6.45-.117q7.9-.143 15.8-.258l-1.42-1.39a3550 3550 0 0 1-14.65-14.41q-2.73-2.69-5.47-5.37c-2.63-2.57-5.25-5.16-7.86-7.75l-2.47-2.39c-8.29-8.29-9.52-14.35-9.58-25.97l.008-4.39-.015-4.56q-.013-4.76.003-9.53c.011-4.06-.009-8.12-.038-12.18-.018-3.14-.018-6.27-.012-9.41q0-2.24-.019-4.49c-.015-2.09-.004-4.19.013-6.28v-3.6C42.11 64.31 43.52 62.13 46 59c3.37-2.15 6.66-2.45 10.62-1.89 5.57 2.09 9.6 7.28 13.66 11.49q1.59 1.61 3.19 3.22c2.79 2.82 5.56 5.66 8.32 8.5 2.83 2.9 5.68 5.78 8.53 8.67A3680 3680 0 0 1 107 106c3.09-7.32 5.56-14.72 7.82-22.32l1.04-3.47q1.63-5.45 3.26-10.89 1.1-3.67 2.21-7.35 2.02-6.73 4.04-13.47l.88-2.9a84 84 0 0 0 1.24-4.75c1.77-7.74 6.71-9.45 14.07-9.38" paint-order="stroke fill"/></svg>
|
|
Binary file
|
package/biome.jsonc
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
|
|
3
|
+
"files": {
|
|
4
|
+
"includes": ["**", "!!**/dist"]
|
|
5
|
+
},
|
|
6
|
+
"vcs": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"clientKind": "git",
|
|
9
|
+
"useIgnoreFile": true
|
|
10
|
+
},
|
|
11
|
+
"formatter": {
|
|
12
|
+
"indentStyle": "tab",
|
|
13
|
+
"indentWidth": 2,
|
|
14
|
+
"lineWidth": 100,
|
|
15
|
+
"includes": ["**", "!**/.changeset", "!**/pnpm-lock.yaml"],
|
|
16
|
+
"expand": "auto"
|
|
17
|
+
},
|
|
18
|
+
"assist": {
|
|
19
|
+
"actions": {
|
|
20
|
+
"source": {
|
|
21
|
+
"organizeImports": "on"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"linter": {
|
|
26
|
+
"enabled": true,
|
|
27
|
+
|
|
28
|
+
"domains": {
|
|
29
|
+
"test": "recommended"
|
|
30
|
+
},
|
|
31
|
+
"rules": {
|
|
32
|
+
"recommended": false,
|
|
33
|
+
"style": {
|
|
34
|
+
"useNodejsImportProtocol": "error",
|
|
35
|
+
// Enforce separate type imports for type-only imports to avoid bundling unneeded code
|
|
36
|
+
"useImportType": "error",
|
|
37
|
+
"useExportType": "error",
|
|
38
|
+
"useNumberNamespace": "warn",
|
|
39
|
+
"noInferrableTypes": "error"
|
|
40
|
+
},
|
|
41
|
+
"suspicious": {
|
|
42
|
+
// This one is specific to catch `console.log`. The rest of logs are permitted
|
|
43
|
+
"noConsole": {
|
|
44
|
+
"level": "warn",
|
|
45
|
+
"options": {
|
|
46
|
+
"allow": ["error", "warn", "info", "debug"]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"noVar": "error",
|
|
50
|
+
"noDoubleEquals": "error",
|
|
51
|
+
"noDebugger": "error",
|
|
52
|
+
"noDuplicateCase": "error",
|
|
53
|
+
"noExplicitAny": "off",
|
|
54
|
+
// To enable later
|
|
55
|
+
"noImplicitAnyLet": "off",
|
|
56
|
+
"noSparseArray": "error"
|
|
57
|
+
},
|
|
58
|
+
"correctness": {
|
|
59
|
+
"noUnusedVariables": {
|
|
60
|
+
"level": "error",
|
|
61
|
+
"options": {
|
|
62
|
+
"ignoreRestSiblings": true
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"noUnusedFunctionParameters": "error",
|
|
66
|
+
"noUnusedImports": "error",
|
|
67
|
+
"noUnreachable": "error",
|
|
68
|
+
"noConstantCondition": "warn",
|
|
69
|
+
"noConstructorReturn": "error",
|
|
70
|
+
"noEmptyPattern": "error"
|
|
71
|
+
},
|
|
72
|
+
"complexity": {
|
|
73
|
+
// There are many violations which require manual check
|
|
74
|
+
"noForEach": "off",
|
|
75
|
+
"noUselessFragments": "warn",
|
|
76
|
+
"useFlatMap": "warn",
|
|
77
|
+
// To enable later, as there are many warnings
|
|
78
|
+
"useOptionalChain": "off"
|
|
79
|
+
},
|
|
80
|
+
"performance": {
|
|
81
|
+
"noAccumulatingSpread": "warn"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"javascript": {
|
|
86
|
+
"formatter": {
|
|
87
|
+
"trailingCommas": "none",
|
|
88
|
+
"quoteStyle": "single",
|
|
89
|
+
"semicolons": "always"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"json": {
|
|
93
|
+
"parser": {
|
|
94
|
+
"allowComments": true,
|
|
95
|
+
"allowTrailingCommas": false
|
|
96
|
+
},
|
|
97
|
+
"formatter": {
|
|
98
|
+
"indentStyle": "space",
|
|
99
|
+
"trailingCommas": "none"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"overrides": [
|
|
103
|
+
{
|
|
104
|
+
// Workaround to format files like npm does
|
|
105
|
+
"includes": ["**/package.json"],
|
|
106
|
+
"json": {
|
|
107
|
+
"formatter": {
|
|
108
|
+
"expand": "always"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{window as t,workspace as e}from"vscode";const i=o=>{o.subscriptions.push(e.onDidChangeConfiguration(n=>{n.affectsConfiguration("pascal")&&t.showErrorMessage("VSCode Web doesn't support advanced Pascal options at the moment.")}))};export{i as activate};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t=async()=>{};export{t as activate};
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { globalIgnores } from 'eslint/config';
|
|
4
|
+
// plugins
|
|
5
|
+
import regexpEslint from 'eslint-plugin-regexp';
|
|
6
|
+
import tseslint from 'typescript-eslint';
|
|
7
|
+
|
|
8
|
+
const typescriptEslint = tseslint.plugin;
|
|
9
|
+
|
|
10
|
+
// parsers
|
|
11
|
+
const typescriptParser = tseslint.parser;
|
|
12
|
+
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = path.dirname(__filename);
|
|
15
|
+
|
|
16
|
+
/** @type {import('eslint').Config[]} */
|
|
17
|
+
const config = [
|
|
18
|
+
// If ignores is used without any other keys in the configuration object, then the patterns act as global ignores.
|
|
19
|
+
// ref: https://eslint.org/docs/latest/use/configure/configuration-files#globally-ignoring-files-with-ignores
|
|
20
|
+
globalIgnores(['**/.*', '**/*.d.ts', 'dist/', 'scripts/', '.github/', '.changeset/']),
|
|
21
|
+
|
|
22
|
+
...tseslint.configs.recommendedTypeChecked,
|
|
23
|
+
...tseslint.configs.stylisticTypeChecked,
|
|
24
|
+
regexpEslint.configs['flat/recommended'],
|
|
25
|
+
{
|
|
26
|
+
languageOptions: {
|
|
27
|
+
parser: typescriptParser,
|
|
28
|
+
parserOptions: {
|
|
29
|
+
// See https://typescript-eslint.io/blog/project-service/
|
|
30
|
+
projectService: true,
|
|
31
|
+
tsconfigRootDir: __dirname
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
plugins: {
|
|
35
|
+
'@typescript-eslint': typescriptEslint,
|
|
36
|
+
regexp: regexpEslint
|
|
37
|
+
},
|
|
38
|
+
rules: {
|
|
39
|
+
// Type-aware rules that Biome cannot replace
|
|
40
|
+
'@typescript-eslint/switch-exhaustiveness-check': 'error',
|
|
41
|
+
'@typescript-eslint/no-shadow': 'error',
|
|
42
|
+
|
|
43
|
+
// Disable "no-floating-promises" rule for all source files until we have the bandwidth to address all the errors.
|
|
44
|
+
'@typescript-eslint/no-floating-promises': 'off',
|
|
45
|
+
|
|
46
|
+
// Disabled - now handled by Biome
|
|
47
|
+
'no-console': 'off', // Biome: suspicious.noConsole
|
|
48
|
+
'@typescript-eslint/no-unused-vars': 'off', // Biome: correctness.noUnusedVariables
|
|
49
|
+
'prefer-const': 'off', // Biome: style.useConst
|
|
50
|
+
'@typescript-eslint/consistent-type-imports': 'off', // Biome: style.useImportType
|
|
51
|
+
'@typescript-eslint/await-thenable': 'off',
|
|
52
|
+
'@typescript-eslint/array-type': 'off',
|
|
53
|
+
'@typescript-eslint/ban-ts-comment': 'off',
|
|
54
|
+
'@typescript-eslint/class-literal-property-style': 'off',
|
|
55
|
+
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
|
56
|
+
'@typescript-eslint/consistent-type-definitions': 'off',
|
|
57
|
+
'@typescript-eslint/dot-notation': 'off',
|
|
58
|
+
'@typescript-eslint/no-inferrable-types': 'off',
|
|
59
|
+
'@typescript-eslint/no-base-to-string': 'off',
|
|
60
|
+
'@typescript-eslint/no-empty-function': 'off',
|
|
61
|
+
'@typescript-eslint/no-misused-promises': 'off',
|
|
62
|
+
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
|
63
|
+
'@typescript-eslint/no-this-alias': 'off',
|
|
64
|
+
'@typescript-eslint/no-unsafe-argument': 'off',
|
|
65
|
+
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
66
|
+
'@typescript-eslint/no-unsafe-call': 'off',
|
|
67
|
+
'@typescript-eslint/no-unsafe-member-access': 'off',
|
|
68
|
+
'@typescript-eslint/no-unused-expressions': 'off',
|
|
69
|
+
'@typescript-eslint/only-throw-error': 'off',
|
|
70
|
+
'@typescript-eslint/no-unsafe-return': 'off',
|
|
71
|
+
'@typescript-eslint/no-unnecessary-type-assertion': 'off',
|
|
72
|
+
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
|
73
|
+
'@typescript-eslint/prefer-optional-chain': 'off',
|
|
74
|
+
'@typescript-eslint/prefer-promise-reject-errors': 'off',
|
|
75
|
+
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
|
76
|
+
'@typescript-eslint/require-await': 'off',
|
|
77
|
+
'@typescript-eslint/restrict-plus-operands': 'off',
|
|
78
|
+
'@typescript-eslint/restrict-template-expressions': 'off',
|
|
79
|
+
'@typescript-eslint/sort-type-constituents': 'off',
|
|
80
|
+
'@typescript-eslint/unbound-method': 'off',
|
|
81
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
82
|
+
|
|
83
|
+
// Regex-specific rules (no Biome equivalent)
|
|
84
|
+
'regexp/use-ignore-case': 'off',
|
|
85
|
+
'regexp/prefer-regexp-exec': 'warn',
|
|
86
|
+
'regexp/prefer-regexp-test': 'warn'
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
|
|
91
|
+
export default config;
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pascal-vscode",
|
|
3
|
+
"displayName": "Pascal",
|
|
4
|
+
"publisher": "hadez8877",
|
|
5
|
+
"description": "A modern dark theme for many editors, shells, and more!",
|
|
6
|
+
"version": "0.0.0",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/extension.js",
|
|
9
|
+
"browser": "dist/browser.js",
|
|
10
|
+
"categories": [
|
|
11
|
+
"Themes"
|
|
12
|
+
],
|
|
13
|
+
"icon": "assets/icon.png",
|
|
14
|
+
"activationEvents": [
|
|
15
|
+
"onStartupFinished"
|
|
16
|
+
],
|
|
17
|
+
"contributes": {
|
|
18
|
+
"themes": [
|
|
19
|
+
{
|
|
20
|
+
"label": "Pascal (Default)",
|
|
21
|
+
"uiTheme": "vs-dark",
|
|
22
|
+
"path": "themes/default.json"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"configuration": {
|
|
27
|
+
"title": "Pascal",
|
|
28
|
+
"properties": {
|
|
29
|
+
"pascal.editorTheme": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"default": "Pascal (Default)",
|
|
32
|
+
"markdownDescription": "Switch to different editor theme",
|
|
33
|
+
"enum": [
|
|
34
|
+
"Pascal (Default)"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/hadez8877/pascal.git"
|
|
42
|
+
},
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/hadez8877/pascal/issues"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsc -b && node scripts/build.js --minify",
|
|
48
|
+
"lint": "biome lint . && eslint --cache --concurrency=auto .",
|
|
49
|
+
"format": "pnpm run format:code && pnpm run format:imports",
|
|
50
|
+
"format:code": "biome format --write && prettier -w \"**/*\" --ignore-unknown --cache",
|
|
51
|
+
"format:imports": "biome check --formatter-enabled=false --write",
|
|
52
|
+
"version": "changeset version && pnpm install --no-frozen-lockfile && pnpm run format"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@biomejs/biome": "2.4.15",
|
|
56
|
+
"@changesets/changelog-github": "^0.5.2",
|
|
57
|
+
"@changesets/cli": "^2.29.8",
|
|
58
|
+
"@types/node": "^24.10.1",
|
|
59
|
+
"@types/vscode": "^1.88.0",
|
|
60
|
+
"@vscode/vsce": "^3.9.2",
|
|
61
|
+
"esbuild": "0.27.3",
|
|
62
|
+
"eslint": "^10.4.0",
|
|
63
|
+
"eslint-plugin-regexp": "^3.1.1",
|
|
64
|
+
"ovsx": "^0.10.10",
|
|
65
|
+
"piccolore": "0.1.3",
|
|
66
|
+
"prettier": "^3.8.4",
|
|
67
|
+
"tinyglobby": "0.2.16",
|
|
68
|
+
"tsdown": "^0.22.2",
|
|
69
|
+
"typescript": "~6.0.3",
|
|
70
|
+
"typescript-eslint": "^8.56.1"
|
|
71
|
+
},
|
|
72
|
+
"license": "MIT",
|
|
73
|
+
"engines": {
|
|
74
|
+
"node": ">=22.12.0",
|
|
75
|
+
"vscode": "^1.88.0"
|
|
76
|
+
},
|
|
77
|
+
"packageManager": "pnpm@11.9.0"
|
|
78
|
+
}
|