Просмотр исходного кода

Merge branch 'ns-no-duplicate-packages'

Nate Stemen 8 лет назад
Родитель
Сommit
7af615ff6c

+ 1 - 1
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

+ 18 - 14
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