Codemirror : Menambahkan Ctrl+D sebagai DuplicateLine

on Monday, February 19, 2018
Codemirror  adalah salah satu textarea replacement favorit saya. Tetapi karena saya lebih sering menggunakan Editor Geany untuk ngoding offline, acapkali kebiasaan-kebiasaan di Geany masih terbawa. Salah satunya adalah DuplicateLine dengan menekan Ctrl-D, sayangnya di Codemirror fungsinya jauh beda, deleteLine.

Otak-atik codemirror.js plus informasi dari Stackoverflow,ternyata bisa juga diubah.

  1. Buka codemirror.js dengan editor favorit.
  2. Search fungsi deleteLine
  3. Tambahkan beberapa baris berikut
deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({
from: Pos(range.from().line, 0),
to: clipPos(cm.doc, Pos(range.to().line + 1, 0))
}); }); },
//
//Start duplicateLine
duplicateLine : function(cm){
var current_cursor = cm.doc.getCursor();
var line_content = cm.doc.getLine(current_cursor.line);
CodeMirror.commands.goLineEnd(cm);
CodeMirror.commands.newlineAndIndent(cm);
cm.doc.replaceSelection(line_content);
cm.doc.setCursor(current_cursor.line + 1, current_cursor.ch);
},
//End duplicateLine
//
delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({
from: Pos(range.from().line, 0), to: range.from()
}); }); },
  1. Search lagi fungsi deleteLine
    kemudian tambahkan perintah keyboard berikut. .... tidak usah ditulis maksudnya itu dan seterusnya :D
keyMap.pcDefault = { "Ctrl-A": "selectAll", "Alt-D": "deleteLine", "Ctrl-D": "duplicateLine", "Ctrl-Z": "undo", .....
  1. Simpan dan cobalah code mirror di browser
  2. Jika belum bisa, clear cache browser anda.  
Sumber : Stackoverflow

0 comments:

Post a Comment