Browse Source

Get graphics paths from preamble

Shane Kilkelly 9 years ago
parent
commit
eeabac7698

+ 2 - 1
services/web/public/coffee/ide/editor/directives/aceEditor.coffee

@@ -12,6 +12,7 @@ define [
 	"ide/editor/directives/aceEditor/labels/LabelsManager"
 	"ide/labels/services/labels"
 	"ide/graphics/services/graphics"
+	"ide/preamble/services/preamble"
 ], (App, Ace, SearchBox, ModeList, UndoManager, AutoCompleteManager, SpellCheckManager, HighlightsManager, CursorPositionManager, TrackChangesManager, LabelsManager) ->
 	EditSession = ace.require('ace/edit_session').EditSession
 	ModeList = ace.require('ace/ext/modelist')
@@ -34,7 +35,7 @@ define [
 			url = ace.config._moduleUrl(args...) + "?fingerprint=#{window.aceFingerprint}"
 			return url
 
-	App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics) ->
+	App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics, preamble) ->
 		monkeyPatchSearch($rootScope, $compile)
 
 		return  {

+ 2 - 3
services/web/public/coffee/ide/graphics/services/graphics.coffee

@@ -4,13 +4,12 @@ define [
 
 	App.factory 'graphics', (ide) ->
 
-		graphics = {
+		Graphics =
 			getGraphicsFiles: () ->
 				graphicsFiles = []
 				ide.fileTreeManager.forEachEntity (f) ->
 					if f?.name?.match?(/.*\.(png|jpg|jpeg)/)
 						graphicsFiles.push f
 				return graphicsFiles
-		}
 
-		return graphics
+		return Graphics

+ 15 - 3
services/web/public/coffee/ide/preamble/services/preamble.coffee

@@ -4,9 +4,21 @@ define [
 
 	App.factory 'preamble', (ide) ->
 
-		Preamble = {
+		Preamble =
 			getPreambleText: () ->
-				
-		}
+				text = ide.editorManager.getCurrentDocValue().slice(0, 5000)
+				preamble = text.match(/([^]*)^\\begin\{document\}/m)?[1] || ""
+				return preamble
+
+			getGraphicsPaths: () ->
+				preamble = Preamble.getPreambleText()
+				graphicsPathsArgs = preamble.match(/\\graphicspath\{(.*)\}/)?[1] || ""
+				paths = []
+				re = /\{([^}]*)\}/g
+				while match = re.exec(graphicsPathsArgs)
+					paths.push(match[1])
+				return paths
+
+		window.Preamble = Preamble
 
 		return Preamble