Skip to content

Commit 5733c17

Browse files
committed
Initial commit: Cloudinary VS Code Extension
0 parents  commit 5733c17

34 files changed

+6866
-0
lines changed

.eslintrc.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"root": true,
3+
"parser": "@typescript-eslint/parser",
4+
"parserOptions": {
5+
"ecmaVersion": 6,
6+
"sourceType": "module"
7+
},
8+
"plugins": ["@typescript-eslint"],
9+
"rules": {
10+
"@typescript-eslint/naming-convention": [
11+
"warn",
12+
{
13+
"selector": "import",
14+
"format": ["camelCase", "PascalCase"]
15+
}
16+
],
17+
"curly": "warn",
18+
"eqeqeq": "warn",
19+
"no-throw-literal": "warn",
20+
"semi": "off"
21+
},
22+
"ignorePatterns": ["out", "dist", "**/*.d.ts"]
23+
}

.github/workflows/ci.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
types: [opened, synchronize, reopened]
8+
push:
9+
branches:
10+
- main
11+
12+
jobs:
13+
build-and-test:
14+
name: Build and Test
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Node.js
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: "20"
25+
cache: npm
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Run linting
31+
run: npm run lint
32+
33+
- name: Compile extension
34+
run: npm run compile
35+
36+
- name: Setup virtual display for Linux
37+
run: |
38+
sudo apt-get update
39+
sudo apt-get install -y xvfb
40+
41+
- name: Run tests with virtual display
42+
run: xvfb-run -a npm test
43+
env:
44+
CI: true
45+
DISPLAY: :99

.github/workflows/pr-package.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
types: [opened, synchronize, reopened]
8+
push:
9+
branches:
10+
- main
11+
12+
jobs:
13+
build-and-test:
14+
name: Build and Test
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Node.js
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: "20"
25+
cache: npm
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Run linting
31+
run: npm run lint
32+
33+
- name: Compile extension
34+
run: npm run compile
35+
36+
- name: Setup virtual display for Linux
37+
run: |
38+
sudo apt-get update
39+
sudo apt-get install -y xvfb
40+
41+
- name: Run tests with virtual display
42+
run: xvfb-run -a npm test
43+
env:
44+
CI: true
45+
DISPLAY: :99

.gitignore

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Compiled output
2+
out/
3+
*.js
4+
*.js.map
5+
6+
# Node modules
7+
node_modules/
8+
9+
# VS Code extension testing
10+
.vscode-test/
11+
12+
# Extension packages
13+
*.vsix
14+
15+
# Internal development files
16+
internal/
17+
18+
# Logs
19+
*.log
20+
npm-debug.log*
21+
22+
# Runtime data
23+
pids
24+
*.pid
25+
*.seed
26+
*.pid.lock
27+
28+
# OS generated files
29+
.DS_Store
30+
.DS_Store?
31+
._*
32+
.Spotlight-V100
33+
.Trashes
34+
ehthumbs.db
35+
Thumbs.db
36+
37+
# Editor directories and files
38+
.vscode/settings.json
39+
.vscode/launch.json
40+
.vscode/extensions.json
41+
*.swp
42+
*.swo
43+
*~
44+
45+
# Temporary files
46+
*.tmp
47+
*.temp

.vscodeignore

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Source files
2+
src/**
3+
tsconfig.json
4+
.gitignore
5+
6+
# Development files
7+
.vscode/**
8+
.vscode-test/**
9+
node_modules/**
10+
internal/**
11+
12+
# Test files
13+
**/test/**
14+
**/*.test.ts
15+
**/*.test.js
16+
17+
# Build artifacts
18+
out/test/**
19+
out/**/*.map
20+
21+
# Documentation and meta files
22+
.github/**
23+
vsc-extension-quickstart.md
24+
CONTRIBUTING.md
25+
26+
# Logs and temporary files
27+
*.log
28+
npm-debug.log*
29+
*.tmp
30+
*.temp
31+
32+
# OS files
33+
.DS_Store
34+
Thumbs.db
35+
36+
# Package files
37+
*.vsix

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Changelog
2+
3+
All notable changes to the Cloudinary VS Code extension will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.1.0] - 2024-01-XX
9+
10+
### Added
11+
- **Asset Explorer** - Browse Cloudinary folders and assets in VS Code Tree View
12+
- **Search & Filter** - Find assets by public ID or filter by resource type (image, video, raw)
13+
- **Optimized Preview** - Preview images and videos with automatic format and quality optimization
14+
- **Right-click Actions** - Copy Public ID, Secure URL, or Optimized URL directly from context menu
15+
- **Upload Widget** - Upload files directly to Cloudinary from VS Code with upload preset selection
16+
- **Environment Switching** - Switch between multiple Cloudinary product environments
17+
- **Status Bar Indicator** - Shows active Cloudinary environment in VS Code status bar
18+
- **Configuration Management** - Support for both global and workspace-specific configuration files
19+
- **Welcome Screen** - Getting started guide for new users
20+
- **Error Handling** - Comprehensive error handling with user-friendly messages
21+
22+
### Features
23+
- Tree view integration with VS Code Activity Bar
24+
- Drag and drop support in upload widget
25+
- Asset refresh functionality
26+
- Support for both fixed and dynamic folder modes
27+
- Configurable upload presets
28+
- Beta version with ongoing feature development
29+
30+
### Technical
31+
- Built with TypeScript
32+
- Uses Cloudinary Admin API for asset management
33+
- Integrates Cloudinary Upload Widget
34+
- Comprehensive test suite
35+
- ESLint code quality checks
36+
- VS Code Extension API compliance

0 commit comments

Comments
 (0)