{"action":"created","issue":{"url":"https://api.github.com/repos/decaffeinate/decaffeinate/issues/239","repository_url":"https://api.github.com/repos/decaffeinate/decaffeinate","labels_url":"https://api.github.com/repos/decaffeinate/decaffeinate/issues/239/labels{/name}","comments_url":"https://api.github.com/repos/decaffeinate/decaffeinate/issues/239/comments","events_url":"https://api.github.com/repos/decaffeinate/decaffeinate/issues/239/events","html_url":"https://github.com/decaffeinate/decaffeinate/pull/239","id":158567120,"number":239,"title":"Improve support for multi line strings","user":{"login":"iainb","id":801888,"avatar_url":"https://avatars.githubusercontent.com/u/801888?v=3","gravatar_id":"","url":"https://api.github.com/users/iainb","html_url":"https://github.com/iainb","followers_url":"https://api.github.com/users/iainb/followers","following_url":"https://api.github.com/users/iainb/following{/other_user}","gists_url":"https://api.github.com/users/iainb/gists{/gist_id}","starred_url":"https://api.github.com/users/iainb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iainb/subscriptions","organizations_url":"https://api.github.com/users/iainb/orgs","repos_url":"https://api.github.com/users/iainb/repos","events_url":"https://api.github.com/users/iainb/events{/privacy}","received_events_url":"https://api.github.com/users/iainb/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-06-05T18:22:46Z","updated_at":"2016-06-18T13:14:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/decaffeinate/decaffeinate/pulls/239","html_url":"https://github.com/decaffeinate/decaffeinate/pull/239","diff_url":"https://github.com/decaffeinate/decaffeinate/pull/239.diff","patch_url":"https://github.com/decaffeinate/decaffeinate/pull/239.patch"},"body":"Correctly handling multi line strings, here strings and both types that contain interpolation has a surprising number of edge cases. Because of this I've only added support for the most basic type of multi line string in this PR. It does not include support for here strings or any multi line string that contains interpolation.\r\n\r\nProbably the most useful part of this PR is the inclusion of what I've called a 'string integration test' that compares the strings after being run through both decaffeinate + babel and coffee-script by evaluating the resulting es5 code and comparing the output. This technique was invaluable (though the tests are a little slow) as manually constructing test cases becomes very difficult. It also found many edge cases I hadn't considered, which is why the patchMultilineString function is so complicated.\r\n\r\nIf you add in here string quotes and interpolation test strings into the string_integration_test you'll find there are quite a few failure scenarios which decaffeinate currently doesn't handle correctly."},"comment":{"url":"https://api.github.com/repos/decaffeinate/decaffeinate/issues/comments/226941880","html_url":"https://github.com/decaffeinate/decaffeinate/pull/239#issuecomment-226941880","issue_url":"https://api.github.com/repos/decaffeinate/decaffeinate/issues/239","id":226941880,"user":{"login":"iainb","id":801888,"avatar_url":"https://avatars.githubusercontent.com/u/801888?v=3","gravatar_id":"","url":"https://api.github.com/users/iainb","html_url":"https://github.com/iainb","followers_url":"https://api.github.com/users/iainb/followers","following_url":"https://api.github.com/users/iainb/following{/other_user}","gists_url":"https://api.github.com/users/iainb/gists{/gist_id}","starred_url":"https://api.github.com/users/iainb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iainb/subscriptions","organizations_url":"https://api.github.com/users/iainb/orgs","repos_url":"https://api.github.com/users/iainb/repos","events_url":"https://api.github.com/users/iainb/events{/privacy}","received_events_url":"https://api.github.com/users/iainb/received_events","type":"User","site_admin":false},"created_at":"2016-06-18T13:14:27Z","updated_at":"2016-06-18T13:14:27Z","body":"Tests fixed, was missing a package (babel-core) and increased the timeout for the integration tests."}}
{"actor":{"display_login":"iainb"}}