Skip to content

Commit

Permalink
feat(smartAutocomplete): provide setting to paths that gets processed
Browse files Browse the repository at this point in the history
  • Loading branch information
hiaux0 committed Mar 7, 2020
1 parent e77268b commit 2295f2e
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 4 deletions.
10 changes: 8 additions & 2 deletions src/server/AureliaSettings.ts
@@ -1,11 +1,17 @@
interface IFeatureToggles {
smartAutocomplete : boolean,
pathToAureliaProject: string[]
}

export default class AureliaSettings {
public quote: string = '"';
public validation: boolean = true;
public bindings = {
data : []
}

public featureToggles = {
smartAutocomplete : true
public featureToggles: IFeatureToggles = {
smartAutocomplete : true,
pathToAureliaProject: ['src'],
}
}
4 changes: 3 additions & 1 deletion src/server/FileParser/ProcessFiles.ts
Expand Up @@ -15,6 +15,7 @@ import { Methods, Properties, ViewModelDocument } from './Model/ViewModelDocumen

import { HTMLDocumentParser, TagDefinition, AttributeDefinition } from './HTMLDocumentParser';
import { normalizePath } from './../Util/NormalizePath';
import AureliaSettings from '../AureliaSettings';


export default class ProcessFiles {
Expand All @@ -24,7 +25,8 @@ export default class ProcessFiles {
public async processPath(): Promise<void> {

const sourceDirectory = sys.getCurrentDirectory();
const paths = sys.readDirectory(sourceDirectory, ['ts', 'js', 'html'], ['node_modules', 'aurelia_project']);
const includePath = new AureliaSettings().featureToggles.pathToAureliaProject;
const paths = sys.readDirectory(sourceDirectory, ['ts', 'js', 'html'], ['node_modules', 'aurelia_project'], includePath);


for (let path of paths) {
Expand Down
20 changes: 19 additions & 1 deletion src/server/main.ts
Expand Up @@ -51,6 +51,7 @@ import { normalizePath } from './Util/NormalizePath';
import { connect } from 'net';
import { AureliaConfigProperties } from '../client/Model/AureliaConfigProperties';
import { exposeAureliaDefinitions } from './ExposeAureliaDefinitions';
import { sys } from 'typescript';

// Bind console.log & error to the Aurelia output
const connection: IConnection = createConnection();
Expand Down Expand Up @@ -104,7 +105,10 @@ connection.onDidChangeConfiguration(async (change) => {
settings.quote = change.settings.aurelia.autocomplete.quotes === 'single' ? '\'' : '"';
settings.validation = change.settings.aurelia.validation;
settings.bindings.data = change.settings.aurelia.autocomplete.bindings.data;
settings.featureToggles = change.settings.aurelia.featureToggles;
settings.featureToggles = {
...settings.featureToggles,
...change.settings.aurelia.featureToggles,
};

await featureToggles(settings.featureToggles);
});
Expand Down Expand Up @@ -159,12 +163,26 @@ connection.onDefinition((position: TextDocumentPositionParams): Definition => {
connection.listen();

async function featureToggles(featureToggles) {
console.log("TCL: featureToggles -> featureToggles function")
if (settings.featureToggles.smartAutocomplete) {
console.log('smart auto complete init');

// Aurelia project path to parse
console.log('>>> 1.1 This is the project\'s directory:');
const sourceDirectory = sys.getCurrentDirectory();
console.log(sourceDirectory);
console.log('>>> 1.2. The extension will try to parse Aurelia components inside:')
console.log(settings.featureToggles.pathToAureliaProject);
console.log('>>> 1.3. Eg.')
console.log(sourceDirectory + '/' + settings.featureToggles.pathToAureliaProject[0]);

try {
let fileProcessor = new ProcessFiles();
await fileProcessor.processPath();
aureliaApplication.components = fileProcessor.components;
console.log('>>> 2. The extension found this many components:');
console.log(aureliaApplication.components.length);

} catch (ex) {
console.log('------------- FILE PROCESSOR ERROR ---------------------');
console.log(JSON.stringify(ex));
Expand Down

0 comments on commit 2295f2e

Please sign in to comment.