]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Implement `term.getOption`
authorParis Kasidiaris <paris@sourcelair.com>
Wed, 21 Sep 2016 10:56:03 +0000 (13:56 +0300)
committerParis Kasidiaris <paris@sourcelair.com>
Wed, 21 Sep 2016 10:56:03 +0000 (13:56 +0300)
src/xterm.js
test/test.js

index 08386be39dc2aaa7e74aa266d6c58ea727f19def..f785ab1afab0ebfeca515941d4674a79121a43db 100644 (file)
@@ -357,6 +357,22 @@ Terminal.prototype.focus = function() {
   return this.textarea.focus();
 };
 
+/**
+ * Retrieves an option's value from the terminal.
+ * @param {string} key The option key.
+ */
+Terminal.prototype.getOption = function(key, value) {
+  if (!(key in Terminal.defaults)) {
+    throw new Error('No option with key "' + key + '"');
+  }
+
+  if (typeof this.options[key] != 'undefined') {
+    return this.options[key];
+  }
+
+  return this[key];
+};
+
 /**
  * Sets an option on the terminal.
  * @param {string} key The option key.
index 043906f60a069879717e959306b3f08bf16c81c2..77caad0878a857420ce838d14ba737c3d5253f71 100644 (file)
@@ -10,6 +10,22 @@ describe('xterm.js', function() {
     xterm.refresh = function(){};
   });
 
+  describe('getOption', function() {
+    it('should retrieve the option correctly', function() {
+      // In the `options` namespace.
+      xterm.options.cursorBlink = true;
+      assert.equal(xterm.getOption('cursorBlink'), true);
+
+      // On the Terminal instance
+      delete xterm.options.cursorBlink;
+      xterm.cursorBlink = false;
+      assert.equal(xterm.getOption('cursorBlink'), false);
+    });
+    it('should throw when retrieving a non-existant option', function() {
+      assert.throws(xterm.getOption.bind(xterm, 'fake', true));
+    });
+  });
+
   describe('setOption', function() {
     it('should set the option correctly', function() {
       xterm.setOption('cursorBlink', true);