From 252682dd99ebf7e705ca672530ac405bc59e6d4f Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Tue, 30 Apr 2013 11:20:50 -0700 Subject: [PATCH] Syntax highlight based entirely on editor colors --- spec/app/editor-spec.coffee | 2 +- .../lib/markdown-preview-view.coffee | 13 ++++++++++++- .../stylesheets/markdown-preview.less | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index a222d8303..0aca4b840 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -1765,7 +1765,7 @@ describe "Editor", -> editor.edit(emptyEditSession) expect(editor.gutter.lineNumbers.find('.line-number').length).toBe 1 - fdescribe "when the editor is mini", -> + describe "when the editor is mini", -> it "hides the gutter", -> miniEditor = new Editor(mini: true) miniEditor.attachToDom() diff --git a/src/packages/markdown-preview/lib/markdown-preview-view.coffee b/src/packages/markdown-preview/lib/markdown-preview-view.coffee index acbcd0a62..19970ca21 100644 --- a/src/packages/markdown-preview/lib/markdown-preview-view.coffee +++ b/src/packages/markdown-preview/lib/markdown-preview-view.coffee @@ -65,12 +65,18 @@ class MarkdownPreviewView extends ScrollView setLoading: -> @html($$$ -> @div class: 'markdown-spinner', 'Loading Markdown...') + tokenizeCodeBlocks: (html) => html = $(html) preList = $(html.filter("pre")) + editorBackgroundColor = $('.editor').css("background-color") + rawEditorTextColor = $('.editor .gfm .raw').css("color") for codeBlock in preList.toArray() + $(codeBlock).css("background-color", editorBackgroundColor) codeBlock = $(codeBlock.firstChild) + # set the default raw color of unhiglighted pre tags + codeBlock.css("color", rawEditorTextColor) # go to next block unless this one has a class continue unless className = codeBlock.attr('class') @@ -85,11 +91,16 @@ class MarkdownPreviewView extends ScrollView continue unless grammar = syntax.selectGrammar("foo.#{extension}", text) continue if grammar is syntax.nullGrammar + text = codeBlock.text() tokens = grammar.tokenizeLines(text) grouping = "" for token in tokens - grouping += Editor.buildHtmlLine(token, text) + blockElem = $(Editor.buildHtmlLine(token, text)) + grouping += blockElem.addClass("editor")[0].outerHTML + codeBlock.replaceWith(grouping) + # undo default coloring + codeBlock.css("color", "") html diff --git a/src/packages/markdown-preview/stylesheets/markdown-preview.less b/src/packages/markdown-preview/stylesheets/markdown-preview.less index 533eab598..dd970afd8 100644 --- a/src/packages/markdown-preview/stylesheets/markdown-preview.less +++ b/src/packages/markdown-preview/stylesheets/markdown-preview.less @@ -23,6 +23,7 @@ // includes some GitHub Flavored Markdown specific styling (like @mentions) .markdown-preview { pre, + pre div.editor, code, tt { font-size: 12px;