@ember-tooling/ember-language-server
Advanced tools
Comparing version
@@ -0,1 +1,8 @@ | ||
## [2.30.5](https://github.com/ember-tooling/ember-language-server/compare/v2.30.4...v2.30.5) (2024-11-27) | ||
### Bug Fixes | ||
* Use broader template-lint range ([71eb563](https://github.com/ember-tooling/ember-language-server/commit/71eb56346954b53cbebfab8ecd06703a4894e414)) | ||
## [2.30.4](https://github.com/ember-tooling/ember-language-server/compare/v2.30.3...v2.30.4) (2024-11-07) | ||
@@ -2,0 +9,0 @@ |
@@ -26,3 +26,2 @@ "use strict"; | ||
this.addonsMeta = []; | ||
this.dependenciesMeta = []; | ||
this.executors = {}; | ||
@@ -42,13 +41,2 @@ this.watchers = []; | ||
this._packageJSON = pkg; | ||
// for now, let's collect only interesting deps | ||
const interestingDeps = ['ember-cli', 'ember-source', 'ember-template-lint', 'typescript', '@embroider/core']; | ||
interestingDeps.forEach((dep) => { | ||
const version = (0, layout_helpers_1.getDepIfExists)(pkg, dep); | ||
if (version !== null) { | ||
this.dependenciesMeta.push({ | ||
name: dep, | ||
version, | ||
}); | ||
} | ||
}); | ||
} | ||
@@ -55,0 +43,0 @@ get roots() { |
@@ -13,2 +13,3 @@ "use strict"; | ||
const glimmer_script_1 = require("./utils/glimmer-script"); | ||
const semver = require("semver"); | ||
class Linter { | ||
@@ -71,5 +72,8 @@ constructor() { | ||
// we assume that ember-template-lint v5 could handle js/ts/gts/gjs files | ||
if (templateLintVersion === '5') { | ||
if (!templateLintVersion) { | ||
return [documentContent]; | ||
} | ||
if (semver.gte(templateLintVersion, '5.0.0')) { | ||
return [documentContent]; | ||
} | ||
if (ext === '.hbs') { | ||
@@ -111,5 +115,27 @@ if (documentContent.trim().length === 0) { | ||
} | ||
getSourcesForDocument(textDocument, project) { | ||
const linterMeta = project.dependencyMap.get('ember-template-lint'); | ||
if (!linterMeta) { | ||
return []; | ||
} | ||
let sources = []; | ||
try { | ||
/** | ||
* Semver parsing can throw errors, if the version is invalid, | ||
* we want behave as if there was no version specified. | ||
* | ||
* (same as when errors are thrown from sourcesForDocument) | ||
*/ | ||
const version = linterMeta === null || linterMeta === void 0 ? void 0 : linterMeta.package.version; | ||
const linterVersion = version ? semver.parse(version) : null; | ||
sources = this.sourcesForDocument(textDocument, linterVersion); | ||
} | ||
catch (e) { | ||
return []; | ||
} | ||
return sources; | ||
} | ||
async lint(textDocument) { | ||
if (this._isEnabled === false) { | ||
return; | ||
return []; | ||
} | ||
@@ -121,11 +147,3 @@ const cwd = process.cwd(); | ||
} | ||
const linterMeta = project.dependenciesMeta.find((dep) => dep.name === 'ember-template-lint'); | ||
const linterVersion = (linterMeta === null || linterMeta === void 0 ? void 0 : linterMeta.version.split('.')[0]) || 'unknown'; | ||
let sources = []; | ||
try { | ||
sources = this.sourcesForDocument(textDocument, linterVersion); | ||
} | ||
catch (e) { | ||
return; | ||
} | ||
const sources = this.getSourcesForDocument(textDocument, project); | ||
if (!sources.length) { | ||
@@ -132,0 +150,0 @@ return; |
@@ -53,6 +53,2 @@ import { Location, TextDocumentIdentifier, Command, CodeActionParams, CodeAction, Position, CompletionItem, Hover } from 'vscode-languageserver/node'; | ||
}; | ||
export declare type DependencyMeta = { | ||
name: string; | ||
version: string; | ||
}; | ||
export declare function emptyProjectProviders(providers?: Partial<ProjectProviders>): ProjectProviders; | ||
@@ -59,0 +55,0 @@ export interface ProjectProviders { |
@@ -16,2 +16,3 @@ import * as memoize from 'memoizee'; | ||
name?: string; | ||
version?: string; | ||
'ember-language-server'?: UnknownConfig; | ||
@@ -18,0 +19,0 @@ peerDependencies?: StringConfig; |
@@ -8,3 +8,2 @@ "use strict"; | ||
const registry_api_1 = require("./registry-api"); | ||
const semver_1 = require("semver"); | ||
const base_project_1 = require("../base-project"); | ||
@@ -235,4 +234,3 @@ const fs_provider_1 = require("../fs-provider"); | ||
const version = (_f = (_d = (_b = (_a = pack === null || pack === void 0 ? void 0 : pack.dependencies) === null || _a === void 0 ? void 0 : _a[depName]) !== null && _b !== void 0 ? _b : (_c = pack === null || pack === void 0 ? void 0 : pack.devDependencies) === null || _c === void 0 ? void 0 : _c[depName]) !== null && _d !== void 0 ? _d : (_e = pack === null || pack === void 0 ? void 0 : pack.peerDependencies) === null || _e === void 0 ? void 0 : _e[depName]) !== null && _f !== void 0 ? _f : ''; | ||
const cleanVersion = (0, semver_1.clean)(version); | ||
return (0, semver_1.valid)((0, semver_1.coerce)(cleanVersion)); | ||
return version; | ||
} | ||
@@ -239,0 +237,0 @@ exports.getDepIfExists = getDepIfExists; |
{ | ||
"name": "@ember-tooling/ember-language-server", | ||
"description": "A language server implementation for Ember.js projects.", | ||
"version": "2.30.4", | ||
"version": "2.30.5", | ||
"contributors": [ | ||
@@ -6,0 +6,0 @@ "Aleksandr Kanunnikov <lifeart92@gmail.com>" |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
15456298
0