From db80f8ca1ceb5a20fd48ac5e72eb664e74ef5a6c Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 29 Jun 2017 14:42:08 +0100 Subject: [PATCH 1/6] Don't trigger autocomplete if we're on a comment line. --- .../aceEditor/auto-complete/AutoCompleteManager.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee index cbcdc2eac7..c80c3e572d 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee @@ -121,6 +121,8 @@ define [ end = change.end range = new Range(end.row, 0, end.row, end.column) lineUpToCursor = @editor.getSession().getTextRange(range) + if lineUpToCursor.slice(0, 1) == '%' + return commandFragment = getLastCommandFragment(lineUpToCursor) # Check that this change was made by us, not a collaborator # (Cursor is still one place behind) From cfe51089f6dc2b18ca12f4b539612b2daf36a78c Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 29 Jun 2017 16:04:52 +0100 Subject: [PATCH 2/6] Ignore commands within comments when parsing document --- .../directives/aceEditor/auto-complete/SuggestionManager.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee index 97241a90ce..e832be53dc 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee @@ -39,7 +39,7 @@ define [], () -> return commands # Ignore single letter commands since auto complete is moot then. - commandRegex: /\\([a-zA-Z][a-zA-Z]+)/ + commandRegex: /^[^%]*?\\([a-zA-Z][a-zA-Z]+).*$/m nextCommand: () -> i = @doc.search(@commandRegex) From e2bff06aeb21f136c516528f14da709892a7c3f6 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Fri, 30 Jun 2017 08:42:03 +0100 Subject: [PATCH 3/6] Add comment about ignoring comments --- .../directives/aceEditor/auto-complete/SuggestionManager.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee index e832be53dc..96437f48c2 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee @@ -39,6 +39,7 @@ define [], () -> return commands # Ignore single letter commands since auto complete is moot then. + # Ignore commands which occur after a comment character '%' commandRegex: /^[^%]*?\\([a-zA-Z][a-zA-Z]+).*$/m nextCommand: () -> From c2fcbbeb726c213b6de42d0ea49aeb5511d78d83 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Fri, 30 Jun 2017 10:55:10 +0100 Subject: [PATCH 4/6] Fix parsing, so it accurately captures command args --- .../aceEditor/auto-complete/SuggestionManager.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee index 96437f48c2..dc54373ca6 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee @@ -40,15 +40,17 @@ define [], () -> # Ignore single letter commands since auto complete is moot then. # Ignore commands which occur after a comment character '%' - commandRegex: /^[^%]*?\\([a-zA-Z][a-zA-Z]+).*$/m + commandRegex: /^([^%]*?)\\([a-zA-Z][a-zA-Z]+)/m nextCommand: () -> i = @doc.search(@commandRegex) if i == -1 return false else - match = @doc.match(@commandRegex)[1] - @doc = @doc.substr(i + match.length + 1) + matchObject = @doc.match(@commandRegex) + preMatch = matchObject[1] + match = matchObject[2] + @doc = @doc.substr(i + preMatch.length + match.length + 1) return match consumeWhitespace: () -> From bd88adb6216dc1a3c4baa67c2c7dc160b528842b Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Fri, 30 Jun 2017 14:03:34 +0100 Subject: [PATCH 5/6] Account for mid-line comments --- .../aceEditor/auto-complete/AutoCompleteManager.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee index c80c3e572d..8ef91bd6d6 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee @@ -121,7 +121,7 @@ define [ end = change.end range = new Range(end.row, 0, end.row, end.column) lineUpToCursor = @editor.getSession().getTextRange(range) - if lineUpToCursor.slice(0, 1) == '%' + if lineUpToCursor.match(/.*%.*/) return commandFragment = getLastCommandFragment(lineUpToCursor) # Check that this change was made by us, not a collaborator From bb3c5e7a3464b242917d4947af19c81c2d74050a Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Fri, 30 Jun 2017 15:05:21 +0100 Subject: [PATCH 6/6] Reverse direction, don't ignore commands in comments --- .../aceEditor/auto-complete/SuggestionManager.coffee | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee index dc54373ca6..97241a90ce 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee @@ -39,18 +39,15 @@ define [], () -> return commands # Ignore single letter commands since auto complete is moot then. - # Ignore commands which occur after a comment character '%' - commandRegex: /^([^%]*?)\\([a-zA-Z][a-zA-Z]+)/m + commandRegex: /\\([a-zA-Z][a-zA-Z]+)/ nextCommand: () -> i = @doc.search(@commandRegex) if i == -1 return false else - matchObject = @doc.match(@commandRegex) - preMatch = matchObject[1] - match = matchObject[2] - @doc = @doc.substr(i + preMatch.length + match.length + 1) + match = @doc.match(@commandRegex)[1] + @doc = @doc.substr(i + match.length + 1) return match consumeWhitespace: () ->