diff --git a/packages/server/src/services/fs.service.ts b/packages/server/src/services/fs.service.ts index 6ae8e47..298fa39 100644 --- a/packages/server/src/services/fs.service.ts +++ b/packages/server/src/services/fs.service.ts @@ -1,8 +1,12 @@ import { readdirSync, statSync } from 'fs'; import { join, relative } from 'path'; -import { moduleDirectoryExtension } from 'shared'; +import { + DATA_DIRECTORY, + MOD_DIRECTORY, + moduleDirectoryExtension, +} from 'shared'; import { WorkspaceFolder } from 'vscode-languageserver'; -import { URI } from 'vscode-uri'; +import { URI, Utils } from 'vscode-uri'; class FileSystemService { public moduleFileList: string[] = []; @@ -16,11 +20,20 @@ class FileSystemService { public updateFileList(): void { this.moduleFileList = []; this.workspaces.forEach((folder) => { - const workspacePath = URI.parse(folder.uri).fsPath; - const workspaceFileList = this.getAllFiles(workspacePath); + const workspaceUri = URI.parse(folder.uri); - for (const file of workspaceFileList) { - this.moduleFileList.push(relative(workspacePath, file)); + const dataPathUri = Utils.joinPath(workspaceUri, DATA_DIRECTORY); + const modsPathUri = Utils.joinPath(workspaceUri, MOD_DIRECTORY); + + const workspaceDataFileList = this.getAllFiles(dataPathUri.fsPath); + const workspaceModFileList = this.getAllFiles(modsPathUri.fsPath); + + for (const file of workspaceDataFileList) { + this.moduleFileList.push(relative(dataPathUri.fsPath, file)); + } + + for (const file of workspaceModFileList) { + this.moduleFileList.push(relative(modsPathUri.fsPath, file)); } }); } diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 801e4f6..abf6547 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,3 +1,5 @@ export * from './lib/Shared'; export * from './lib/fileExtensions'; + +export * from './lib/constants'; diff --git a/packages/shared/src/lib/constants.ts b/packages/shared/src/lib/constants.ts new file mode 100644 index 0000000..169b506 --- /dev/null +++ b/packages/shared/src/lib/constants.ts @@ -0,0 +1,2 @@ +export const DATA_DIRECTORY = 'Data'; +export const MOD_DIRECTORY = 'Mods';