/*** BEGIN LICENSE BLOCK {{{ Copyright (c) 2009 suVene distributable under the terms of an MIT-style license. http://www.opensource.jp/licenses/mit-license.html }}} END LICENSE BLOCK ***/ // PLUGIN_INFO//{{ var PLUGIN_INFO = {NAME} liberator.echomsg notice. liberator.echomsg 通知。 suVene 0.1.1 MIT 2.0pre 2.0pre http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/notifier/subject_liberator_echomsg.js || liberator.globalVariables.subject_liberator_echomsg_filter = [ 'Auto commands for', '^autocommand' ]; ||< ]]> ; //}}} (function() { var notifier = liberator.plugins.notifier; if (!notifier) return; var libly = notifier.libly; var $U = libly.$U; var logger = $U.getLogger('subject_liberator_echomsg'); notifier.subject.register(notifier.Subject, { interval: 5, initialize: function() { this.original = liberator.echomsg; this.__updating__ = false; this.messages = []; this.filter = liberator.globalVariables.subject_liberator_echomsg_filter || []; var self = this; liberator.echomsg = function(message) { while (self.waiting) liberator.sleep(100); self.messages.push(message); return self.original.apply(null, arguments); }; }, check: function() { try { this.__updating__ = true; this.messages = this.messages.filter(function(m) !this.filter.some(function(f) m.indexOf(f) > -1 || m.match(f) ? true : false), this); if (!this.messages.length) return; let msg = ''; this.messages = []; this.notify(new notifier.Message('liberator.echomsg', msg)); } finally { this.__updating__ = false; } }, shutdown: function() { liberator.echomsg = this.original; this.__updating__ = false; } }); })(); // vim: set fdm=marker sw=4 ts=4 sts=0 et: