Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: CI

on:
push:
branches: [dev]
pull_request:
branches: [dev]

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm test
- run: npm run package
- uses: actions/upload-artifact@v4
with:
name: atomic-vscode-vsix
path: "*.vsix"
if-no-files-found: error
13 changes: 13 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Atomic Extension",
"type": "extensionHost",
"request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"preLaunchTask": "npm: build"
}
]
}
12 changes: 12 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "build",
"problemMatcher": "$tsc",
"group": "build",
"label": "npm: build"
}
]
}
9 changes: 9 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.github/**
.gitignore
.vscode/**
.test-dist/**
src/**
test/**
tsconfig*.json
package-lock.json
**/*.map
51 changes: 49 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,52 @@
# Atomic for Visual Studio Code

Source Control integration for [Atomic](https://github.com/atomicdotdev/atomic).
Use [Atomic](https://github.com/atomicdotdev/atomic) from Visual Studio Code's built-in Source Control view.

Development is tracked through pull requests against the `dev` branch.
## Features

- Shows modified, added, deleted, untracked, and conflicted files.
- Records tracked changes from the Source Control message box.
- Adds untracked files and restores tracked files from context menus.
- Opens working-copy diffs and editor gutter quick diffs.
- Shows the current Atomic view in the status bar and switches views from a picker.
- Supports multi-root workspaces with one Source Control provider per Atomic repository.

## Requirements

Install an Atomic CLI version that supports the versioned integration commands:

```console
atomic status --json
atomic view list --json
```

The extension runs the CLI directly in each workspace folder. It does not require a running Atomic server. Configure a non-default executable with `atomic.path`.
External records and view switches are detected through repository metadata. After an external `atomic add`, use the Source Control refresh button if the working file itself did not change.

## Usage

1. Open a folder whose root contains `.atomic`.
2. Open the Source Control view.
3. Add untracked files or inspect tracked changes.
4. Enter a message and press `Ctrl+Enter` (`Cmd+Enter` on macOS) to record.

Restoring a file discards its unrecorded tracked changes, so the extension asks for confirmation first.

## Development

```console
npm install
npm test
npm run build
npm run package
```

Press `F5` in VS Code to launch an Extension Development Host after running `npm install`.

## Protocol compatibility

The extension validates `schema_version` before consuming CLI JSON. A newer incompatible Atomic CLI produces a clear error instead of silently misclassifying files.

## License

Apache-2.0
Loading
Loading