Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion common/src/platform/WorkspaceFolder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as path from "path"
import { URI, UriComponents } from "vscode-uri"

import { default as Logger } from "../logger"
import { PomFile } from "../maven/"
import { PomFile } from "../maven"

export class WorkspaceFolder {
private readonly logger = Logger.get("WorkspaceFolder")
Expand All @@ -25,6 +25,15 @@ export class WorkspaceFolder {
}
}

is(otherType: string): boolean {
const thisType = this.projectType
if (!thisType || !otherType) {
return false
}

return thisType === otherType
}

static fromProtocol(source: { uri: string; name: string }): WorkspaceFolder {
return new WorkspaceFolder(URI.parse(source.uri), source.name)
}
Expand Down
2 changes: 1 addition & 1 deletion extension/src/client/command/TriggerCollection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export class TriggerCollection extends Command {
const languageClient = this.languageServices.client

if (!languageClient) {
vscode.window.showErrorMessage("The vRO language server is not running")
this.logger.warn("The vRO language server is not running")
return
}

Expand Down
4 changes: 2 additions & 2 deletions extension/src/client/lang/LanguageServices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { remote } from "vro-language-server"
import * as vscode from "vscode"
import * as client from "vscode-languageclient"

import { OutputChannels } from "../constants"
import { OutputChannels, ProjectArchetypes } from "../constants"
import { Registrable } from "../Registrable"
import { ConfigurationManager, EnvironmentManager } from "../system"

Expand Down Expand Up @@ -56,7 +56,7 @@ export class LanguageServices implements Registrable, vscode.Disposable {
}

initialize(): Promise<void> {
if (!this.env.hasRelevantProject()) {
if (!this.env.hasRelevantProject(prj => prj.is(ProjectArchetypes.Actions))) {
return Promise.resolve()
}

Expand Down
3 changes: 2 additions & 1 deletion extension/src/client/provider/task/TaskProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ import * as vscode from "vscode"
import { extensionShortName } from "../../constants"
import { Registrable } from "../../Registrable"
import { TASKS_BY_TOOLCHAIN_PARENT } from "./DefaultTasksJson"
import { EnvironmentManager, ScopedMemento } from "../../system"
import { EnvironmentManager } from "../../system"
import { ScopedMemento } from "../../system/ScopedMemento"

interface VrealizeTaskDefinition extends vscode.TaskDefinition {
command: string
Expand Down
7 changes: 5 additions & 2 deletions extension/src/client/system/EnvironmentManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,14 @@ export class EnvironmentManager extends BaseEnvironment {
return extensionShortName
}

hasRelevantProject(): boolean {
hasRelevantProject(filter?: (folder: WorkspaceFolder) => boolean): boolean {
const projectTypes = Object.values(ProjectArchetypes) as string[]

return this.workspaceFolders.some(folder => {
return !!folder.projectType && projectTypes.includes(folder.projectType)
const isSupportedProjectType = !!folder.projectType && projectTypes.includes(folder.projectType)
const matchesFilter = !filter || filter(folder)

return isSupportedProjectType && matchesFilter
})
}
}
1 change: 0 additions & 1 deletion extension/src/client/system/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,3 @@

export * from "./ConfigurationManager"
export * from "./EnvironmentManager"
export * from "./ScopedMemento"
12 changes: 8 additions & 4 deletions extension/src/client/ui/StatusBarController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import { AutoWire, Logger } from "vrealize-common"
import * as vscode from "vscode"

import { Commands } from "../constants"
import { Commands, ProjectArchetypes } from "../constants"
import { ConfigurationManager, EnvironmentManager } from "../system"
import { Registrable } from "../Registrable"

Expand All @@ -33,7 +33,7 @@ export class StatusBarController implements Registrable, vscode.Disposable {
register(context: vscode.ExtensionContext): void {
context.subscriptions.push(this)

if (this.env.hasRelevantProject()) {
if (this.env.hasRelevantProject(prj => prj.is(ProjectArchetypes.Actions))) {
context.subscriptions.push(
vscode.commands.registerCommand(Commands.EventCollectionStart, this.onCollectionStart.bind(this)),
vscode.commands.registerCommand(Commands.EventCollectionSuccess, this.onCollectionSuccess.bind(this)),
Expand All @@ -56,7 +56,11 @@ export class StatusBarController implements Registrable, vscode.Disposable {
private onConfigurationOrProfilesChanged() {
const currentProfileName = this.config.hasActiveProfile() ? this.config.activeProfile.get("id") : undefined

if (this.verifyConfiguration() && currentProfileName !== this.profileName) {
if (
this.verifyConfiguration() &&
currentProfileName !== this.profileName &&
this.env.hasRelevantProject(prj => prj.is(ProjectArchetypes.Actions))
) {
vscode.commands.executeCommand(Commands.TriggerServerCollection)
}
}
Expand All @@ -67,7 +71,7 @@ export class StatusBarController implements Registrable, vscode.Disposable {

const serverConfIsValid = !!this.profileName
if (serverConfIsValid) {
if (this.env.hasRelevantProject()) {
if (this.env.hasRelevantProject(prj => prj.is(ProjectArchetypes.Actions))) {
this.collectionButton.show()

this.collectionButton.text = "$(cloud-download)"
Expand Down