Compare commits

...

2 commits

Author SHA1 Message Date
Sami Samhuri
332bef8c07 bump version to v0.0.3 2010-10-14 08:47:58 -07:00
Sami Samhuri
b9469be9b7 Use VISUAL, and run reset after the editor exits (fixes display bugs) 2010-10-14 08:47:33 -07:00
2 changed files with 11 additions and 9 deletions

View file

@ -39,24 +39,26 @@ exports.extend = function(obj) {
, _tmpfile = path.join(_tmpdir, 'node-repl-' + process.pid + '.js')
obj.edit = function(editor) {
editor = editor || process.ENV['EDITOR']
editor = editor || process.ENV['VISUAL'] || process.ENV['EDITOR']
// TODO seed the file with _repl.context._ if the file doesn't exist yet
pausingRepl(function(unpause) {
var fds = [process.openStdin(), process.stdout, process.stdout]
, args = [_tmpfile]
// handle things like 'mate -w' and 'emacsclient --server-file <filename>'
if (editor.match(/\s/)) {
var words = editor.split(/\s+/)
var words = editor.split(/\s+/) // FIXME this should do proper word splitting ...
args = words.slice(1).concat(args)
editor = words[0]
}
spawn(editor, args, {customFds: fds}).on('exit', function(code) {
// FIXME figure out why obj.run doesn't work properly here (output is skewed)
if (code === 0) {
runFile(_tmpfile, function() { unpause() })
} else {
unpause()
}
// some editors change the terminal resulting in skewed output, clean up
spawn('reset').on('exit', function(_) {
if (code === 0) {
runFile(_tmpfile, function() { unpause() })
} else {
unpause()
}
})
})
})
}

View file

@ -1,6 +1,6 @@
{ "name" : "repl-edit"
, "description" : "Edit code in the repl using a real text editor"
, "version" : "0.0.2"
, "version" : "0.0.3"
, "homepage" : "http://samhuri.net/node/repl-edit"
, "author" : "Sami Samhuri <sami@samhuri.net>"
, "repository" :