From c95304526943714806444237938f3760ccaa7cc3 Mon Sep 17 00:00:00 2001 From: Kees Schollaart Date: Sun, 17 Mar 2019 21:44:06 +0100 Subject: [PATCH] Support for more entity related properties --- package.json | 2 +- src/entity-id-completion-provider.ts | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 481b552a22..dfc1329bfb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vscode-home-assistant", "displayName": "Home Assistant Config Helper", "description": " Completion for entity-id's in Home Assistant Configurations", - "version": "0.1.6", + "version": "0.1.7", "preview": true, "engines": { "vscode": "^1.32.0" diff --git a/src/entity-id-completion-provider.ts b/src/entity-id-completion-provider.ts index 51107b4620..aef942558b 100644 --- a/src/entity-id-completion-provider.ts +++ b/src/entity-id-completion-provider.ts @@ -4,7 +4,13 @@ import { HomeAssistant } from "./homeassistant"; export class EntityIdCompletionProvider implements vscode.CompletionItemProvider { - entityIdPropertyMatch = /(.*)entity_id(:)?( )?([-\w]+?)?$/; + propertyMatches = [ + /(.*)entity_id(:)?( )?([-\w]+?)?$/, + /(.*)entity(:)?( )?([-\w]+?)?$/, + /(.*)entities(:)?( )?([-\w]+?)?$/, + /(.*)include_entities(:)?( )?([-\w]+?)?$/, + /(.*)exclude_entities(:)?( )?([-\w]+?)?$/ + ]; constructor(private ha: HomeAssistant) { } @@ -15,7 +21,7 @@ export class EntityIdCompletionProvider implements vscode.CompletionItemProvider .lineAt(position) .text.substr(0, position.character); - const isSingleLineMatch = linePrefix.match(this.entityIdPropertyMatch); + const isSingleLineMatch = this.propertyMatches.some(regex => regex.test(linePrefix)); if (!isSingleLineMatch && !this.isMultiLineMatch(document, position)) { return []; @@ -38,7 +44,7 @@ export class EntityIdCompletionProvider implements vscode.CompletionItemProvider currentLine--; continue; } - return this.entityIdPropertyMatch.test(thisLine.text); + return this.propertyMatches.some(regex => regex.test(thisLine.text)); } return false; }