diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee index 990678ddc4..19c34142c5 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee +++ b/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 { diff --git a/services/web/public/coffee/ide/graphics/services/graphics.coffee b/services/web/public/coffee/ide/graphics/services/graphics.coffee index 6e0a03e849..fdd4126b16 100644 --- a/services/web/public/coffee/ide/graphics/services/graphics.coffee +++ b/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 diff --git a/services/web/public/coffee/ide/preamble/services/preamble.coffee b/services/web/public/coffee/ide/preamble/services/preamble.coffee index 114f530d77..a8312ca4d7 100644 --- a/services/web/public/coffee/ide/preamble/services/preamble.coffee +++ b/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