Skip to content

Error: Couldn't resolve parser "apex" #822

Open
@test01bodacious

Description

@test01bodacious

I am using the following settings and it's not formatting .cls apex class files and giving the error "Couldn't resolve parser "apex""

Logs:
["INFO" - 2:08:41 AM] Formatting file:///c%3A/Users/myusername/Desktop/Workspace/VS%20Code/DevEdProj1/force-app/main/default/classes/Demo1.cls
["DEBUG" - 2:08:41 AM] Local prettier module path: C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier
["DEBUG" - 2:08:41 AM] Using prettier version 3.3.3
["INFO" - 2:08:41 AM] Using config file at C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier-plugin-apex\node_modules\wait-on.prettierrc.js
["DEBUG" - 2:08:41 AM] Local prettier module path: C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier
["INFO" - 2:08:41 AM] PrettierInstance:
{
"modulePath": "C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier",
"messageResolvers": {},
"version": "3.3.3"
}
["INFO" - 2:08:41 AM] Using ignore file (if present) at c:\Users\myusername\Desktop\Workspace\VS Code\DevEdProj1.prettierignore
["INFO" - 2:08:41 AM] File Info:
{
"ignored": false,
"inferredParser": "apex"
}
["INFO" - 2:08:41 AM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 2:08:41 AM] Prettier Options:
{
"filepath": "c:\Users\myusername\Desktop\Workspace\VS Code\DevEdProj1\force-app\main\default\classes\Demo1.cls",
"parser": "apex",
"tabWidth": 4,
"singleQuote": true,
"printWidth": 150,
"trailingComma": "none"
}
["ERROR" - 2:08:41 AM] Error formatting document.
["ERROR" - 2:08:41 AM] Couldn't resolve parser "apex".
ConfigError: Couldn't resolve parser "apex".
at getParserPluginByParserName (file:///C:/Users/myusername/AppData/Roaming/nvm/v20.18.0/node_modules/prettier/index.mjs:20571:9)
at normalizeFormatOptions (file:///C:/Users/myusername/AppData/Roaming/nvm/v20.18.0/node_modules/prettier/index.mjs:20645:24)
at formatWithCursor (file:///C:/Users/myusername/AppData/Roaming/nvm/v20.18.0/node_modules/prettier/index.mjs:21333:52)
at file:///C:/Users/myusername/AppData/Roaming/nvm/v20.18.0/node_modules/prettier/index.mjs:22728:12
at async Module.format2 (file:///C:/Users/myusername/AppData/Roaming/nvm/v20.18.0/node_modules/prettier/index.mjs:22733:25)
["INFO" - 2:08:41 AM] Formatting completed in 16ms.

My settings:

I have installed plugin globally

node version: v20.18.0 (latest LTS)
prettier version: 3.3.3
prettier-plugin-apex version: 2.1.5
@prettier/plugin-xml version: 3.4.1

Java version: java 17.0.4.1 2022-08-18 LTS (VS Code Java Home path configured)

VS Code Extension "Prettier - Code formatter" version: v11.0.0

Using Using native executables:
npx install-apex-executables

.prettierrc.js Path:
"C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier-plugin-apex\node_modules\wait-on.prettierrc.js"

.prettierrc.js File
module.exports = {
tabWidth: 4,
singleQuote: true,
printWidth: 150,
trailingComma: "none",
//plugins: ["prettier-plugin-apex", "@prettier/plugin-xml"],
overrides: [{
files: "/lwc//.html",
options: {
parser: "lwc",
tabWidth: 4
}
},
{
files: "**/
.{cls,trigger}",
options: {
parser: "apex",
apexInsertFinalNewline: true,
printWidth: 150,
tabWidth: 4
}
},
{
files: "**/.{apex}",
options: {
parser: "apex-anonymous",
apexInsertFinalNewline: true,
printWidth: 150,
tabWidth: 4
}
},
{
files: "
.{cmp,page,component}",
options: {
parser: "html",
tabWidth: 4
}
}
]
};

Note: I had to comment //plugins: ["prettier-plugin-apex", "@prettier/plugin-xml"] as it is giving error: Unable to resolve "prettier-plugin-apex"

package.json

{
"name": "salesforce-app",
"private": true,
"version": "1.0.0",
"description": "Salesforce App",
"scripts": {
"lint": "eslint /{aura,lwc}//.js",
"test": "npm run test:unit",
"test:unit": "sfdx-lwc-jest",
"test:unit:watch": "sfdx-lwc-jest --watch",
"test:unit:debug": "sfdx-lwc-jest --debug",
"test:unit:coverage": "sfdx-lwc-jest --coverage",
"prettier": "prettier --apex-standalone-parser native --write "**/
.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}"",
"prettier:verify": "prettier --apex-standalone-parser nativex --check "/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}"",
"postinstall": "husky install",
"precommit": "lint-staged"
},
"devDependencies": {
"@lwc/eslint-plugin-lwc": "^1.1.2",
"@prettier/plugin-xml": "3.4.1",
"@salesforce/eslint-config-lwc": "^3.2.3",
"@salesforce/eslint-plugin-aura": "^2.0.0",
"@salesforce/eslint-plugin-lightning": "^1.0.0",
"@salesforce/sfdx-lwc-jest": "^5.1.0",
"eslint": "^9.9.1",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-jest": "^28.8.1",
"husky": "^9.1.5",
"lint-staged": "^15.1.0",
"prettier": "3.3.3",
"prettier-plugin-apex": "2.1.5"
},
"lint-staged": {
"
/.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [
"prettier --apex-standalone-parser native --write"
],
"/{aura,lwc}//
.js": [
"eslint"
]
}
}

VS Code Settings:

Prettier: Config Path
C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier-plugin-apex\node_modules\wait-on.prettierrc.js

Prettier: Prettier Path
C:\Users\myusername\AppData\Roaming\nvm\v20.18.0\node_modules\prettier

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions