From 618f04ea7a774096f42f29e5222ad583cb860e70 Mon Sep 17 00:00:00 2001 From: Nate Stemen Date: Tue, 12 Dec 2017 15:14:24 -0500 Subject: [PATCH] allow package manager to have access to metadata --- .../auto-complete/AutoCompleteManager.coffee | 2 +- .../auto-complete/PackageManager.coffee | 32 +++++++++++-------- 2 files changed, 19 insertions(+), 15 deletions(-) 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 15a8b51b82..47e8d49281 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 @@ -37,7 +37,7 @@ define [ commandCompleter = new CommandManager(@metadataManager) SnippetCompleter = new EnvironmentManager() - PackageCompleter = new PackageManager() + PackageCompleter = new PackageManager(@metadataManager) Graphics = @graphics Preamble = @preamble diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/PackageManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/PackageManager.coffee index 08de22d846..875843935e 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/PackageManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/PackageManager.coffee @@ -20,22 +20,26 @@ define () -> 'framed', 'aliascnt', 'layaureo', 'authblk' ] - packageSnippets = for pkg in packages - { - caption: "\\usepackage{#{pkg}}" - snippet: "\\usepackage{#{pkg}}" - meta: "pkg" - } - - packageSnippets.push { - caption: "\\usepackage{}" - snippet: "\\usepackage{$1}" - meta: "pkg" - score: 70 - } - class PackageManager + constructor: (@metadataManager) -> + getCompletions: (editor, session, pos, prefix, callback) -> + usedPackages = Object.keys(@metadataManager.getAllPackages()) + packageSnippets = [] + for pkg in packages + if pkg not in usedPackages + packageSnippets.push { + caption: "\\usepackage{#{pkg}}" + snippet: "\\usepackage{#{pkg}}" + meta: "pkg" + } + + packageSnippets.push { + caption: "\\usepackage{}" + snippet: "\\usepackage{$1}" + meta: "pkg" + score: 70 + } callback null, packageSnippets return PackageManager