Sha256: 093de133c8eef1b8bd1167c3f2cda68aea57a3a526509d9921332fde4212155f

Contents?: true

Size: 1.77 KB

Versions: 20

Compression:

Stored size: 1.77 KB

Contents

define(function(require, exports, module) {
"use strict";

var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var LatexHighlightRules = require("./latex_highlight_rules").LatexHighlightRules;
var LatexFoldMode = require("./folding/latex").FoldMode;
var Range = require("../range").Range;

var Mode = function() {
    this.$tokenizer = new Tokenizer(new LatexHighlightRules().getRules());
    this.foldingRules = new LatexFoldMode();
};
oop.inherits(Mode, TextMode);

(function() {
    this.toggleCommentLines = function(state, doc, startRow, endRow) {
        // This code is adapted from ruby.js
        var outdent = true;
        
        // LaTeX comments begin with % and go to the end of the line
        var commentRegEx = /^(\s*)\%/;

        for (var i = startRow; i <= endRow; i++) {
            if (!commentRegEx.test(doc.getLine(i))) {
                outdent = false;
                break;
            }
        }

        if (outdent) {
            var deleteRange = new Range(0, 0, 0, 0);
            for (var i = startRow; i <= endRow; i++) {
                var line = doc.getLine(i);
                var m = line.match(commentRegEx);
                deleteRange.start.row = i;
                deleteRange.end.row = i;
                deleteRange.end.column = m[0].length;
                doc.replace(deleteRange, m[1]);
            }
        }
        else {
            doc.indentRows(startRow, endRow, "%");
        }
    };
    
    // There is no universally accepted way of indenting a tex document
    // so just maintain the indentation of the previous line
    this.getNextLineIndent = function(state, line, tab) {
        return this.$getIndent(line);
    };
    
}).call(Mode.prototype);

exports.Mode = Mode;

});

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
gollum-3.1.2 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-3.1.1 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-3.1.0 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-3.0.0 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.7.0 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.6.0 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.5.2 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.5.1 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.5.0 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.15 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.14 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.13 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.12 lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.11 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.10 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.9 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.8 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.7 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.6 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js
gollum-2.4.5 lib/gollum/frontend/public/gollum/livepreview/js/ace/lib/ace/mode/latex.js