whole_func_string: function(ev) {
          if (this.isUpdating) {
              return;
          }
  
          var prefix = this.element.value.substring(0, ev.argument.start);
          var suffix = this.element.value.substring(ev.argument.end);
          var insert = typeof ev.text === 'string' ? ev.text : ev.text.name;
          this.element.value = prefix + insert + suffix;
          // Fix the cursor.
          var insertEnd = (prefix + insert).length;
          this.element.selectionStart = insertEnd;
          this.element.selectionEnd = insertEnd;
      }
func_code_string: function(ev) {
          if (this.isUpdating) {
              return;
          }
  
          var prefix = this.element.value.substring(0, ev.argument.start);
          var suffix = this.element.value.substring(ev.argument.end);
          var insert = typeof ev.text === 'string' ? ev.text : ev.text.name;
          this.element.value = prefix + insert + suffix;
          // Fix the cursor.
          var insertEnd = (prefix + insert).length;
          this.element.selectionStart = insertEnd;
          this.element.selectionEnd = insertEnd;
      }
func_documentation_string: Update the input element to reflect the changed argument