minor fix, before diff engine refactor

This commit is contained in:
Adam Brown 2016-05-11 00:02:42 -04:00
parent c764eb5b45
commit 3326eaccb7
3 changed files with 81 additions and 407 deletions

View File

@ -99,43 +99,12 @@
}, },
"buffers": "buffers":
[ [
{
"file": "client/app/wdiff/wdiff.controller.js",
"settings":
{
"buffer_size": 1167,
"line_ending": "Unix"
}
},
{
"settings":
{
"buffer_size": 0,
"line_ending": "Unix"
}
},
{
"file": "server/api/wdiff/index.js",
"settings":
{
"buffer_size": 248,
"line_ending": "Unix"
}
},
{
"file": "server/api/wdiff/wdiff.controller.js",
"settings":
{
"buffer_size": 2687,
"line_ending": "Unix"
}
},
{ {
"file": "client/index.html", "file": "client/index.html",
"settings": "settings":
{ {
"buffer_size": 3904, "buffer_size": 3458,
"line_ending": "Unix" "line_ending": "Windows"
} }
}, },
{ {
@ -150,66 +119,28 @@
"file": "client/app/app.js", "file": "client/app/app.js",
"settings": "settings":
{ {
"buffer_size": 1515, "buffer_size": 349,
"line_ending": "Unix" "line_ending": "Windows"
} }
}, },
{ {
"file": "client/app/wdiff/wdiff.js", "file": "server/components/wdiff/index.js",
"settings": "settings":
{ {
"buffer_size": 224, "buffer_size": 8038,
"line_ending": "Unix"
}
},
{
"file": "client/app/wdiff/wdiff.jade",
"settings":
{
"buffer_size": 1122,
"line_ending": "Unix"
}
},
{
"file": "client/app/wdiff/wdiff.scss",
"settings":
{
"buffer_size": 553,
"line_ending": "Unix"
}
},
{
"file": "bin/markdown-format-wdiff",
"settings":
{
"buffer_size": 711,
"line_ending": "Unix"
}
},
{
"file": "bin/markdown-git-changes",
"settings":
{
"buffer_size": 2724,
"line_ending": "Unix"
}
},
{
"contents": "'use strict';\n\nangular.module('markdownFormatWdiffApp')\n .config(function ($routeProvider) {\n $routeProvider\n .when('/oldmain', {\n templateUrl: 'app/main/main.html',\n controller: 'MainCtrl'\n });\n });",
"file": "client/app/main/main.js",
"file_size": -1,
"file_write_time": -1,
"settings":
{
"buffer_size": 228,
"line_ending": "Unix" "line_ending": "Unix"
} }
} }
], ],
"build_system": "", "build_system": "",
"build_system_choices":
[
],
"build_varint": "",
"command_palette": "command_palette":
{ {
"height": 157.0, "height": 157.0,
"last_filter": "",
"selected_items": "selected_items":
[ [
[ [
@ -255,19 +186,22 @@
}, },
"expanded_folders": "expanded_folders":
[ [
"/Z/markdown-format-wdiff", "/C/Users/Adam/Desktop/code/projects/dubdiff/client",
"/Z/markdown-format-wdiff/bin", "/C/Users/Adam/Desktop/code/projects/dubdiff/client/app",
"/Z/markdown-format-wdiff/client", "/C/Users/Adam/Desktop/code/projects/dubdiff/server",
"/Z/markdown-format-wdiff/client/app", "/C/Users/Adam/Desktop/code/projects/dubdiff/server/components",
"/Z/markdown-format-wdiff/client/app/wdiff", "/C/Users/Adam/Desktop/code/projects/dubdiff/server/components/wdiff"
"/Z/markdown-format-wdiff/server",
"/Z/markdown-format-wdiff/server/api",
"/Z/markdown-format-wdiff/server/api/wdiff",
"/Z/markdown-format-wdiff/server/config",
"/Z/markdown-format-wdiff/server/config/environment"
], ],
"file_history": "file_history":
[ [
"/C/Users/Adam/Desktop/code/projects/dubdiff/client/app/main/main.js",
"/C/Users/Adam/Desktop/code/projects/dubdiff/bin/markdown-format-wdiff",
"/C/Users/Adam/Desktop/code/projects/dubdiff/client/app/wdiff/wdiff.scss",
"/C/Users/Adam/Desktop/code/projects/dubdiff/client/app/wdiff/wdiff.jade",
"/C/Users/Adam/Desktop/code/projects/dubdiff/client/app/wdiff/wdiff.js",
"/C/Users/Adam/Desktop/code/projects/dubdiff/server/api/wdiff/wdiff.controller.js",
"/C/Users/Adam/Desktop/code/projects/dubdiff/server/api/wdiff/index.js",
"/C/Users/Adam/Desktop/code/projects/dubdiff/client/app/wdiff/wdiff.controller.js",
"/Z/lookup-lists/Gruntfile.js", "/Z/lookup-lists/Gruntfile.js",
"/Z/docker/data/lookup-lists/client/app/list/list/list.jade", "/Z/docker/data/lookup-lists/client/app/list/list/list.jade",
"/Z/docker/data/lookup-lists/client/app/list/list/list.controller.js", "/Z/docker/data/lookup-lists/client/app/list/list/list.controller.js",
@ -387,19 +321,11 @@
"/C/Users/adam/Desktop/vagrant/node/scripttest/Gruntfile.js", "/C/Users/adam/Desktop/vagrant/node/scripttest/Gruntfile.js",
"/C/Users/adam/Desktop/vagrant/node/scripttest/package.json", "/C/Users/adam/Desktop/vagrant/node/scripttest/package.json",
"/C/Users/adam/Desktop/vagrant/node/angular-phonecat/app/index.html", "/C/Users/adam/Desktop/vagrant/node/angular-phonecat/app/index.html",
"/C/Users/adam/Desktop/vagrant/node/learning-mean-holmes/package.json", "/C/Users/adam/Desktop/vagrant/node/learning-mean-holmes/package.json"
"/C/Users/adam/Desktop/vagrant/node/learning-mean-holmes/app.js",
"/C/Users/adam/Desktop/vagrant/node/learning-mean-holmes/bower.json",
"/C/Users/adam/Desktop/vagrant/node/learning-mean-holmes/bin/www",
"/C/Users/adam/Desktop/git/learning-nodejs-hello/README.md",
"/C/Users/adam/Desktop/git/learning-nodejs-passport/README.md",
"/C/Users/adam/Desktop/git/learning-nodejs-passport/test2/Gruntfile.js",
"/C/Users/adam/Desktop/git/learning-nodejs-passport/test.sh",
"/C/Users/adam/Desktop/git/learning-nodejs-passport/bootstrap-npm.sh"
], ],
"find": "find":
{ {
"height": 43.0 "height": 47.0
}, },
"find_in_files": "find_in_files":
{ {
@ -569,140 +495,24 @@
"groups": "groups":
[ [
{ {
"selected": 1, "selected": 3,
"sheets": "sheets":
[ [
{ {
"buffer": 0, "buffer": 0,
"file": "client/app/wdiff/wdiff.controller.js",
"semi_transient": false,
"settings":
{
"buffer_size": 1167,
"regions":
{
},
"selection":
[
[
491,
491
]
],
"settings":
{
"syntax": "Packages/JavaScript/JavaScript.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 1,
"type": "text"
},
{
"buffer": 1,
"semi_transient": false,
"settings":
{
"buffer_size": 0,
"regions":
{
},
"selection":
[
[
0,
0
]
],
"settings":
{
"default_dir": "Z:\\markdown-format-wdiff\\server\\api",
"syntax": "Packages/Text/Plain text.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 0,
"type": "text"
},
{
"buffer": 2,
"file": "server/api/wdiff/index.js",
"semi_transient": false,
"settings":
{
"buffer_size": 248,
"regions":
{
},
"selection":
[
[
0,
0
]
],
"settings":
{
"syntax": "Packages/JavaScript/JavaScript.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 11,
"type": "text"
},
{
"buffer": 3,
"file": "server/api/wdiff/wdiff.controller.js",
"semi_transient": false,
"settings":
{
"buffer_size": 2687,
"regions":
{
},
"selection":
[
[
2524,
2524
]
],
"settings":
{
"syntax": "Packages/JavaScript/JavaScript.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 1142.0,
"zoom_level": 1.0
},
"stack_index": 2,
"type": "text"
},
{
"buffer": 4,
"file": "client/index.html", "file": "client/index.html",
"semi_transient": false, "semi_transient": false,
"settings": "settings":
{ {
"buffer_size": 3904, "buffer_size": 3458,
"regions": "regions":
{ {
}, },
"selection": "selection":
[ [
[ [
2796, 0,
2796 0
] ]
], ],
"settings": "settings":
@ -712,14 +522,14 @@
"translate_tabs_to_spaces": true "translate_tabs_to_spaces": true
}, },
"translation.x": 0.0, "translation.x": 0.0,
"translation.y": 810.0, "translation.y": 516.0,
"zoom_level": 1.0 "zoom_level": 1.0
}, },
"stack_index": 8, "stack_index": 2,
"type": "text" "type": "text"
}, },
{ {
"buffer": 5, "buffer": 1,
"file": "bower.json", "file": "bower.json",
"semi_transient": false, "semi_transient": false,
"settings": "settings":
@ -745,162 +555,16 @@
"translation.y": 0.0, "translation.y": 0.0,
"zoom_level": 1.0 "zoom_level": 1.0
}, },
"stack_index": 9,
"type": "text"
},
{
"buffer": 6,
"file": "client/app/app.js",
"semi_transient": false,
"settings":
{
"buffer_size": 1515,
"regions":
{
},
"selection":
[
[
302,
302
]
],
"settings":
{
"syntax": "Packages/JavaScript/JavaScript.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 10,
"type": "text"
},
{
"buffer": 7,
"file": "client/app/wdiff/wdiff.js",
"semi_transient": false,
"settings":
{
"buffer_size": 224,
"regions":
{
},
"selection":
[
[
127,
127
]
],
"settings":
{
"syntax": "Packages/JavaScript/JavaScript.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 5,
"type": "text"
},
{
"buffer": 8,
"file": "client/app/wdiff/wdiff.jade",
"semi_transient": false,
"settings":
{
"buffer_size": 1122,
"regions":
{
},
"selection":
[
[
417,
417
]
],
"settings":
{
"syntax": "Packages/Jade/Syntaxes/Jade.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 378.0,
"zoom_level": 1.0
},
"stack_index": 3, "stack_index": 3,
"type": "text" "type": "text"
}, },
{ {
"buffer": 9, "buffer": 2,
"file": "client/app/wdiff/wdiff.scss", "file": "client/app/app.js",
"semi_transient": false, "semi_transient": false,
"settings": "settings":
{ {
"buffer_size": 553, "buffer_size": 349,
"regions":
{
},
"selection":
[
[
106,
106
]
],
"settings":
{
"syntax": "Packages/Sass/Syntaxes/Sass.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 4,
"type": "text"
},
{
"buffer": 10,
"file": "bin/markdown-format-wdiff",
"semi_transient": false,
"settings":
{
"buffer_size": 711,
"regions":
{
},
"selection":
[
[
501,
501
]
],
"settings":
{
"syntax": "Packages/ShellScript/Shell-Unix-Generic.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 6,
"type": "text"
},
{
"buffer": 11,
"file": "bin/markdown-git-changes",
"semi_transient": true,
"settings":
{
"buffer_size": 2724,
"regions": "regions":
{ {
}, },
@ -913,43 +577,45 @@
], ],
"settings": "settings":
{ {
"syntax": "Packages/ShellScript/Shell-Unix-Generic.tmLanguage", "syntax": "Packages/JavaScript/JavaScript.tmLanguage",
"tab_size": 4, "tab_size": 2,
"translate_tabs_to_spaces": true "translate_tabs_to_spaces": true
}, },
"translation.x": 0.0, "translation.x": 0.0,
"translation.y": 0.0, "translation.y": 0.0,
"zoom_level": 1.0 "zoom_level": 1.0
}, },
"stack_index": 7, "stack_index": 1,
"type": "text" "type": "text"
}, },
{ {
"buffer": 12, "buffer": 3,
"file": "client/app/main/main.js", "file": "server/components/wdiff/index.js",
"semi_transient": false, "semi_transient": false,
"settings": "settings":
{ {
"buffer_size": 228, "buffer_size": 8038,
"regions": "regions":
{ {
}, },
"selection": "selection":
[ [
[ [
134, 1952,
134 1952
] ]
], ],
"settings": "settings":
{ {
"syntax": "Packages/JavaScript/JavaScript.tmLanguage" "syntax": "Packages/Babel/JavaScript (Babel).sublime-syntax",
"tab_size": 2,
"translate_tabs_to_spaces": true
}, },
"translation.x": 0.0, "translation.x": 0.0,
"translation.y": 0.0, "translation.y": 264.0,
"zoom_level": 1.0 "zoom_level": 1.0
}, },
"stack_index": 12, "stack_index": 0,
"type": "text" "type": "text"
} }
] ]
@ -994,6 +660,7 @@
{ {
"height": 0.0 "height": 0.0
}, },
"pinned_build_system": "",
"project": "markdown-format-wdiff.sublime-project", "project": "markdown-format-wdiff.sublime-project",
"replace": "replace":
{ {
@ -1003,6 +670,7 @@
"select_file": "select_file":
{ {
"height": 0.0, "height": 0.0,
"last_filter": "",
"selected_items": "selected_items":
[ [
[ [
@ -1015,6 +683,7 @@
"select_project": "select_project":
{ {
"height": 0.0, "height": 0.0,
"last_filter": "",
"selected_items": "selected_items":
[ [
], ],
@ -1023,6 +692,7 @@
"select_symbol": "select_symbol":
{ {
"height": 0.0, "height": 0.0,
"last_filter": "",
"selected_items": "selected_items":
[ [
], ],

View File

@ -29,25 +29,6 @@ exports.showComparison = function showComparison(req, res) {
}); });
} }
//return the a or b doc for a comparison given an id, if it exsits
exports.showComparison = function showComparison(req, res) {
//generate a filename
var filename = fnComparison(req.params.id);
//check if that file exists
fs.exists(filename, function (exists) {
//if the file does not exist, return a 404
if (!exists) return res.send(404);
//otherwise, read the file as JSON
jf.readFile(filename, function(err, comparison) {
if(err) { return handleError(res, err); }
//and return
return res.json(comparison);
});
});
}
//return a markdown wdiff for the comparison given an id, if it exsits //return a markdown wdiff for the comparison given an id, if it exsits
exports.wdiffMarkdownComparison = function wdiffMarkdownComparison(req, res) { exports.wdiffMarkdownComparison = function wdiffMarkdownComparison(req, res) {

View File

@ -16,6 +16,15 @@ module.exports = function(a, b, asMarkdown, callback) {
//!!! this nested file-open is not a good pattern //!!! this nested file-open is not a good pattern
// better would be to use promises and write the two files asynchronously // better would be to use promises and write the two files asynchronously
//console.log(a)
//console.log(escapeString(a))
//a few strings have to be escaped: "[-", "-]", "{+", and "+}"
a = escapeString(a)
b = escapeString(b)
// open the first file // open the first file
temp.open('wdiffa-', function(err, filea) { temp.open('wdiffa-', function(err, filea) {
//handle errors //handle errors
@ -43,7 +52,7 @@ module.exports = function(a, b, asMarkdown, callback) {
if (err) if (err)
return callback(err); return callback(err);
var cmd = "./bin/wdiff " + filea.path + " " +fileb.path; var cmd = "wdiff " + filea.path + " " +fileb.path;
exec(cmd, function(err, stdout) { exec(cmd, function(err, stdout) {
if (err && err.code!=1 && err.code!=0) { if (err && err.code!=1 && err.code!=0) {
@ -53,13 +62,14 @@ module.exports = function(a, b, asMarkdown, callback) {
var wdiffSame; var wdiffSame;
wdiffSame = (err && err.code == 0) ? true:false; wdiffSame = (err && err.code == 0) ? true:false;
var resData = {wdiffNoMarkdown:unescapeString(stdout), same: wdiffSame};
var resData = {wdiffNoMarkdown:stdout, same: wdiffSame};
if (asMarkdown) { if (asMarkdown) {
//!!! this needs more sophisticated parsing //!!! this needs more sophisticated parsing
var markdown = rewriteWdiffMarkdown(stdout) //console.log(stdout)
var markdown = unescapeString(rewriteWdiffMarkdown(stdout))
resData.wdiff=markdown; resData.wdiff=markdown;
} }
@ -203,7 +213,7 @@ function rewriteWdiffMarkdown(source) {
// |([ \t]+[\*\+-]) - unordered lists // |([ \t]+[\*\+-]) - unordered lists
// |([ \t]+[0-9]+\.) - numeric lists // |([ \t]+[0-9]+\.) - numeric lists
// )? // )?
// [ \t]+ - trailing whitespace // [ \t]* - trailing whitespace
//var PREFIX = /^([ \t]*\>)*(([ \t]*#*)|([ \t]*[\*\+-])|([ \t]*[\d]+\.))?[ \t]+/ //var PREFIX = /^([ \t]*\>)*(([ \t]*#*)|([ \t]*[\*\+-])|([ \t]*[\d]+\.))?[ \t]+/
var PREFIX = /^([ \t]*\>)*(([ \t]*#*)|([ \t]*[\*\+-])|([ \t]*[\d]+\.))?[ \t]*/ var PREFIX = /^([ \t]*\>)*(([ \t]*#*)|([ \t]*[\*\+-])|([ \t]*[\d]+\.))?[ \t]*/
//var PREFIX = /^#*/ //var PREFIX = /^#*/
@ -262,3 +272,16 @@ function rewriteWdiffMarkdown(source) {
return output; return output;
} }
function escapeString(str) {
str = str.replace(/\[\-/gm, "[-")
str = str.replace(/\-\]/gm, "-]")
return str
}
function unescapeString(str) {
str = str.replace(/\&\#91\;-/gm, "[-")
str = str.replace(/-\&\#93\;/gm, "-]")
return str
}