viewport enhancement
This commit is contained in:
parent
79103e4d92
commit
9577f26cba
|
@ -301,8 +301,8 @@ func FindDeclarationHandler(w http.ResponseWriter, r *http.Request) {
|
|||
part := found[:strings.LastIndex(found, ":")]
|
||||
cursorSep := strings.LastIndex(part, ":")
|
||||
path = found[:cursorSep]
|
||||
cursorLine := found[cursorSep+1 : strings.LastIndex(found, ":")]
|
||||
cursorCh := found[strings.LastIndex(found, ":")+1:]
|
||||
cursorLine, _ := strconv.Atoi(found[cursorSep+1 : strings.LastIndex(found, ":")])
|
||||
cursorCh, _ := strconv.Atoi(found[strings.LastIndex(found, ":")+1:])
|
||||
|
||||
data["path"] = path
|
||||
data["cursorLine"] = cursorLine
|
||||
|
|
|
@ -495,7 +495,6 @@ var editors = {
|
|||
$(".toolbars").show();
|
||||
var id = wide.curNode.tId;
|
||||
|
||||
// 光标位置
|
||||
var cursor = CodeMirror.Pos(0, 0);
|
||||
if (data.cursorLine && data.cursorCh) {
|
||||
cursor = CodeMirror.Pos(data.cursorLine - 1, data.cursorCh - 1);
|
||||
|
@ -505,8 +504,28 @@ var editors = {
|
|||
if (editors.data[i].id === id) {
|
||||
editors.tabs.setCurrent(id);
|
||||
wide.curEditor = editors.data[i].editor;
|
||||
wide.curEditor.setCursor(cursor);
|
||||
wide.curEditor.focus();
|
||||
var editor = wide.curEditor;
|
||||
var oldLine = editor.getCursor().line + 1;
|
||||
|
||||
if (oldLine === data.cursorLine) {
|
||||
editor.focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
editor.setCursor(cursor);
|
||||
|
||||
var half = Math.floor(editor.getScrollInfo().clientHeight / editor.defaultTextHeight() / 2);
|
||||
if (oldLine > data.cursorLine) {
|
||||
var offset = data.cursorLine - half;
|
||||
if (offset > 0) {
|
||||
editor.scrollIntoView(CodeMirror.Pos(offset, 0));
|
||||
}
|
||||
} else if (oldLine < data.cursorLine) {
|
||||
editor.scrollIntoView(CodeMirror.Pos(data.cursorLine + half, 0));
|
||||
}
|
||||
|
||||
editor.focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -621,6 +640,9 @@ var editors = {
|
|||
|
||||
editor.setCursor(cursor);
|
||||
|
||||
var half = Math.floor(editor.getScrollInfo().clientHeight / editor.defaultTextHeight() / 2);
|
||||
editor.scrollIntoView(CodeMirror.Pos(cursor.line + half, 0));
|
||||
|
||||
wide.curEditor = editor;
|
||||
editors.data.push({
|
||||
"editor": editor,
|
||||
|
|
|
@ -208,8 +208,28 @@ var wide = {
|
|||
"ok": function () {
|
||||
var line = parseInt($("#dialogGoLinePrompt > input").val());
|
||||
$("#dialogGoLinePrompt").dialog("close");
|
||||
wide.curEditor.setCursor(CodeMirror.Pos(line - 1, 0));
|
||||
wide.curEditor.focus();
|
||||
var editor = wide.curEditor;
|
||||
var oldLine = editor.getCursor().line + 1;
|
||||
|
||||
if (oldLine === line) {
|
||||
editor.focus();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
editor.setCursor(CodeMirror.Pos(line - 1, 0));
|
||||
|
||||
var half = Math.floor(editor.getScrollInfo().clientHeight / editor.defaultTextHeight() / 2);
|
||||
if (oldLine > line) {
|
||||
var offset = line - half;
|
||||
if (offset > 0) {
|
||||
editor.scrollIntoView(CodeMirror.Pos(offset, 0));
|
||||
}
|
||||
} else if (oldLine < line) {
|
||||
editor.scrollIntoView(CodeMirror.Pos(line + half, 0));
|
||||
}
|
||||
|
||||
editor.focus();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue