Skip to content

Commit

Permalink
Doing some small tiedy up. Unstructured Code Folding should be done.
Browse files Browse the repository at this point in the history
  • Loading branch information
jviereck committed Apr 28, 2011
1 parent a385637 commit 2c9e4f7
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 95 deletions.
22 changes: 4 additions & 18 deletions demo/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ define(function(require, exports, module) {
exports.launch = function(env) {
var canon = require("pilot/canon");
var event = require("pilot/event");
var Range = require("ace/range").Range;
var Editor = require("ace/editor").Editor;
var Renderer = require("ace/virtual_renderer").VirtualRenderer;
var theme = require("ace/theme/textmate");
Expand Down Expand Up @@ -96,6 +97,9 @@ exports.launch = function(env) {
docs.js = new EditSession(document.getElementById("jstext").innerHTML);
docs.js.setMode(new JavaScriptMode());
docs.js.setUndoManager(new UndoManager());
docs.js.addFold("args...", new Range(0, 13, 0, 18));
docs.js.addFold("bar...", new Range(2, 20, 2, 25));
docs.js.addFold("foo...", new Range(1, 10, 2, 10));

docs.css = new EditSession(document.getElementById("csstext").innerHTML);
docs.css.setMode(new CssMode());
Expand Down Expand Up @@ -148,24 +152,6 @@ exports.launch = function(env) {
var container = document.getElementById("editor");
env.editor = new Editor(new Renderer(container, theme));

// BEGING TESTING
var Range = require("ace/range").Range;
docs.js.addFold("args...", new Range(0, 13, 0, 18));
docs.js.addFold("bar...", new Range(2, 20, 2, 25));
docs.js.addFold("foo...", new Range(1, 10, 2, 10));

docs.svg.addFold("fold...", new Range(1, 0, 7, 0));

docs.plain.addFold("fold", new Range(0, 90, 2, 30));
window.s = docs.js;
window.e = env.editor;
setTimeout(function() {
env.editor.selection.addEventListener("changeCursor", function() {
console.log(env.editor.selection.getRange() + "");
})
}, 500)
// END TESTING

var modes = {
text: new TextMode(),
textile: new TextileMode(),
Expand Down
70 changes: 29 additions & 41 deletions lib/ace/edit_session.js
Original file line number Diff line number Diff line change
Expand Up @@ -1324,7 +1324,15 @@ var EditSession = function(text, mode) {
return this.$tabSize - screenColumn % this.$tabSize;
};

this.screen2Doc = function(screenRow, screenColumn) {
this.screenToDocumentRow = function(screenRow, screenColumn) {
return this.screenToDocumentPosition(screenRow, screenColumn).row;
};

this.screenToDocumentColumn = function(screenRow, screenColumn) {
return this.screenToDocumentPosition(screenRow, screenColumn).column;
};

this.screenToDocumentPosition = function(screenRow, screenColumn) {
var line;
var docRow = 0;
var docColumn = 0;
Expand Down Expand Up @@ -1373,39 +1381,34 @@ var EditSession = function(text, mode) {
}

if (foldLine) {
var position = foldLine.idxToPosition(docColumn);
return [position.row, position.column];
return foldLine.idxToPosition(docColumn);
}

return [docRow, docColumn, screenRow, row]
}

this.screenToDocumentRow = function(screenRow, screenColumn) {
return this.screenToDocumentPosition(screenRow, screenColumn).row;
};

this.screenToDocumentColumn = function(screenRow, screenColumn) {
return this.screenToDocumentPosition(screenRow, screenColumn).column;
};

this.screenToDocumentPosition = function(row, column) {
var ret = this.screen2Doc(row, column);
return {
row: ret[0],
column: ret[1]
};
row: docRow,
column: docColumn
}
};

this.doc2Screen = function(docRow, docColumn) {
this.documentToScreenPosition = function(docRow, docColumn) {
// Normalize the passed in arguments.
if (docColumn == null) {
docColumn = docRow.column;
docRow = docRow.row;
}

var wrapData;

// Special case in wrapMode if the doc is at the end of the document.
if (this.$useWrapMode) {
wrapData = this.$wrapData;
if (docRow > wrapData.length - 1) {
return [
this.getScreenLength(),
wrapData.length == 0 ? 0 : (wrapData[wrapData.length - 1].length - 1)
];
return {
row: this.getScreenLength(),
column: wrapData.length == 0
? 0
: (wrapData[wrapData.length - 1].length - 1)
};
}
}

Expand Down Expand Up @@ -1458,24 +1461,9 @@ var EditSession = function(text, mode) {
wrapRow[screenRowOffset - 1] || 0, textLine.length);
}

return [screenRow, this.$getStringScreenWidth(textLine)[0], textLine];
}

this.documentToScreenPosition = function(pos, column) {
// Normalize the passed in arguments.
var row;
if (column != null) {
row = pos;
} else {
row = pos.row;
column = pos.column;
}

// NEW CODE PATH:
var res = this.doc2Screen(row, column);
return {
row: res[0],
column: res[1]
row: screenRow,
column: this.$getStringScreenWidth(textLine)[0]
};
};

Expand Down
16 changes: 0 additions & 16 deletions lib/ace/edit_session/fold_line.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,22 +267,6 @@ function FoldLine(foldData, folds) {
column: this.end.column + idx
};
}

// this.positionToIdx = function(pos) {
// var row = pos.row;
// var column = pos.column;
// var idx = 0;
//
// this.walk(function(placeholder, row, column, lastColumn) {
// if (placeholder
// var range = new Range(row, lastColumn, row, column);
// var cmp = range.compareEnd(row, column);
//
// if (cmp == 0) {
// idx +=
// }
// });
// }
}).call(FoldLine.prototype);

exports.FoldLine = FoldLine;
Expand Down
40 changes: 20 additions & 20 deletions lib/ace/test/all_browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,27 @@ var failed = 0
var log = document.getElementById("log")

var tests = [
// require("ace/editor_change_document_test"),
// require("ace/editor_navigation_test"),
// require("ace/editor_highlight_selected_word_test"),
// require("ace/editor_text_edit_test"),
// require("ace/document_test"),
require("ace/editor_change_document_test"),
require("ace/editor_navigation_test"),
require("ace/editor_highlight_selected_word_test"),
require("ace/editor_text_edit_test"),
require("ace/document_test"),
require("ace/edit_session_test"),
// require("ace/test/event_emitter_test"),
// require("ace/range_test"),
// require("ace/search_test"),
require("ace/selection_test"),
// require("ace/virtual_renderer_test"),
// require("ace/anchor_test"),
// require("ace/mode/css_test"),
// require("ace/mode/css_tokenizer_test"),
// require("ace/mode/html_test"),
// require("ace/mode/html_tokenizer_test"),
// require("ace/mode/javascript_test"),
// require("ace/mode/javascript_tokenizer_test"),
// require("ace/mode/text_test"),
// require("ace/mode/xml_test"),
// require("ace/mode/xml_tokenizer_test")
require("ace/test/event_emitter_test"),
require("ace/range_test"),
require("ace/search_test"),
require("ace/selection_test"),
require("ace/virtual_renderer_test"),
require("ace/anchor_test"),
require("ace/mode/css_test"),
require("ace/mode/css_tokenizer_test"),
require("ace/mode/html_test"),
require("ace/mode/html_tokenizer_test"),
require("ace/mode/javascript_test"),
require("ace/mode/javascript_tokenizer_test"),
require("ace/mode/text_test"),
require("ace/mode/xml_test"),
require("ace/mode/xml_tokenizer_test")
]

async.list(tests)
Expand Down

0 comments on commit 2c9e4f7

Please sign in to comment.