penguin/AstroJS

Javascript framework for my blog

commit 4311ff3a6eed629ce081c020d2598e2107059220

author斟酌 鵬兄 <tgckpg@gmail.com>
date2017-03-20T04:47:02Z
subjectDraft Actions MARK
commit 4311ff3a6eed629ce081c020d2598e2107059220
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2017-03-20T04:47:02Z

    Draft Actions MARK
---
 botanjs/src/Components/Vim/Actions/MARK.js | 45 ++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/botanjs/src/Components/Vim/Actions/MARK.js b/botanjs/src/Components/Vim/Actions/MARK.js
new file mode 100644
index 0000000..1c0e0dd
--- /dev/null
+++ b/botanjs/src/Components/Vim/Actions/MARK.js
@@ -0,0 +1,45 @@
+(function(){
+	var ns = __namespace( "Components.Vim.Actions" );
+
+	/** @type {System.Debug} */
+	var debug = __import( "System.Debug" );
+
+	var beep = __import( "Components.Vim.Beep" );
+
+	/** @type {Components.Vim.IAction} */
+	var MARK = function( Cursor )
+	{
+		/** @type {Components.Vim.Cursor} */
+		this.__cursor = Cursor;
+		this.__msg = "";
+	};
+
+	MARK.prototype.dispose = function() { };
+
+	MARK.prototype.handler = function( e, cmd )
+	{
+		e.preventDefault();
+
+		/** @type {Components.Vim.State.Marks} */
+		var marks = e.target.marks;
+
+		var ccur = this.__cursor;
+		if( cmd && cmd[0] )
+		{
+			marks.set( cmd.join( "" ).trim(), ccur.getLine().lineNum, ccur.aX );
+		}
+		else
+		{
+			marks.set( e.key, ccur.getLine().lineNum, ccur.aX );
+		}
+
+		return true;
+	};
+
+	MARK.prototype.getMessage = function()
+	{
+		return this.__msg;
+	};
+
+	ns[ NS_EXPORT ]( EX_CLASS, "MARK", MARK );
+})();