mirror of
https://github.com/atom/atom.git
synced 2026-02-11 23:25:03 -05:00
Loading is now visibly more janky, but I think
d3ba5b8111
fixes a lot of our problems.
I tested this on split-panes-2.0 and a major bug (no input
after resizing) is now gone. Poof.
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
define(function(require, exports, module) {
|
|
|
|
var oop = require("../lib/oop");
|
|
var TextMode = require("./text").Mode;
|
|
var Tokenizer = require("../tokenizer").Tokenizer;
|
|
var PowershellHighlightRules = require("./powershell_highlight_rules").PowershellHighlightRules;
|
|
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
|
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
|
|
|
|
var Mode = function() {
|
|
this.$tokenizer = new Tokenizer(new PowershellHighlightRules().getRules());
|
|
this.$outdent = new MatchingBraceOutdent();
|
|
this.$behaviour = new CstyleBehaviour();
|
|
};
|
|
oop.inherits(Mode, TextMode);
|
|
|
|
(function() {
|
|
|
|
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;
|
|
|
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
|
return indent;
|
|
}
|
|
|
|
if (state == "start") {
|
|
var match = line.match(/^.*[\{\(\[]\s*$/);
|
|
if (match) {
|
|
indent += tab;
|
|
}
|
|
}
|
|
|
|
return indent;
|
|
};
|
|
|
|
this.checkOutdent = function(state, line, input) {
|
|
return this.$outdent.checkOutdent(line, input);
|
|
};
|
|
|
|
this.autoOutdent = function(state, doc, row) {
|
|
this.$outdent.autoOutdent(doc, row);
|
|
};
|
|
|
|
|
|
this.createWorker = function(session) {
|
|
return null;
|
|
};
|
|
|
|
}).call(Mode.prototype);
|
|
|
|
exports.Mode = Mode;
|
|
});
|