lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/golang.js in gollum-3.1.2 vs lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mode/golang.js in gollum-3.1.3

- old
+ new

@@ -1,80 +1,55 @@ define(function(require, exports, module) { - var oop = require("../lib/oop"); - var TextMode = require("./text").Mode; - var Tokenizer = require("../tokenizer").Tokenizer; - var GolangHighlightRules = require("./golang_highlight_rules").GolangHighlightRules; - var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; - var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; - var CStyleFoldMode = require("./folding/cstyle").FoldMode; - - var Mode = function() { - this.$tokenizer = new Tokenizer(new GolangHighlightRules().getRules()); - this.$outdent = new MatchingBraceOutdent(); - this.foldingRules = new CStyleFoldMode(); - }; - oop.inherits(Mode, TextMode); - - (function() { - - this.toggleCommentLines = function(state, doc, startRow, endRow) { - var outdent = true; - var re = /^(\s*)\/\//; +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var GolangHighlightRules = require("./golang_highlight_rules").GolangHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; - for (var i=startRow; i<= endRow; i++) { - if (!re.test(doc.getLine(i))) { - outdent = false; - break; - } - } +var Mode = function() { + this.HighlightRules = GolangHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); - 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(re); - deleteRange.start.row = i; - deleteRange.end.row = i; - deleteRange.end.column = m[0].length; - doc.replace(deleteRange, m[1]); - } - } - else { - doc.indentRows(startRow, endRow, "//"); - } - }; +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; - this.getNextLineIndent = function(state, line, tab) { - var indent = this.$getIndent(line); + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); - var tokenizedLine = this.$tokenizer.getLineTokens(line, state); - var tokens = tokenizedLine.tokens; - var endState = tokenizedLine.state; + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; - if (tokens.length && tokens[tokens.length-1].type == "comment") { - return indent; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; } - - if (state == "start") { - var match = line.match(/^.*[\{\(\[]\s*$/); - if (match) { - indent += tab; - } - } + } - return indent; - };//end getNextLineIndent + return indent; + };//end getNextLineIndent - this.checkOutdent = function(state, line, input) { - return this.$outdent.checkOutdent(line, input); - }; + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; - this.autoOutdent = function(state, doc, row) { - this.$outdent.autoOutdent(doc, row); - }; + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; - }).call(Mode.prototype); + this.$id = "ace/mode/golang"; +}).call(Mode.prototype); - exports.Mode = Mode; +exports.Mode = Mode; });