Skip to content

Commit dcad48b

Browse files
ARHAEEMImgBotApp
authored andcommitted
Enhances extension with diagnostics and IntelliSense
Adds real-time error diagnostics, function validation, and comment warnings for formulas. Implements comprehensive IntelliSense with auto-completion for functions and parameter hints. Applies an Airtable-matching color scheme for accurate syntax highlighting. Introduces v2 formatters for adaptive beautifying and safe minification, with version selection. Extends file support for minified formulas and updates configuration options. Overhauls release workflow for manual triggering, pre-releases, and publishing to multiple marketplaces. Improves CI/CD caching and dependency management.
1 parent 013d7d6 commit dcad48b

12 files changed

Lines changed: 2774 additions & 21 deletions

.github/workflows/setup-guide.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# VS Code Extension Release Setup Guide
2+
3+
## Required Secrets Configuration
4+
5+
To use the improved release workflow, you'll need to set up the following GitHub repository secrets:
6+
7+
### 1. VSCE_PAT (Visual Studio Code Marketplace Personal Access Token)
8+
Required for publishing to the VS Code Marketplace.
9+
10+
**Steps to create VSCE_PAT:**
11+
1. Go to https://dev.azure.com/
12+
2. Sign in with your Microsoft account (create one if needed)
13+
3. Click on your profile icon → Personal access tokens
14+
4. Click "New Token"
15+
5. Configure the token:
16+
- Name: "VSCode Extension Publishing"
17+
- Organization: "All accessible organizations"
18+
- Expiration: Choose appropriate duration (recommended: 1 year)
19+
- Scopes: Select "Marketplace" → "Manage"
20+
6. Copy the generated token
21+
7. Go to your GitHub repository → Settings → Secrets and variables → Actions
22+
8. Click "New repository secret"
23+
9. Name: VSCE_PAT
24+
10. Value: Paste your copied token
25+
26+
### 2. OVSX_PAT (Open VSX Registry Personal Access Token)
27+
Required for publishing to the Open VSX Registry (alternative marketplace).
28+
29+
**Steps to create OVSX_PAT:**
30+
1. Go to https://open-vsx.org/
31+
2. Sign in with your GitHub account
32+
3. Go to https://open-vsx.org/user-settings/tokens
33+
4. Click "Create a new Access Token"
34+
5. Enter description: "VSCode Extension Publishing"
35+
6. Click "Create"
36+
7. Copy the generated token
37+
8. Go to your GitHub repository → Settings → Secrets and variables → Actions
38+
9. Click "New repository secret"
39+
10. Name: OVSX_PAT
40+
11. Value: Paste your copied token
41+
42+
## Package.json Requirements
43+
44+
Your package.json should include:
45+
46+
```json
47+
{
48+
"publisher": "your-publisher-name",
49+
"scripts": {
50+
"package": "vsce package",
51+
"build": "your-build-command",
52+
"test": "your-test-command"
53+
}
54+
}
55+
```
56+
57+
## Workflow Features
58+
59+
The improved workflow includes:
60+
- ✅ Node.js 20 support
61+
- ✅ PNPM caching for faster builds
62+
- ✅ Pre-release support
63+
- ✅ Dual marketplace publishing (VS Code + Open VSX)
64+
- ✅ Manual workflow dispatch
65+
- ✅ Comprehensive testing and validation
66+
- ✅ Automatic GitHub release creation
67+
- ✅ Security permissions configuration
68+
- ✅ Build artifact uploading
69+
- ✅ Error handling and validation
70+
71+
## Usage
72+
73+
1. **Automatic Release**: Create a GitHub release (tag) to trigger the workflow
74+
2. **Manual Release**: Use GitHub Actions → Run workflow with custom parameters
75+
3. **Pre-release**: Create a pre-release on GitHub to publish as pre-release
76+
77+
## Troubleshooting
78+
79+
Common issues and solutions:
80+
81+
1. **Permission denied**: Ensure your PAT has correct scopes
82+
2. **Publisher not found**: Verify publisher name in package.json matches your Azure DevOps publisher
83+
3. **Build failures**: Check that your build/test scripts work locally first
84+
4. **Missing files**: Ensure VSIX is generated correctly in the package step
85+
86+
## Migration from Current Workflow
87+
88+
To migrate from your current workflow:
89+
90+
1. **Replace your current release.yml** with the improved version
91+
2. **Set up the required secrets** (VSCE_PAT and OVSX_PAT)
92+
3. **Update package.json** to include required scripts
93+
4. **Test the workflow** with a manual dispatch first
94+
5. **Create a test release** to verify everything works
95+
96+
## Best Practices
97+
98+
- **Use semantic versioning** for your releases (v1.0.0, v1.1.0, etc.)
99+
- **Test locally** before releasing: `pnpm run build && pnpm run test && pnpm run package`
100+
- **Set up branch protection** to prevent direct pushes to main
101+
- **Use pre-releases** for beta testing before stable releases
102+
- **Monitor the workflow runs** in the Actions tab for any issues
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
{
2+
"comments": {
3+
"lineComment": "//",
4+
"blockComment": [
5+
"/*",
6+
"*/"
7+
]
8+
},
9+
"wordPattern": "[a-zA-Z_][a-zA-Z0-9_]*",
10+
"indentationRules": {
11+
"increaseIndentPattern": "^\\s*\\(.*[^)]\\s*$",
12+
"decreaseIndentPattern": "^\\s*\\)"
13+
},
14+
"folding": {
15+
"markers": {
16+
"start": "^\\s*\\(",
17+
"end": "^\\s*\\)"
18+
}
19+
},
20+
"brackets": [
21+
[
22+
"{",
23+
"}"
24+
],
25+
[
26+
"[",
27+
"]"
28+
],
29+
[
30+
"(",
31+
")"
32+
]
33+
],
34+
"autoClosingPairs": [
35+
{
36+
"open": "\"",
37+
"close": "\"",
38+
"notIn": [
39+
"string",
40+
"comment"
41+
]
42+
},
43+
{
44+
"open": "'",
45+
"close": "'",
46+
"notIn": [
47+
"string",
48+
"comment"
49+
]
50+
},
51+
{
52+
"open": "(",
53+
"close": ")"
54+
},
55+
{
56+
"open": "[",
57+
"close": "]"
58+
},
59+
{
60+
"open": "{",
61+
"close": "}"
62+
}
63+
],
64+
"surroundingPairs": [
65+
[
66+
"\"",
67+
"\""
68+
],
69+
[
70+
"'",
71+
"'"
72+
],
73+
[
74+
"(",
75+
")"
76+
],
77+
[
78+
"[",
79+
"]"
80+
],
81+
[
82+
"{",
83+
"}"
84+
]
85+
]
86+
}

0 commit comments

Comments
 (0)