Skip to content

Commit

Permalink
repl: deprecate turnOffEditorMode
Browse files Browse the repository at this point in the history
This deprecates the current REPLServer.prototype.turnOffEditorMode
and adds a private function for turnOffEditorMode which handles the
necessary internal changes required instead of having them scattered
about.

PR-URL: #15136
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Prince John Wesley <princejohnwesley@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
lance authored and BridgeAR committed Sep 28, 2017
1 parent a1b6cfd commit e416b3e
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 12 deletions.
7 changes: 7 additions & 0 deletions doc/api/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -693,6 +693,13 @@ Type: Runtime
*Note*: `Module._debug()` was never documented as an officially supported API.
<a id="DEP0078"></a>
### DEP0078: REPLServer.turnOffEditorMode()
Type: Runtime
`REPLServer.turnOffEditorMode()` was removed from userland visibility.
[`Buffer.allocUnsafeSlow(size)`]: buffer.html#buffer_class_method_buffer_allocunsafeslow_size
[`Buffer.from(array)`]: buffer.html#buffer_class_method_buffer_from_array
[`Buffer.from(buffer)`]: buffer.html#buffer_class_method_buffer_from_buffer
Expand Down
31 changes: 19 additions & 12 deletions lib/repl.js
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ function REPLServer(prompt,
self.on('SIGINT', function onSigInt() {
var empty = self.line.length === 0;
self.clearLine();
self.turnOffEditorMode();
_turnOffEditorMode(self);

const cmd = self[kBufferedCommandSymbol];
if (!(cmd && cmd.length > 0) && empty) {
Expand Down Expand Up @@ -539,7 +539,7 @@ function REPLServer(prompt,
if (key.ctrl && !key.shift) {
switch (key.name) {
case 'd': // End editor mode
self.turnOffEditorMode();
_turnOffEditorMode(self);
sawCtrlD = true;
ttyWrite(d, { name: 'return' });
break;
Expand Down Expand Up @@ -691,11 +691,10 @@ REPLServer.prototype.setPrompt = function setPrompt(prompt) {
REPLServer.super_.prototype.setPrompt.call(this, prompt);
};

REPLServer.prototype.turnOffEditorMode = function() {
this.editorMode = false;
this.setPrompt(this._initialPrompt);
};

REPLServer.prototype.turnOffEditorMode = util.deprecate(
function() { _turnOffEditorMode(this); },
'REPLServer.turnOffEditorMode() is deprecated',
'DEP00XX');

This comment has been minimized.

Copy link
@BridgeAR

BridgeAR Sep 28, 2017

Member

Hmpf, I missed this one.


// A stream to push an array into a REPL
// used in REPLServer.complete
Expand Down Expand Up @@ -1182,6 +1181,16 @@ function addStandardGlobals(completionGroups, filter) {
}
}

function _turnOnEditorMode(repl) {
repl.editorMode = true;
REPLServer.super_.prototype.setPrompt.call(repl, '');
}

function _turnOffEditorMode(repl) {
repl.editorMode = false;
repl.setPrompt(repl._initialPrompt);
}

function defineDefaultCommands(repl) {
repl.defineCommand('break', {
help: 'Sometimes you get stuck, this gets you out',
Expand Down Expand Up @@ -1254,15 +1263,14 @@ function defineDefaultCommands(repl) {
try {
var stats = fs.statSync(file);
if (stats && stats.isFile()) {
this.editorMode = true;
REPLServer.super_.prototype.setPrompt.call(this, '');
_turnOnEditorMode(this);
var data = fs.readFileSync(file, 'utf8');
var lines = data.split('\n');
for (var n = 0; n < lines.length; n++) {
if (lines[n])
this.write(`${lines[n]}\n`);
}
this.turnOffEditorMode();
_turnOffEditorMode(this);
this.write('\n');
} else {
this.outputStream.write('Failed to load:' + file +
Expand All @@ -1279,8 +1287,7 @@ function defineDefaultCommands(repl) {
help: 'Enter editor mode',
action() {
if (!this.terminal) return;
this.editorMode = true;
REPLServer.super_.prototype.setPrompt.call(this, '');
_turnOnEditorMode(this);
this.outputStream.write(
'// Entering editor mode (^D to finish, ^C to cancel)\n');
}
Expand Down
14 changes: 14 additions & 0 deletions test/parallel/test-repl-turn-off-editor-mode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use strict';
const common = require('../common');
const repl = require('repl');

testTurnOffEditorMode();

function testTurnOffEditorMode() {
const server = repl.start({ prompt: '> ' });
const warn = 'REPLServer.turnOffEditorMode() is deprecated';

common.expectWarning('DeprecationWarning', warn);
server.turnOffEditorMode();
server.close();
}

0 comments on commit e416b3e

Please sign in to comment.