p-doom/crowd-code-dataset-0.2 huggingface dataset:
[content] README.md (markdown)
This extension provides functionality to record IDE actions. Currently supported actions include text insertions, deletions, undo, redo, cursor movement (including VIM motions), file switches, terminal invocation and terminal command execution (both input and output). The changes are recorded in a CSV file and can be processed to generate output files in SRT and JSON formats. 

All uncaptured data is lost data. We want to crowd-source a dense dataset of IDE actions to eventually finetune models on. This would (to the best of our knowledge) constitute the first crowd-sourced dataset of dense IDE actions.

We thank Mattia Consiglio for his awesome work on the upstream repository, which made our lives infinitely easier.

## 📚 Table of Contents

- [⚫ crowd-code](#-crowd-code)
  - [📚 Table of Contents](#-table-of-contents)
  - [📖 Usage](#-usage)
  - [📄 Output](#-output)
  - [▶️ Play it back!](#️-play-it-back)
  - [🔧 Extension Settings](#-extension-settings)
  - [⚙️ Requirements](#️-requirements)
  - [🐛 Known Issues](#-known-issues)
  - [🤝 Contributing](#-contributing)
  - [💸 Support me](#-support-me)
  - [📝 Release Notes](#-release-notes)

## 📖 Usage

![crowd-code Extension](https://raw.githubusercontent.com/mattia-consiglio/vs-code-recorder/main/img/preview.gif)

As soon as the extension activates, recording commences automatically. Recording automatically stop upon IDE closure.
Additionally, you can control the recording in two ways:

1. Using the status bar (on the right): Click on "Start recording" to begin and "Stop recording" to end.
2. Using the VS Code Recorder sidebar: Click on the extension icon in the activity bar to open the sidebar, where you can:
   - Start/Stop the recording
   - View the recording timer
   - See the current file being recorded
   - Manage your recorded files
   - Add the export path to .gitignore

The extension will automatically record changes in your text editor. When you stop the recording, it will finalize the data and save it to a CSV (source), JSON and SRT files.

You can customize the recording experience with these features:

- Choose the export formats (SRT or JSON or both)
- Set custom names for recording folders
- Automatically add the export path to .gitignore

You can also use the command palette to access the extension's features.
Available commands:

- `vs-code-recorder.startRecording`: Start the recording
- `vs-code-recorder.stopRecording`: Stop the recording
- `vs-code-recorder.openSettings`: Open the extension settings
[content] README.md (markdown)
## 🚀 Building and Releasing

### Local Development

To build the extension locally:

```bash
# Install dependencies
npm install

# Build the extension
npm run package

# Package as .vsix file
npm run vsce:package
```

This will create a `.vsix` file that you can install in VS Code.

### Automated Releases

This project uses GitHub Actions to automatically build and release the extension when you push a version tag:

1. **Update the version** in `package.json`
2. **Create and push a version tag**:
   ```bash
   git tag v1.1.2
   git push origin v1.1.2
   ```
3. **The workflow will automatically**:
   - Build the extension
   - Package it using `vsce package`
   - Create a GitHub release with the `.vsix` file

You can also manually trigger the workflow from the GitHub Actions tab.
[content] README.md (markdown)
## 🚀 Building and Releasing

### Local Development

To build the extension locally:

```bash
# Install dependencies
npm install

# Build the extension
npm run package

# Package as .vsix file
npm run vsce:package

# Or build and package in one command
npm run release
```

This will create a `.vsix` file that you can install in VS Code.

### Automated Releases

This project uses GitHub Actions to automatically build and release the extension when you push a version tag:

1. **Update the version** in `package.json`
2. **Create and push a version tag**:
   ```bash
   git tag v1.1.2
   git push origin v1.1.2
   ```
3. **The workflow will automatically**:
   - Build the extension
   - Package it using `vsce package`
   - Create a GitHub release with the `.vsix` file

You can also manually trigger the workflow from the GitHub Actions tab.
[tab] .github/workflows/release.yml (yaml)
name: Build and Release Extension

on:
  push:
    tags:
      - 'v*' # Trigger on version tags like v1.0.0
  workflow_dispatch: # Allow manual triggering

jobs:
  build-and-release:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'
          cache: 'npm'
          
      - name: Install dependencies
        run: npm ci
        
      - name: Install vsce
        run: npm install -g @vscode/vsce
        
      - name: Build extension
        run: npm run package
        
      - name: Package extension
        run: vsce package
        
      - name: Get version from package.json
        id: get_version
        run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
        
      - name: Get tag name
        id: get_tag
        run: |
          if [[ $GITHUB_REF == refs/tags/* ]]; then
            echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
          else
            echo "tag=v${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT
          fi
          
      - name: Create Release
        uses: softprops/action-gh-release@v1
        with:
          tag_name: ${{ steps.get_tag.outputs.tag }}
          name: Release ${{ steps.get_tag.outputs.tag }}
          body: |
            ## What's Changed
            
            This release includes the latest updates to the crowd-code extension.
            
            ### Installation
            
            Download the `.vsix` file and install it in VS Code:
            1. Open VS Code
            2. Go to Extensions (Ctrl+Shift+X)
            3. Click the "..." menu and select "Install from VSIX..."
            4. Select the downloaded file
            
            ### Changes
            
            See [CHANGELOG.md](CHANGELOG.md) for detailed changes.
          files: |
            crowd-code-${{ steps.get_version.outputs.version }}.vsix
          draft: false
          prerelease: false
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
[tab] .github/workflows/release.yml (yaml)
name: Build and Release Extension

on:
  push:
    tags:
      - 'v*' # Trigger on version tags like v1.0.0
  workflow_dispatch: # Allow manual triggering

jobs:
  build-and-release:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'
          cache: 'npm'
          
      - name: Install dependencies
        run: npm ci
        
      - name: Install vsce
        run: npm install -g @vscode/vsce
        
      - name: Build extension
        run: npm run package
        
      - name: Package extension
        run: vsce package
        
      - name: Get version from package.json
        id: get_version
        run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
        
      - name: Get tag name
        id: get_tag
        run: |
          if [[ $GITHUB_REF == refs/tags/* ]]; then
            echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
          else
            echo "tag=v${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT
          fi
          
      - name: Create Release
        uses: softprops/action-gh-release@v1
        with:
          tag_name: ${{ steps.get_tag.outputs.tag }}
          name: Release ${{ steps.get_tag.outputs.tag }}
          body: |
            ### Installation
            
            1. Open VS Code/Cursor
            2. Press Ctrl+Shift+P and search for "Extensions: Install from VSIX"
            3. Select the downloaded file
            
            ### Changes
            
            See [CHANGELOG.md](CHANGELOG.md) for detailed changes.
          files: |
            crowd-code-${{ steps.get_version.outputs.version }}.vsix
          draft: false
          prerelease: false
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}