Warning: This extension currently supports Ubuntu only. Compatibility with other Linux distributions or operating systems is not guaranteed.
What's in the folder
- This folder contains all of the files necessary for your extension.
package.json- this is the manifest file in which you declare your extension and command.- The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
src/extension.ts- this is the main file where you will provide the implementation of your command.- The file exports one function,
activate, which is called the very first time your extension is activated (in this case by executing the command). Inside theactivatefunction we callregisterCommand. - We pass the function containing the implementation of the command as the second parameter to
registerCommand.
- The file exports one function,
Setup
- Install the recommended extensions (amodio.tsl-problem-matcher, ms-vscode.extension-test-runner, and dbaeumer.vscode-eslint).
Get up and running straight away
- Press
F5to open a new window with your extension loaded. - Run your command from the command palette by pressing (
Ctrl+Shift+PorCmd+Shift+Pon Mac) and typingHello World. - Set breakpoints in your code inside
src/extension.tsto debug your extension. - Find output from your extension in the debug console.
Make changes
- You can relaunch the extension from the debug toolbar after changing code in
src/extension.ts. - You can also reload (
Ctrl+RorCmd+Ron Mac) the VS Code window with your extension to load your changes.
Explore the API
- You can open the full set of our API when you open the file
node_modules/@types/vscode/index.d.ts.
Run tests
- Install the Extension Test Runner.
- Run the "watch" task via the Tasks: Run Task command. Make sure this is running, or tests might not be discovered.
- Open the Testing view from the activity bar and click the Run Test" button, or use the hotkey
Ctrl/Cmd + ; A. - See the output of the test result in the Test Results view.
- Make changes to
src/test/extension.test.tsor create new test files inside thetestfolder.- The provided test runner will only consider files matching the name pattern
**.test.ts. - You can create folders inside the
testfolder to structure your tests any way you want.
- The provided test runner will only consider files matching the name pattern
Contributing
We welcome contributions to improve this extension! Follow these steps to contribute:
-
Fork the Repository:
- Click the "Fork" button on the GitHub repository page.
-
Clone Your Fork:
git clone https://github.com/<your-username>/vsc-music-ext.git cd vsc-music-ext -
Install Dependencies:
npm install -
Make Changes:
- Edit the code in the
src/folder.
- Edit the code in the
-
Test Your Changes:
- Run the extension locally by pressing
F5in VS Code. - Ensure all tests pass:
npm test
- Run the extension locally by pressing
-
Submit a Pull Request:
- Push your changes to your fork:
git push origin <branch-name> - Open a pull request on the original repository.
- Push your changes to your fork:
Development and Testing
To develop and test the extension locally:
-
Install Required Tools:
- Ensure
playerctlis installed on your Ubuntu system:sudo apt install -y playerctl
- Ensure
-
Run the Extension:
- Open the project in VS Code.
- Press
F5to launch a new VS Code window with the extension loaded.
-
Debugging:
- Add breakpoints in
src/extension.tsto debug your code. - Use the Debug Console to view logs.
- Add breakpoints in
-
Build the Extension:
- Run the build script:
npm run build
- Run the build script:
-
Package the Extension:
- Create a
.vsixfile for local installation:npx vsce package
- Create a
-
Install Locally:
- Install the
.vsixfile in VS Code:- Open the Extensions view (
Ctrl+Shift+X). - Click the
...menu and select Install from VSIX....
- Open the Extensions view (
- Install the
Go further
- Reduce the extension size and improve the startup time by bundling your extension.
- Publish your extension on the VS Code extension marketplace.
- Automate builds by setting up Continuous Integration.