{"action":"created","issue":{"url":"https://api.github.com/repos/Glavin001/atom-beautify/issues/472","labels_url":"https://api.github.com/repos/Glavin001/atom-beautify/issues/472/labels{/name}","comments_url":"https://api.github.com/repos/Glavin001/atom-beautify/issues/472/comments","events_url":"https://api.github.com/repos/Glavin001/atom-beautify/issues/472/events","html_url":"https://github.com/Glavin001/atom-beautify/issues/472","id":96297097,"number":472,"title":"Beautify on save moves the cursor at the top of the file","user":{"login":"sebz","id":590088,"avatar_url":"https://avatars.githubusercontent.com/u/590088?v=3","gravatar_id":"","url":"https://api.github.com/users/sebz","html_url":"https://github.com/sebz","followers_url":"https://api.github.com/users/sebz/followers","following_url":"https://api.github.com/users/sebz/following{/other_user}","gists_url":"https://api.github.com/users/sebz/gists{/gist_id}","starred_url":"https://api.github.com/users/sebz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebz/subscriptions","organizations_url":"https://api.github.com/users/sebz/orgs","repos_url":"https://api.github.com/users/sebz/repos","events_url":"https://api.github.com/users/sebz/events{/privacy}","received_events_url":"https://api.github.com/users/sebz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-21T11:50:05Z","updated_at":"2015-07-21T14:07:28Z","closed_at":null,"body":"Here are my debug logs like you asked in #338 \r\n\r\n# Atom Beautify - Debugging information\r\n\r\nThe following debugging information was generated by `Atom Beautify` on `Tue Jul 21 2015 13:37:01 GMT+0200 (CEST)`.\r\n\r\n---\r\n\r\n**Platform**: linux\r\n\r\n## Versions\r\n\r\n**Atom Version**: 1.0.0\r\n\r\n**Atom Beautify Version**: 0.28.8\r\n\r\n## Original file to be beautified\r\n\r\n**Original File Path**: `/home/sebz/dev/swir/proto/matasano/index.js`\r\n\r\n**Original File Grammar**: JavaScript\r\n\r\n**Original File Language**: JavaScript\r\n\r\n**Original File Contents**: \r\n```javascript\r\nvar fs = require(\"fs\");\r\n\r\n// http://cryptopals.com/sets/1/challenges/1/\r\n// Convert hex to base64\r\nfunction challenge1(hex) {\r\n    var b = new Buffer(hex, \"hex\");\r\n    return b.toString('base64');\r\n}\r\n// console.log(\"base64:\", challenge1(\"49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d\"));\r\n\r\n// http://cryptopals.com/sets/1/challenges/2/\r\n// Fixed XOR\r\n// Write a function that takes two equal-length buffers and produces their XOR combination.\r\nfunction challenge2(buff1, buff2) {\r\n    var b = new Buffer(buff1, \"hex\");\r\n    var b2 = new Buffer(buff2, \"hex\");\r\n\r\n    if (b.length != b2.length) {\r\n        throw new Error(\"The 2 buffers must have the same length\");\r\n    }\r\n    var xored = [];\r\n    for (var i = 0; i < b.length; i++) {\r\n        xored.push(b[i] ^ b2[i]);\r\n    }\r\n    console.log(xored);\r\n    return new Buffer(xored).toString(\"hex\");\r\n}\r\n\r\n// console.log(challenge2(\"1c0111001f010100061a024b53535009181c\", \"686974207468652062756c6c277320657965\"));\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/3/\r\nfunction challenge3(str) {\r\n    var b = new Buffer(str, \"hex\");\r\n\r\n    function xor(buffer, key) {\r\n        var xored = [];\r\n        for (var j = 0; j < buffer.length; j++) {\r\n            xored.push(buffer[j] ^ key);\r\n        }\r\n        return new Buffer(xored).toString(\"utf8\");\r\n    }\r\n\r\n\r\n    var decodedList = [];\r\n    for (var i = 0; i < 255; i++) {\r\n        decodedList.push(xor(b, i));\r\n    }\r\n\r\n    var bestScore = 0;\r\n    var winner = \"\";\r\n    for (var k = 0; k < decodedList.length; k++) {\r\n        var decodedStr = decodedList[k];\r\n        var score = computeScore(decodedStr);\r\n        if (score > bestScore) {\r\n            bestScore = score;\r\n            winner = {\r\n                input: str,\r\n                key: new Buffer([k]).toString(\"utf8\"),\r\n                decodedString: decodedStr,\r\n                score: score\r\n            };\r\n        }\r\n    }\r\n    // console.log(\"Winner:\", winner);\r\n    return winner;\r\n}\r\n\r\n// challenge3(\"1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736\");\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/4/\r\nfunction challenge4(filePath) {\r\n    fs.readFile(filePath, function(err, data) {\r\n        if (err) {\r\n            console.error(\"Error:\", err);\r\n            return;\r\n        }\r\n        var bufferString = data.toString();\r\n        var lines = bufferString.split('\\n');\r\n        var winner;\r\n        for (var i = 0; i < lines.length; i++) {\r\n            var line = lines[i];\r\n            var lineWinner = challenge3(line);\r\n            if (!winner || winner.score < lineWinner.score) {\r\n                winner = lineWinner;\r\n            }\r\n        }\r\n        console.log(\"THE winner:\", winner);\r\n    });\r\n}\r\n\r\n// challenge4(\"./4.txt\");\r\n\r\n// http://cryptopals.com/sets/1/challenges/5/\r\nfunction challenge5(sentence, key) {\r\n    var theKey = key;\r\n    while (theKey.length < sentence.length) {\r\n        theKey += key;\r\n    }\r\n\r\n    var b = new Buffer(sentence, \"ascii\");\r\n    var b2 = new Buffer(theKey, \"ascii\");\r\n\r\n    var xored = [];\r\n    for (var i = 0; i < b.length; i++) {\r\n        xored.push(b[i] ^ b2[i]);\r\n    }\r\n    console.log(xored);\r\n    return new Buffer(xored).toString(\"hex\");\r\n}\r\n// console.log(challenge5(\"Burning 'em, if you ain't quick and nimble\\nI go crazy when I hear a cymbal\", \"ICE\"));\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/6/\r\nfunction challenge6() {\r\n    var s1 = \"this is a test\";\r\n    var s2 = \"wokka wokka!!!\";\r\n    console.log(hammingDistance(new Buffer(s1, \"ascii\"), new Buffer(s2, \"ascii\")));\r\n\r\n    var fileContent = fs.readFileSync(\"./6.txt\");\r\n\r\n    var bufferString = fileContent.toString();\r\n    var lines = bufferString.split('\\n');\r\n    console.log(\"lines\", lines);\r\n}\r\nchallenge6();\r\n\r\n////////////\r\n// UTILS\r\n///////////\r\n\r\nfunction byteDist(b1, b2) {\r\n    var res = 0;\r\n    for (var i = 0; i < 8; i++) {\r\n        var bit1 = b1 & (1 << i) ? 1 : 0;\r\n        var bit2 = b2 & (1 << i) ? 1 : 0;\r\n        if (bit1 != bit2) {\r\n            res++;\r\n        }\r\n    }\r\n    return res;\r\n}\r\n\r\nfunction hammingDistance(bytes1, bytes2) {\r\n    var res = 0;\r\n    for (var i = 0; i < bytes1.length; i++) {\r\n        res += byteDist(bytes1[i], bytes2[i]);\r\n    }\r\n    return res;\r\n}\r\n\r\nfunction computeScore(str) {\r\n    var score = 0;\r\n    for (var j = 0; j < str.length; j++) {\r\n        var c = str.charAt(j).charCodeAt();\r\n        if (c > 31 && c < 127) {\r\n            // printable ascii\r\n            score += 10;\r\n        }\r\n        if (c == 32) {\r\n            // space\r\n            score += 40;\r\n\r\n        } else if (c == 69 || c == 101) {\r\n            // e's\r\n            score += 20;\r\n\r\n        } else if (c > 96 && c < 123) {\r\n            // lowercase alpha\r\n            score += 10;\r\n\r\n        } else if (c > 64 && c < 91) {\r\n            // uppercase alpha\r\n            score += 5;\r\n\r\n        }\r\n    }\r\n    return score;\r\n}\r\n\r\n```\r\n\r\n## Beautification options\r\n\r\n**Editor Options**: \r\nOptions from Atom Editor settings\r\n```json\r\n{\r\n    \"_default\": {\r\n        \"indent_size\": 4,\r\n        \"indent_char\": \" \",\r\n        \"indent_with_tabs\": false\r\n    }\r\n}\r\n```\r\n\r\n**Config Options**: \r\nOptions from Atom Beautify package settings\r\n```json\r\n{\r\n    \"js\": {\r\n        \"end_with_newline\": true,\r\n        \"indent_size\": 4,\r\n        \"indent_char\": \" \",\r\n        \"indent_level\": 0,\r\n        \"indent_with_tabs\": false,\r\n        \"preserve_newlines\": true,\r\n        \"max_preserve_newlines\": 10,\r\n        \"space_in_paren\": false,\r\n        \"jslint_happy\": false,\r\n        \"space_after_anon_function\": false,\r\n        \"brace_style\": \"collapse\",\r\n        \"break_chained_methods\": false,\r\n        \"keep_array_indentation\": false,\r\n        \"keep_function_indentation\": false,\r\n        \"space_before_conditional\": true,\r\n        \"eval_code\": false,\r\n        \"unescape_strings\": false,\r\n        \"wrap_line_length\": 0\r\n    },\r\n    \"cs\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"c\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"cpp\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"css\": {\r\n        \"indent_size\": 4,\r\n        \"indent_char\": \" \",\r\n        \"selector_separator_newline\": false,\r\n        \"newline_between_rules\": false,\r\n        \"preserve_newlines\": false,\r\n        \"wrap_line_length\": 0,\r\n        \"indent_comments\": true,\r\n        \"force_indentation\": false,\r\n        \"convert_quotes\": \"none\",\r\n        \"align_assignments\": false\r\n    },\r\n    \"d\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"fortran\": {\r\n        \"emacs_path\": \"\",\r\n        \"emacs_script_path\": \"\"\r\n    },\r\n    \"html\": {\r\n        \"indent_inner_html\": false,\r\n        \"indent_size\": 4,\r\n        \"indent_char\": \" \",\r\n        \"brace_style\": \"collapse\",\r\n        \"indent_scripts\": \"normal\",\r\n        \"wrap_line_length\": 250,\r\n        \"wrap_attributes\": \"auto\",\r\n        \"wrap_attributes_indent_size\": 4,\r\n        \"preserve_newlines\": true,\r\n        \"max_preserve_newlines\": 10,\r\n        \"unformatted\": [\r\n            \"a\",\r\n            \"sub\",\r\n            \"sup\",\r\n            \"b\",\r\n            \"i\",\r\n            \"u\"\r\n        ],\r\n        \"end_with_newline\": false\r\n    },\r\n    \"java\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"objectivec\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"pawn\": {\r\n        \"configPath\": \"\"\r\n    },\r\n    \"perl\": {\r\n        \"perltidy_profile\": \"\"\r\n    },\r\n    \"php\": {\r\n        \"cs_fixer_path\": \"\",\r\n        \"fixers\": \"\",\r\n        \"level\": \"\"\r\n    },\r\n    \"python\": {\r\n        \"max_line_length\": 79,\r\n        \"indent_size\": 4,\r\n        \"ignore\": [\r\n            \"E24\"\r\n        ]\r\n    },\r\n    \"ruby\": {\r\n        \"indent_size\": 4,\r\n        \"indent_char\": \" \"\r\n    },\r\n    \"rust\": {\r\n        \"rustfmt_path\": \"\"\r\n    },\r\n    \"sql\": {\r\n        \"indent_size\": 4,\r\n        \"keywords\": \"upper\",\r\n        \"identifiers\": \"lower\"\r\n    },\r\n    \"vala\": {\r\n        \"configPath\": \"\"\r\n    }\r\n}\r\n```\r\n\r\n**Home Options**: \r\nOptions from `/home/sebz/.jsbeautifyrc`\r\n```json\r\n{\r\n    \"_default\": {}\r\n}\r\n```\r\n\r\n**EditorConfig Options**: \r\nOptions from [EditorConfig](http://editorconfig.org/) file\r\n```json\r\n{\r\n    \"_default\": {}\r\n}\r\n```\r\n\r\n**Project Options**: \r\nOptions from `.jsbeautifyrc` files starting from directory `/home/sebz/dev/swir/proto/matasano` and going up to root\r\n```json\r\n[\r\n    {\r\n        \"_default\": {}\r\n    },\r\n    {\r\n        \"_default\": {}\r\n    },\r\n    {\r\n        \"_default\": {}\r\n    },\r\n    {\r\n        \"_default\": {}\r\n    },\r\n    {\r\n        \"_default\": {}\r\n    },\r\n    {\r\n        \"_default\": {}\r\n    }\r\n]\r\n```\r\n\r\n**Final Options**: \r\nFinal combined options that are used\r\n```json\r\n{\r\n    \"indent_size\": 4,\r\n    \"indent_char\": \" \",\r\n    \"indent_with_tabs\": false,\r\n    \"end_with_newline\": true,\r\n    \"indent_level\": 0,\r\n    \"preserve_newlines\": true,\r\n    \"max_preserve_newlines\": 10,\r\n    \"space_in_paren\": false,\r\n    \"jslint_happy\": false,\r\n    \"space_after_anon_function\": false,\r\n    \"brace_style\": \"collapse\",\r\n    \"break_chained_methods\": false,\r\n    \"keep_array_indentation\": false,\r\n    \"keep_function_indentation\": false,\r\n    \"space_before_conditional\": true,\r\n    \"eval_code\": false,\r\n    \"unescape_strings\": false,\r\n    \"wrap_line_length\": 0\r\n}\r\n```\r\n\r\n**Package Settings**: \r\nThe raw package settings options\r\n```json\r\n{\r\n    \"_analyticsUserId\": \"sebz\",\r\n    \"js_end_with_newline\": true,\r\n    \"language_js_beautify_on_save\": true,\r\n    \"analytics\": true,\r\n    \"_loggerLevel\": \"warn\",\r\n    \"beautifyEntireFileOnSave\": true,\r\n    \"muteUnsupportedLanguageErrors\": false,\r\n    \"muteAllErrors\": false,\r\n    \"cs_configPath\": \"\",\r\n    \"c_configPath\": \"\",\r\n    \"cpp_configPath\": \"\",\r\n    \"css_indent_size\": 4,\r\n    \"css_indent_char\": \" \",\r\n    \"css_selector_separator_newline\": false,\r\n    \"css_newline_between_rules\": false,\r\n    \"css_preserve_newlines\": false,\r\n    \"css_wrap_line_length\": 0,\r\n    \"css_indent_comments\": true,\r\n    \"css_force_indentation\": false,\r\n    \"css_convert_quotes\": \"none\",\r\n    \"css_align_assignments\": false,\r\n    \"d_configPath\": \"\",\r\n    \"fortran_emacs_path\": \"\",\r\n    \"fortran_emacs_script_path\": \"\",\r\n    \"html_indent_inner_html\": false,\r\n    \"html_indent_size\": 4,\r\n    \"html_indent_char\": \" \",\r\n    \"html_brace_style\": \"collapse\",\r\n    \"html_indent_scripts\": \"normal\",\r\n    \"html_wrap_line_length\": 250,\r\n    \"html_wrap_attributes\": \"auto\",\r\n    \"html_wrap_attributes_indent_size\": 4,\r\n    \"html_preserve_newlines\": true,\r\n    \"html_max_preserve_newlines\": 10,\r\n    \"html_unformatted\": [\r\n        \"a\",\r\n        \"sub\",\r\n        \"sup\",\r\n        \"b\",\r\n        \"i\",\r\n        \"u\"\r\n    ],\r\n    \"html_end_with_newline\": false,\r\n    \"java_configPath\": \"\",\r\n    \"js_indent_size\": 4,\r\n    \"js_indent_char\": \" \",\r\n    \"js_indent_level\": 0,\r\n    \"js_indent_with_tabs\": false,\r\n    \"js_preserve_newlines\": true,\r\n    \"js_max_preserve_newlines\": 10,\r\n    \"js_space_in_paren\": false,\r\n    \"js_jslint_happy\": false,\r\n    \"js_space_after_anon_function\": false,\r\n    \"js_brace_style\": \"collapse\",\r\n    \"js_break_chained_methods\": false,\r\n    \"js_keep_array_indentation\": false,\r\n    \"js_keep_function_indentation\": false,\r\n    \"js_space_before_conditional\": true,\r\n    \"js_eval_code\": false,\r\n    \"js_unescape_strings\": false,\r\n    \"js_wrap_line_length\": 0,\r\n    \"objectivec_configPath\": \"\",\r\n    \"pawn_configPath\": \"\",\r\n    \"perl_perltidy_profile\": \"\",\r\n    \"php_cs_fixer_path\": \"\",\r\n    \"php_fixers\": \"\",\r\n    \"php_level\": \"\",\r\n    \"python_max_line_length\": 79,\r\n    \"python_indent_size\": 4,\r\n    \"python_ignore\": [\r\n        \"E24\"\r\n    ],\r\n    \"ruby_indent_size\": 4,\r\n    \"ruby_indent_char\": \" \",\r\n    \"rust_rustfmt_path\": \"\",\r\n    \"sql_indent_size\": 4,\r\n    \"sql_keywords\": \"upper\",\r\n    \"sql_identifiers\": \"lower\",\r\n    \"vala_configPath\": \"\",\r\n    \"language_cs_disabled\": false,\r\n    \"language_cs_default_beautifier\": \"Uncrustify\",\r\n    \"language_cs_beautify_on_save\": false,\r\n    \"language_c_disabled\": false,\r\n    \"language_c_default_beautifier\": \"Uncrustify\",\r\n    \"language_c_beautify_on_save\": false,\r\n    \"language_coffeescript_disabled\": false,\r\n    \"language_coffeescript_default_beautifier\": \"coffee-fmt\",\r\n    \"language_coffeescript_beautify_on_save\": false,\r\n    \"language_cpp_disabled\": false,\r\n    \"language_cpp_default_beautifier\": \"Uncrustify\",\r\n    \"language_cpp_beautify_on_save\": false,\r\n    \"language_css_disabled\": false,\r\n    \"language_css_default_beautifier\": \"JS Beautify\",\r\n    \"language_css_beautify_on_save\": false,\r\n    \"language_csv_disabled\": false,\r\n    \"language_csv_default_beautifier\": \"Pretty Diff\",\r\n    \"language_csv_beautify_on_save\": false,\r\n    \"language_d_disabled\": false,\r\n    \"language_d_default_beautifier\": \"Uncrustify\",\r\n    \"language_d_beautify_on_save\": false,\r\n    \"language_ejs_disabled\": false,\r\n    \"language_ejs_default_beautifier\": \"Pretty Diff\",\r\n    \"language_ejs_beautify_on_save\": false,\r\n    \"language_erb_disabled\": false,\r\n    \"language_erb_default_beautifier\": \"Pretty Diff\",\r\n    \"language_erb_beautify_on_save\": false,\r\n    \"language_go_disabled\": false,\r\n    \"language_go_default_beautifier\": \"gofmt\",\r\n    \"language_go_beautify_on_save\": false,\r\n    \"language_fortran_disabled\": false,\r\n    \"language_fortran_default_beautifier\": \"Fortran Beautifier\",\r\n    \"language_fortran_beautify_on_save\": false,\r\n    \"language_handlebars_disabled\": false,\r\n    \"language_handlebars_default_beautifier\": \"JS Beautify\",\r\n    \"language_handlebars_beautify_on_save\": false,\r\n    \"language_html_disabled\": false,\r\n    \"language_html_default_beautifier\": \"JS Beautify\",\r\n    \"language_html_beautify_on_save\": false,\r\n    \"language_java_disabled\": false,\r\n    \"language_java_default_beautifier\": \"Uncrustify\",\r\n    \"language_java_beautify_on_save\": false,\r\n    \"language_js_disabled\": false,\r\n    \"language_js_default_beautifier\": \"JS Beautify\",\r\n    \"language_json_disabled\": false,\r\n    \"language_json_default_beautifier\": \"JS Beautify\",\r\n    \"language_json_beautify_on_save\": false,\r\n    \"language_jsx_disabled\": false,\r\n    \"language_jsx_default_beautifier\": \"Pretty Diff\",\r\n    \"language_jsx_beautify_on_save\": false,\r\n    \"language_less_disabled\": false,\r\n    \"language_less_default_beautifier\": \"Pretty Diff\",\r\n    \"language_less_beautify_on_save\": false,\r\n    \"language_markdown_disabled\": false,\r\n    \"language_markdown_default_beautifier\": \"Tidy Markdown\",\r\n    \"language_markdown_beautify_on_save\": false,\r\n    \"language_marko_disabled\": false,\r\n    \"language_marko_default_beautifier\": \"JS Beautify\",\r\n    \"language_marko_beautify_on_save\": false,\r\n    \"language_mustache_disabled\": false,\r\n    \"language_mustache_default_beautifier\": \"JS Beautify\",\r\n    \"language_mustache_beautify_on_save\": false,\r\n    \"language_objectivec_disabled\": false,\r\n    \"language_objectivec_default_beautifier\": \"Uncrustify\",\r\n    \"language_objectivec_beautify_on_save\": false,\r\n    \"language_pawn_disabled\": false,\r\n    \"language_pawn_default_beautifier\": \"Uncrustify\",\r\n    \"language_pawn_beautify_on_save\": false,\r\n    \"language_perl_disabled\": false,\r\n    \"language_perl_default_beautifier\": \"Perltidy\",\r\n    \"language_perl_beautify_on_save\": false,\r\n    \"language_php_disabled\": false,\r\n    \"language_php_default_beautifier\": \"PHP-CS-Fixer\",\r\n    \"language_php_beautify_on_save\": false,\r\n    \"language_python_disabled\": false,\r\n    \"language_python_default_beautifier\": \"autopep8\",\r\n    \"language_python_beautify_on_save\": false,\r\n    \"language_ruby_disabled\": false,\r\n    \"language_ruby_default_beautifier\": \"Rubocop\",\r\n    \"language_ruby_beautify_on_save\": false,\r\n    \"language_rust_disabled\": false,\r\n    \"language_rust_default_beautifier\": \"rustfmt\",\r\n    \"language_rust_beautify_on_save\": false,\r\n    \"language_sass_disabled\": false,\r\n    \"language_sass_default_beautifier\": \"Pretty Diff\",\r\n    \"language_sass_beautify_on_save\": false,\r\n    \"language_scss_disabled\": false,\r\n    \"language_scss_default_beautifier\": \"Pretty Diff\",\r\n    \"language_scss_beautify_on_save\": false,\r\n    \"language_spacebars_disabled\": false,\r\n    \"language_spacebars_default_beautifier\": \"Pretty Diff\",\r\n    \"language_spacebars_beautify_on_save\": false,\r\n    \"language_sql_disabled\": false,\r\n    \"language_sql_default_beautifier\": \"sqlformat\",\r\n    \"language_sql_beautify_on_save\": false,\r\n    \"language_svg_disabled\": false,\r\n    \"language_svg_default_beautifier\": \"Pretty Diff\",\r\n    \"language_svg_beautify_on_save\": false,\r\n    \"language_swig_disabled\": false,\r\n    \"language_swig_default_beautifier\": \"Pretty Diff\",\r\n    \"language_swig_beautify_on_save\": false,\r\n    \"language_tss_disabled\": false,\r\n    \"language_tss_default_beautifier\": \"Pretty Diff\",\r\n    \"language_tss_beautify_on_save\": false,\r\n    \"language_twig_disabled\": false,\r\n    \"language_twig_default_beautifier\": \"Pretty Diff\",\r\n    \"language_twig_beautify_on_save\": false,\r\n    \"language_typescript_disabled\": false,\r\n    \"language_typescript_default_beautifier\": \"TypeScript Formatter\",\r\n    \"language_typescript_beautify_on_save\": false,\r\n    \"language_vala_disabled\": false,\r\n    \"language_vala_default_beautifier\": \"Uncrustify\",\r\n    \"language_vala_beautify_on_save\": false,\r\n    \"language_visualforce_disabled\": false,\r\n    \"language_visualforce_default_beautifier\": \"Pretty Diff\",\r\n    \"language_visualforce_beautify_on_save\": false,\r\n    \"language_xml_disabled\": false,\r\n    \"language_xml_default_beautifier\": \"Pretty Diff\",\r\n    \"language_xml_beautify_on_save\": false\r\n}\r\n```\r\n\r\n## Results\r\n\r\n**Beautified File Contents**: \r\n```javascript\r\nvar fs = require(\"fs\");\r\n\r\n// http://cryptopals.com/sets/1/challenges/1/\r\n// Convert hex to base64\r\nfunction challenge1(hex) {\r\n    var b = new Buffer(hex, \"hex\");\r\n    return b.toString('base64');\r\n}\r\n// console.log(\"base64:\", challenge1(\"49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d\"));\r\n\r\n// http://cryptopals.com/sets/1/challenges/2/\r\n// Fixed XOR\r\n// Write a function that takes two equal-length buffers and produces their XOR combination.\r\nfunction challenge2(buff1, buff2) {\r\n    var b = new Buffer(buff1, \"hex\");\r\n    var b2 = new Buffer(buff2, \"hex\");\r\n\r\n    if (b.length != b2.length) {\r\n        throw new Error(\"The 2 buffers must have the same length\");\r\n    }\r\n    var xored = [];\r\n    for (var i = 0; i < b.length; i++) {\r\n        xored.push(b[i] ^ b2[i]);\r\n    }\r\n    console.log(xored);\r\n    return new Buffer(xored).toString(\"hex\");\r\n}\r\n\r\n// console.log(challenge2(\"1c0111001f010100061a024b53535009181c\", \"686974207468652062756c6c277320657965\"));\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/3/\r\nfunction challenge3(str) {\r\n    var b = new Buffer(str, \"hex\");\r\n\r\n    function xor(buffer, key) {\r\n        var xored = [];\r\n        for (var j = 0; j < buffer.length; j++) {\r\n            xored.push(buffer[j] ^ key);\r\n        }\r\n        return new Buffer(xored).toString(\"utf8\");\r\n    }\r\n\r\n\r\n    var decodedList = [];\r\n    for (var i = 0; i < 255; i++) {\r\n        decodedList.push(xor(b, i));\r\n    }\r\n\r\n    var bestScore = 0;\r\n    var winner = \"\";\r\n    for (var k = 0; k < decodedList.length; k++) {\r\n        var decodedStr = decodedList[k];\r\n        var score = computeScore(decodedStr);\r\n        if (score > bestScore) {\r\n            bestScore = score;\r\n            winner = {\r\n                input: str,\r\n                key: new Buffer([k]).toString(\"utf8\"),\r\n                decodedString: decodedStr,\r\n                score: score\r\n            };\r\n        }\r\n    }\r\n    // console.log(\"Winner:\", winner);\r\n    return winner;\r\n}\r\n\r\n// challenge3(\"1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736\");\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/4/\r\nfunction challenge4(filePath) {\r\n    fs.readFile(filePath, function(err, data) {\r\n        if (err) {\r\n            console.error(\"Error:\", err);\r\n            return;\r\n        }\r\n        var bufferString = data.toString();\r\n        var lines = bufferString.split('\\n');\r\n        var winner;\r\n        for (var i = 0; i < lines.length; i++) {\r\n            var line = lines[i];\r\n            var lineWinner = challenge3(line);\r\n            if (!winner || winner.score < lineWinner.score) {\r\n                winner = lineWinner;\r\n            }\r\n        }\r\n        console.log(\"THE winner:\", winner);\r\n    });\r\n}\r\n\r\n// challenge4(\"./4.txt\");\r\n\r\n// http://cryptopals.com/sets/1/challenges/5/\r\nfunction challenge5(sentence, key) {\r\n    var theKey = key;\r\n    while (theKey.length < sentence.length) {\r\n        theKey += key;\r\n    }\r\n\r\n    var b = new Buffer(sentence, \"ascii\");\r\n    var b2 = new Buffer(theKey, \"ascii\");\r\n\r\n    var xored = [];\r\n    for (var i = 0; i < b.length; i++) {\r\n        xored.push(b[i] ^ b2[i]);\r\n    }\r\n    console.log(xored);\r\n    return new Buffer(xored).toString(\"hex\");\r\n}\r\n// console.log(challenge5(\"Burning 'em, if you ain't quick and nimble\\nI go crazy when I hear a cymbal\", \"ICE\"));\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/6/\r\nfunction challenge6() {\r\n    var s1 = \"this is a test\";\r\n    var s2 = \"wokka wokka!!!\";\r\n    console.log(hammingDistance(new Buffer(s1, \"ascii\"), new Buffer(s2, \"ascii\")));\r\n\r\n    var fileContent = fs.readFileSync(\"./6.txt\");\r\n\r\n    var bufferString = fileContent.toString();\r\n    var lines = bufferString.split('\\n');\r\n    console.log(\"lines\", lines);\r\n}\r\nchallenge6();\r\n\r\n////////////\r\n// UTILS\r\n///////////\r\n\r\nfunction byteDist(b1, b2) {\r\n    var res = 0;\r\n    for (var i = 0; i < 8; i++) {\r\n        var bit1 = b1 & (1 << i) ? 1 : 0;\r\n        var bit2 = b2 & (1 << i) ? 1 : 0;\r\n        if (bit1 != bit2) {\r\n            res++;\r\n        }\r\n    }\r\n    return res;\r\n}\r\n\r\nfunction hammingDistance(bytes1, bytes2) {\r\n    var res = 0;\r\n    for (var i = 0; i < bytes1.length; i++) {\r\n        res += byteDist(bytes1[i], bytes2[i]);\r\n    }\r\n    return res;\r\n}\r\n\r\nfunction computeScore(str) {\r\n    var score = 0;\r\n    for (var j = 0; j < str.length; j++) {\r\n        var c = str.charAt(j).charCodeAt();\r\n        if (c > 31 && c < 127) {\r\n            // printable ascii\r\n            score += 10;\r\n        }\r\n        if (c == 32) {\r\n            // space\r\n            score += 40;\r\n\r\n        } else if (c == 69 || c == 101) {\r\n            // e's\r\n            score += 20;\r\n\r\n        } else if (c > 96 && c < 123) {\r\n            // lowercase alpha\r\n            score += 10;\r\n\r\n        } else if (c > 64 && c < 91) {\r\n            // uppercase alpha\r\n            score += 5;\r\n\r\n        }\r\n    }\r\n    return score;\r\n}\r\n\r\n```\r\n\r\n**Logs**: \r\n```\r\n2015-07-21T11:37:01.270Z - info: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] beautify var fs = require(\"fs\");\r\n\r\n// http://cryptopals.com/sets/1/challenges/1/\r\n// Convert hex to base64\r\nfunction challenge1(hex) {\r\n    var b = new Buffer(hex, \"hex\");\r\n    return b.toString('base64');\r\n}\r\n// console.log(\"base64:\", challenge1(\"49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d\"));\r\n\r\n// http://cryptopals.com/sets/1/challenges/2/\r\n// Fixed XOR\r\n// Write a function that takes two equal-length buffers and produces their XOR combination.\r\nfunction challenge2(buff1, buff2) {\r\n    var b = new Buffer(buff1, \"hex\");\r\n    var b2 = new Buffer(buff2, \"hex\");\r\n\r\n    if (b.length != b2.length) {\r\n        throw new Error(\"The 2 buffers must have the same length\");\r\n    }\r\n    var xored = [];\r\n    for (var i = 0; i < b.length; i++) {\r\n        xored.push(b[i] ^ b2[i]);\r\n    }\r\n    console.log(xored);\r\n    return new Buffer(xored).toString(\"hex\");\r\n}\r\n\r\n// console.log(challenge2(\"1c0111001f010100061a024b53535009181c\", \"686974207468652062756c6c277320657965\"));\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/3/\r\nfunction challenge3(str) {\r\n    var b = new Buffer(str, \"hex\");\r\n\r\n    function xor(buffer, key) {\r\n        var xored = [];\r\n        for (var j = 0; j < buffer.length; j++) {\r\n            xored.push(buffer[j] ^ key);\r\n        }\r\n        return new Buffer(xored).toString(\"utf8\");\r\n    }\r\n\r\n\r\n    var decodedList = [];\r\n    for (var i = 0; i < 255; i++) {\r\n        decodedList.push(xor(b, i));\r\n    }\r\n\r\n    var bestScore = 0;\r\n    var winner = \"\";\r\n    for (var k = 0; k < decodedList.length; k++) {\r\n        var decodedStr = decodedList[k];\r\n        var score = computeScore(decodedStr);\r\n        if (score > bestScore) {\r\n            bestScore = score;\r\n            winner = {\r\n                input: str,\r\n                key: new Buffer([k]).toString(\"utf8\"),\r\n                decodedString: decodedStr,\r\n                score: score\r\n            };\r\n        }\r\n    }\r\n    // console.log(\"Winner:\", winner);\r\n    return winner;\r\n}\r\n\r\n// challenge3(\"1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736\");\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/4/\r\nfunction challenge4(filePath) {\r\n    fs.readFile(filePath, function(err, data) {\r\n        if (err) {\r\n            console.error(\"Error:\", err);\r\n            return;\r\n        }\r\n        var bufferString = data.toString();\r\n        var lines = bufferString.split('\\n');\r\n        var winner;\r\n        for (var i = 0; i < lines.length; i++) {\r\n            var line = lines[i];\r\n            var lineWinner = challenge3(line);\r\n            if (!winner || winner.score < lineWinner.score) {\r\n                winner = lineWinner;\r\n            }\r\n        }\r\n        console.log(\"THE winner:\", winner);\r\n    });\r\n}\r\n\r\n// challenge4(\"./4.txt\");\r\n\r\n// http://cryptopals.com/sets/1/challenges/5/\r\nfunction challenge5(sentence, key) {\r\n    var theKey = key;\r\n    while (theKey.length < sentence.length) {\r\n        theKey += key;\r\n    }\r\n\r\n    var b = new Buffer(sentence, \"ascii\");\r\n    var b2 = new Buffer(theKey, \"ascii\");\r\n\r\n    var xored = [];\r\n    for (var i = 0; i < b.length; i++) {\r\n        xored.push(b[i] ^ b2[i]);\r\n    }\r\n    console.log(xored);\r\n    return new Buffer(xored).toString(\"hex\");\r\n}\r\n// console.log(challenge5(\"Burning 'em, if you ain't quick and nimble\\nI go crazy when I hear a cymbal\", \"ICE\"));\r\n\r\n\r\n// http://cryptopals.com/sets/1/challenges/6/\r\nfunction challenge6() {\r\n    var s1 = \"this is a test\";\r\n    var s2 = \"wokka wokka!!!\";\r\n    console.log(hammingDistance(new Buffer(s1, \"ascii\"), new Buffer(s2, \"ascii\")));\r\n\r\n    var fileContent = fs.readFileSync(\"./6.txt\");\r\n\r\n    var bufferString = fileContent.toString();\r\n    var lines = bufferString.split('\\n');\r\n    console.log(\"lines\", lines);\r\n}\r\nchallenge6();\r\n\r\n////////////\r\n// UTILS\r\n///////////\r\n\r\nfunction byteDist(b1, b2) {\r\n    var res = 0;\r\n    for (var i = 0; i < 8; i++) {\r\n        var bit1 = b1 & (1 << i) ? 1 : 0;\r\n        var bit2 = b2 & (1 << i) ? 1 : 0;\r\n        if (bit1 != bit2) {\r\n            res++;\r\n        }\r\n    }\r\n    return res;\r\n}\r\n\r\nfunction hammingDistance(bytes1, bytes2) {\r\n    var res = 0;\r\n    for (var i = 0; i < bytes1.length; i++) {\r\n        res += byteDist(bytes1[i], bytes2[i]);\r\n    }\r\n    return res;\r\n}\r\n\r\nfunction computeScore(str) {\r\n    var score = 0;\r\n    for (var j = 0; j < str.length; j++) {\r\n        var c = str.charAt(j).charCodeAt();\r\n        if (c > 31 && c < 127) {\r\n            // printable ascii\r\n            score += 10;\r\n        }\r\n        if (c == 32) {\r\n            // space\r\n            score += 40;\r\n\r\n        } else if (c == 69 || c == 101) {\r\n            // e's\r\n            score += 20;\r\n\r\n        } else if (c > 96 && c < 123) {\r\n            // lowercase alpha\r\n            score += 10;\r\n\r\n        } else if (c > 64 && c < 91) {\r\n            // uppercase alpha\r\n            score += 5;\r\n\r\n        }\r\n    }\r\n    return score;\r\n}\r\n [ { _default: { indent_size: 4, indent_char: ' ', indent_with_tabs: false } },\r\n  { js: \r\n     { end_with_newline: true,\r\n       indent_size: 4,\r\n       indent_char: ' ',\r\n       indent_level: 0,\r\n       indent_with_tabs: false,\r\n       preserve_newlines: true,\r\n       max_preserve_newlines: 10,\r\n       space_in_paren: false,\r\n       jslint_happy: false,\r\n       space_after_anon_function: false,\r\n       brace_style: 'collapse',\r\n       break_chained_methods: false,\r\n       keep_array_indentation: false,\r\n       keep_function_indentation: false,\r\n       space_before_conditional: true,\r\n       eval_code: false,\r\n       unescape_strings: false,\r\n       wrap_line_length: 0 },\r\n    cs: { configPath: '' },\r\n    c: { configPath: '' },\r\n    cpp: { configPath: '' },\r\n    css: \r\n     { indent_size: 4,\r\n       indent_char: ' ',\r\n       selector_separator_newline: false,\r\n       newline_between_rules: false,\r\n       preserve_newlines: false,\r\n       wrap_line_length: 0,\r\n       indent_comments: true,\r\n       force_indentation: false,\r\n       convert_quotes: 'none',\r\n       align_assignments: false },\r\n    d: { configPath: '' },\r\n    fortran: { emacs_path: '', emacs_script_path: '' },\r\n    html: \r\n     { indent_inner_html: false,\r\n       indent_size: 4,\r\n       indent_char: ' ',\r\n       brace_style: 'collapse',\r\n       indent_scripts: 'normal',\r\n       wrap_line_length: 250,\r\n       wrap_attributes: 'auto',\r\n       wrap_attributes_indent_size: 4,\r\n       preserve_newlines: true,\r\n       max_preserve_newlines: 10,\r\n       unformatted: [Object],\r\n       end_with_newline: false },\r\n    java: { configPath: '' },\r\n    objectivec: { configPath: '' },\r\n    pawn: { configPath: '' },\r\n    perl: { perltidy_profile: '' },\r\n    php: { cs_fixer_path: '', fixers: '', level: '' },\r\n    python: { max_line_length: 79, indent_size: 4, ignore: [Object] },\r\n    ruby: { indent_size: 4, indent_char: ' ' },\r\n    rust: { rustfmt_path: '' },\r\n    sql: { indent_size: 4, keywords: 'upper', identifiers: 'lower' },\r\n    vala: { configPath: '' } },\r\n  { _default: {} },\r\n  { _default: {} },\r\n  { _default: {} },\r\n  { _default: {} },\r\n  { _default: {} },\r\n  { _default: {} },\r\n  { _default: {} },\r\n  { _default: {} } ] JavaScript /home/sebz/dev/swir/proto/matasano/index.js undefined\r\n2015-07-21T11:37:01.270Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee]  indent_size=4, indent_char= , indent_with_tabs=false, end_with_newline=true, indent_size=4, indent_char= , indent_level=0, indent_with_tabs=false, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0, configPath=, configPath=, configPath=, indent_size=4, indent_char= , selector_separator_newline=false, newline_between_rules=false, preserve_newlines=false, wrap_line_length=0, indent_comments=true, force_indentation=false, convert_quotes=none, align_assignments=false, configPath=, emacs_path=, emacs_script_path=, indent_inner_html=false, indent_size=4, indent_char= , brace_style=collapse, indent_scripts=normal, wrap_line_length=250, wrap_attributes=auto, wrap_attributes_indent_size=4, preserve_newlines=true, max_preserve_newlines=10, unformatted=[a, sub, sup, b, i, u], end_with_newline=false, configPath=, configPath=, configPath=, perltidy_profile=, cs_fixer_path=, fixers=, level=, max_line_length=79, indent_size=4, ignore=[E24], indent_size=4, indent_char= , rustfmt_path=, indent_size=4, keywords=upper, identifiers=lower, configPath=, , , , , , , , \r\n2015-07-21T11:37:01.274Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] [ { name: 'JavaScript',\r\n    namespace: 'js',\r\n    grammars: [ 'JavaScript' ],\r\n    extensions: [ 'js' ],\r\n    defaultBeautifier: 'JS Beautify',\r\n    options: \r\n     { indent_size: [Object],\r\n       indent_char: [Object],\r\n       indent_level: [Object],\r\n       indent_with_tabs: [Object],\r\n       preserve_newlines: [Object],\r\n       max_preserve_newlines: [Object],\r\n       space_in_paren: [Object],\r\n       jslint_happy: [Object],\r\n       space_after_anon_function: [Object],\r\n       brace_style: [Object],\r\n       break_chained_methods: [Object],\r\n       keep_array_indentation: [Object],\r\n       keep_function_indentation: [Object],\r\n       space_before_conditional: [Object],\r\n       eval_code: [Object],\r\n       unescape_strings: [Object],\r\n       wrap_line_length: [Object],\r\n       end_with_newline: [Object] },\r\n    beautifiers: \r\n     [ 'JS Beautify',\r\n       'JSCS Fixer',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff' ] },\r\n  { name: 'JSX',\r\n    namespace: 'jsx',\r\n    fallback: [ 'js' ],\r\n    grammars: [ 'JSX', 'JavaScript (JSX)' ],\r\n    extensions: [ 'jsx', 'js' ],\r\n    beautifiers: \r\n     [ 'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff',\r\n       'Pretty Diff' ] } ] 'JavaScript' 'js'\r\n2015-07-21T11:37:01.274Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] Language JavaScript supported\r\n2015-07-21T11:37:01.274Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] getOptions selections [ 'js' ] indent_size=4, indent_char= , indent_with_tabs=false, end_with_newline=true, indent_size=4, indent_char= , indent_level=0, indent_with_tabs=false, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0, configPath=, configPath=, configPath=, indent_size=4, indent_char= , selector_separator_newline=false, newline_between_rules=false, preserve_newlines=false, wrap_line_length=0, indent_comments=true, force_indentation=false, convert_quotes=none, align_assignments=false, configPath=, emacs_path=, emacs_script_path=, indent_inner_html=false, indent_size=4, indent_char= , brace_style=collapse, indent_scripts=normal, wrap_line_length=250, wrap_attributes=auto, wrap_attributes_indent_size=4, preserve_newlines=true, max_preserve_newlines=10, unformatted=[a, sub, sup, b, i, u], end_with_newline=false, configPath=, configPath=, configPath=, perltidy_profile=, cs_fixer_path=, fixers=, level=, max_line_length=79, indent_size=4, ignore=[E24], indent_size=4, indent_char= , rustfmt_path=, indent_size=4, keywords=upper, identifiers=lower, configPath=, , , , , , , , \r\n2015-07-21T11:37:01.275Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true indent_size=4, indent_char= , indent_with_tabs=false\r\n2015-07-21T11:37:01.275Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.275Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js indent_size=4, indent_char= , indent_with_tabs=false\r\n2015-07-21T11:37:01.275Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true end_with_newline=true, indent_size=4, indent_char= , indent_level=0, indent_with_tabs=false, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0, configPath=, configPath=, configPath=, indent_size=4, indent_char= , selector_separator_newline=false, newline_between_rules=false, preserve_newlines=false, wrap_line_length=0, indent_comments=true, force_indentation=false, convert_quotes=none, align_assignments=false, configPath=, emacs_path=, emacs_script_path=, indent_inner_html=false, indent_size=4, indent_char= , brace_style=collapse, indent_scripts=normal, wrap_line_length=250, wrap_attributes=auto, wrap_attributes_indent_size=4, preserve_newlines=true, max_preserve_newlines=10, unformatted=[a, sub, sup, b, i, u], end_with_newline=false, configPath=, configPath=, configPath=, perltidy_profile=, cs_fixer_path=, fixers=, level=, max_line_length=79, indent_size=4, ignore=[E24], indent_size=4, indent_char= , rustfmt_path=, indent_size=4, keywords=upper, identifiers=lower, configPath=\r\n2015-07-21T11:37:01.277Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js end_with_newline=true, indent_size=4, indent_char= , indent_level=0, indent_with_tabs=false, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0\r\n2015-07-21T11:37:01.277Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js end_with_newline=true, indent_size=4, indent_char= , indent_level=0, indent_with_tabs=false, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.278Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] true \r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js undefined\r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options js\r\n2015-07-21T11:37:01.279Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] JavaScript name=JavaScript, namespace=js, grammars=[JavaScript], extensions=[js], defaultBeautifier=JS Beautify, type=integer, default=4, minimum=0, description=Indentation size/length (Supported by JS Beautify, Pretty Diff), title=JavaScript - Indent size, beautifiers=[JS Beautify, Pretty Diff], type=string, default= , description=Indentation character (Supported by JS Beautify, Pretty Diff), title=JavaScript - Indent char, beautifiers=[JS Beautify, Pretty Diff], type=integer, default=0, description=Initial indentation level (Supported by JS Beautify), title=JavaScript - Indent level, beautifiers=[JS Beautify], type=boolean, default=false, description=Indentation uses tabs, overrides `Indent Size` and `Indent Char` (Supported by JS Beautify), title=JavaScript - Indent with tabs, beautifiers=[JS Beautify], type=boolean, default=true, description=Preserve line-breaks (Supported by JS Beautify, Pretty Diff), title=JavaScript - Preserve newlines, beautifiers=[JS Beautify, Pretty Diff], type=integer, default=10, description=Number of line-breaks to be preserved in one chunk (Supported by JS Beautify), title=JavaScript - Max preserve newlines, beautifiers=[JS Beautify], type=boolean, default=false, description=Add padding spaces within paren, ie. f( a, b ) (Supported by JS Beautify), title=JavaScript - Space in paren, beautifiers=[JS Beautify], type=boolean, default=false, description=Enable jslint-stricter mode (Supported by JS Beautify), title=JavaScript - Jslint happy, beautifiers=[JS Beautify], type=boolean, default=false, description=Add a space before an anonymous function's parens, ie. function () (Supported by JS Beautify, Pretty Diff), title=JavaScript - Space after anon function, beautifiers=[JS Beautify, Pretty Diff], type=string, default=collapse, enum=[collapse, expand, end-expand, none], description=[collapse|expand|end-expand|none] (Supported by JS Beautify), title=JavaScript - Brace style, beautifiers=[JS Beautify], type=boolean, default=false, description=Break chained method calls across subsequent lines (Supported by JS Beautify), title=JavaScript - Break chained methods, beautifiers=[JS Beautify], type=boolean, default=false, description=Preserve array indentation (Supported by JS Beautify), title=JavaScript - Keep array indentation, beautifiers=[JS Beautify], type=boolean, default=false, description= (Supported by JS Beautify), title=JavaScript - Keep function indentation, beautifiers=[JS Beautify], type=boolean, default=true, description= (Supported by JS Beautify), title=JavaScript - Space before conditional, beautifiers=[JS Beautify], type=boolean, default=false, description= (Supported by JS Beautify), title=JavaScript - Eval code, beautifiers=[JS Beautify], type=boolean, default=false, description=Decode printable characters encoded in xNN notation (Supported by JS Beautify), title=JavaScript - Unescape strings, beautifiers=[JS Beautify], type=integer, default=0, description=Wrap lines at next opportunity after N characters (Supported by JS Beautify, Pretty Diff), title=JavaScript - Wrap line length, beautifiers=[JS Beautify, Pretty Diff], type=boolean, default=false, description=End output with newline (Supported by JS Beautify), title=JavaScript - End with newline, beautifiers=[JS Beautify], beautifiers=[JS Beautify, JSCS Fixer, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff, Pretty Diff]\r\n2015-07-21T11:37:01.280Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] options indent_size=4, indent_char= , indent_with_tabs=false, end_with_newline=true, indent_level=0, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0\r\n2015-07-21T11:37:01.280Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] beautifiers silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, languages=[HTML, XML, Handlebars, Mustache, Marko, JavaScript, JSON, CSS], silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, languages=[JavaScript], silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, languages=[CSV, ERB, EJS, HTML, XML, SVG, Spacebars, JSX, JavaScript, CSS, SCSS, Sass, JSON, TSS, Twig, LESS, Swig, Visualforce]\r\n2015-07-21T11:37:01.281Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] JavaScript /home/sebz/dev/swir/proto/matasano/index.js { indent_size: 4,\r\n  indent_char: ' ',\r\n  indent_with_tabs: false,\r\n  end_with_newline: true,\r\n  indent_level: 0,\r\n  preserve_newlines: true,\r\n  max_preserve_newlines: 10,\r\n  space_in_paren: false,\r\n  jslint_happy: false,\r\n  space_after_anon_function: false,\r\n  brace_style: 'collapse',\r\n  break_chained_methods: false,\r\n  keep_array_indentation: false,\r\n  keep_function_indentation: false,\r\n  space_before_conditional: true,\r\n  eval_code: false,\r\n  unescape_strings: false,\r\n  wrap_line_length: 0 } indent_size=4, indent_char= , indent_with_tabs=false, end_with_newline=true, indent_size=4, indent_char= , indent_level=0, indent_with_tabs=false, preserve_newlines=true, max_preserve_newlines=10, space_in_paren=false, jslint_happy=false, space_after_anon_function=false, brace_style=collapse, break_chained_methods=false, keep_array_indentation=false, keep_function_indentation=false, space_before_conditional=true, eval_code=false, unescape_strings=false, wrap_line_length=0, configPath=, configPath=, configPath=, indent_size=4, indent_char= , selector_separator_newline=false, newline_between_rules=false, preserve_newlines=false, wrap_line_length=0, indent_comments=true, force_indentation=false, convert_quotes=none, align_assignments=false, configPath=, emacs_path=, emacs_script_path=, indent_inner_html=false, indent_size=4, indent_char= , brace_style=collapse, indent_scripts=normal, wrap_line_length=250, wrap_attributes=auto, wrap_attributes_indent_size=4, preserve_newlines=true, max_preserve_newlines=10, unformatted=[a, sub, sup, b, i, u], end_with_newline=false, configPath=, configPath=, configPath=, perltidy_profile=, cs_fixer_path=, fixers=, level=, max_line_length=79, indent_size=4, ignore=[E24], indent_size=4, indent_char= , rustfmt_path=, indent_size=4, keywords=upper, identifiers=lower, configPath=, , , , , , , , \r\n2015-07-21T11:37:01.282Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/index.coffee] beautifier JS Beautify silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, languages=[HTML, XML, Handlebars, Mustache, Marko, JavaScript, JSON, CSS], silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, languages=[JavaScript], silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, silly=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, debug=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, verbose=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, info=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, warn=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, error=function (msg) {\r\n      // build argument list (level, msg, ... [string interpolate], [{metadata}], [callback])\r\n      var args = [level].concat(Array.prototype.slice.call(arguments));\r\n      target.log.apply(target, args);\r\n    }, onLogging=function (handler) {\r\n        var subscription;\r\n        subscription = emitter.on('logging', handler);\r\n        return subscription;\r\n      }, languages=[CSV, ERB, EJS, HTML, XML, SVG, Spacebars, JSX, JavaScript, CSS, SCSS, Sass, JSON, TSS, Twig, LESS, Swig, Visualforce]\r\n2015-07-21T11:37:01.283Z - verbose: [/home/sebz/.atom/packages/atom-beautify/src/beautifiers/beautifier.coffee] JS Beautify language JavaScript\r\n\r\n```\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/Glavin001/atom-beautify/issues/comments/123323012","html_url":"https://github.com/Glavin001/atom-beautify/issues/472#issuecomment-123323012","issue_url":"https://api.github.com/repos/Glavin001/atom-beautify/issues/472","id":123323012,"user":{"login":"Glavin001","id":1885333,"avatar_url":"https://avatars.githubusercontent.com/u/1885333?v=3","gravatar_id":"","url":"https://api.github.com/users/Glavin001","html_url":"https://github.com/Glavin001","followers_url":"https://api.github.com/users/Glavin001/followers","following_url":"https://api.github.com/users/Glavin001/following{/other_user}","gists_url":"https://api.github.com/users/Glavin001/gists{/gist_id}","starred_url":"https://api.github.com/users/Glavin001/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Glavin001/subscriptions","organizations_url":"https://api.github.com/users/Glavin001/orgs","repos_url":"https://api.github.com/users/Glavin001/repos","events_url":"https://api.github.com/users/Glavin001/events{/privacy}","received_events_url":"https://api.github.com/users/Glavin001/received_events","type":"User","site_admin":false},"created_at":"2015-07-21T14:07:27Z","updated_at":"2015-07-21T14:07:27Z","body":"There is something definitely wrong here. The `language_js_beautify_on_save` option is missing entirely!\r\n\r\nHere's a snippet from above:\r\n\r\n```\r\n\"language_js_disabled\": false,\r\n    \"language_js_default_beautifier\": \"JS Beautify\",\r\n    \"language_json_disabled\": false,\r\n    \"language_json_default_beautifier\": \"JS Beautify\",\r\n    \"language_json_beautify_on_save\": false,\r\n    \"language_jsx_disabled\": false,\r\n    \"language_jsx_default_beautifier\": \"Pretty Diff\",\r\n    \"language_jsx_beautify_on_save\": false,\r\n```\r\n\r\nI would recommend that you do do some debugging locally on the code around https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/index.coffee#L358-L366 and see if there is some logic problems.\r\n\r\nAlso I think the missing `language_js_beautify_on_save` may be significant. Maybe a restart and/or reinstall of Atom Beautify may be healthy?"}}