Skip to content

jye-sf/lightning-language-server

 
 

Repository files navigation

CircleCI License
npm (scoped) npm (scoped) npm (scoped) Commitizen friendly

Lightning Language Servers

Mono repo for the LWC and Aura Language Services that are used in the Salesforce Extensions for VS Code.

Issues & Features

Open issues and feature requests on the Salesforce VSCode Extensions Repository.

Setup Development Environment

Pre-requisites

Follow the pre-requisites here: https://github.com/forcedotcom/salesforcedx-vscode/blob/develop/CONTRIBUTING.md

Clone this repository and Salesforce VSCode Extensions

git clone git@github.com:forcedotcom/lightning-language-server.git
git clone git@github.com:forcedotcom/salesforcedx-vscode.git

Note: These projects need to be cloned into the same parent directory

Setup lightning-language-server repository

cd lightning-language-server
yarn install
yarn link-lsp

Setup Salesforce VSCode Extensions repository

cd ../salesforcedx-vscode
npm install
npm run link-lsp
npm run compile

Open both repositories in a vscode workspace

cd lightning-language-server
code ./vscode-workspaces/multiroot-simple.code-workspace # or
code ./vscode-workspaces/multiroot-flat.code-workspace

The "simple" workspace will effectively show two main nodes in the Explorer, while "flat" will show each package separately.

Simple:

Flat:

Debugging with VSCode

Run 'Launch DX - Aura & LWC' from the VSCode debug view (its the last one in that long list).

Recompile on change

cd ../lightning-language-server
yarn watch
cd ../salesforcedx-vscode
npm run watch

Note: You need to restart vscode each time you make changes to the language server or the lightning vscode extensions. Easiest way to do this is to kill the vscode client and hit F5 to relaunch your debugger.

Publishing

Automated publish to NPM

Automated deploys to NPM will occur weekly on Sundays @midnight via CircleCI. https://circleci.com/gh/forcedotcom/lightning-language-server/tree/main

On-Demand publish to NPM

If you want to have CircleCI publish the current main branch to NPM, you can run the following script to trigger the deploy job to run:

curl -v -u ${CircleCIToken}: -X POST --header "Content-Type: application/json" -d '{
  "branch": "main",
  "parameters": {
    "deploy": true,
    "version": "patch"
  }
}' https://circleci.com/api/v2/project/gh/forcedotcom/lightning-language-server/pipeline

You can also modify the version parameter in the curl script to configure how the version is bumped. Valid values are: [major | minor | patch | premajor | preminor | prepatch | prerelease]. By default the weekly builds only bump the patch version.

Note: You need to substitute in your own ${CircleCIToken} to make this script work. You can create a Personal API Token by following the instructions here: https://circleci.com/docs/2.0/managing-api-tokens/#creating-a-personal-api-token

Manual publish to NPM (from your local machine)

yarn bump-versions
yarn publish-lsp

Note: you will have to be authenticated to an account that has access to the @salesforce org on NPM

About

LWC and Aura Language Servers - shipped as part of the Salesforce VSCode Extensions

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 81.9%
  • TypeScript 13.8%
  • HTML 3.1%
  • Emacs Lisp 1.0%
  • CSS 0.2%
  • Shell 0.0%