{"action":"created","issue":{"url":"https://api.github.com/repos/bbatsov/projectile/issues/977","repository_url":"https://api.github.com/repos/bbatsov/projectile","labels_url":"https://api.github.com/repos/bbatsov/projectile/issues/977/labels{/name}","comments_url":"https://api.github.com/repos/bbatsov/projectile/issues/977/comments","events_url":"https://api.github.com/repos/bbatsov/projectile/issues/977/events","html_url":"https://github.com/bbatsov/projectile/pull/977","id":139202644,"number":977,"title":"[Fix #576] Implement `projectile-replace-regexp'","user":{"login":"seanfisk","id":410322,"avatar_url":"https://avatars.githubusercontent.com/u/410322?v=3","gravatar_id":"","url":"https://api.github.com/users/seanfisk","html_url":"https://github.com/seanfisk","followers_url":"https://api.github.com/users/seanfisk/followers","following_url":"https://api.github.com/users/seanfisk/following{/other_user}","gists_url":"https://api.github.com/users/seanfisk/gists{/gist_id}","starred_url":"https://api.github.com/users/seanfisk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanfisk/subscriptions","organizations_url":"https://api.github.com/users/seanfisk/orgs","repos_url":"https://api.github.com/users/seanfisk/repos","events_url":"https://api.github.com/users/seanfisk/events{/privacy}","received_events_url":"https://api.github.com/users/seanfisk/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-03-08T07:29:29Z","updated_at":"2016-03-12T19:14:52Z","closed_at":"2016-03-12T17:19:16Z","pull_request":{"url":"https://api.github.com/repos/bbatsov/projectile/pulls/977","html_url":"https://github.com/bbatsov/projectile/pull/977","diff_url":"https://github.com/bbatsov/projectile/pull/977.diff","patch_url":"https://github.com/bbatsov/projectile/pull/977.patch"},"body":"This pull request implements `projectile-replace-regexp` [as discussed and suggested by](https://github.com/bbatsov/projectile/issues/576#issuecomment-66892727) @shosti, and closes #576. The new `projectile-replace-regexp` replaces text by regexp within project files using `tags-query-replace`. `projectile-replace` has been refactored with a modified version of `tags-query-replace` to replace only literal matches (no regexp at all). This makes the behavior of these functions consistent with Emacs' `query-replace` and `query-replace-regexp`.\r\n\r\nAs it is very difficult to match the behavior of Emacs' regexps with grep tools, `projectile-files-with-string` is not used with `projectile-replace-regexp`, and has been adapted to support literal strings only.\r\n\r\nI am definitely not the best Elisp hacker, so if you have any suggestions, I'd be glad to implement them. Thanks to @shosti for the suggestions and @d12frosted for the prodding ;)"},"comment":{"url":"https://api.github.com/repos/bbatsov/projectile/issues/comments/195793258","html_url":"https://github.com/bbatsov/projectile/pull/977#issuecomment-195793258","issue_url":"https://api.github.com/repos/bbatsov/projectile/issues/977","id":195793258,"user":{"login":"seanfisk","id":410322,"avatar_url":"https://avatars.githubusercontent.com/u/410322?v=3","gravatar_id":"","url":"https://api.github.com/users/seanfisk","html_url":"https://github.com/seanfisk","followers_url":"https://api.github.com/users/seanfisk/followers","following_url":"https://api.github.com/users/seanfisk/following{/other_user}","gists_url":"https://api.github.com/users/seanfisk/gists{/gist_id}","starred_url":"https://api.github.com/users/seanfisk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanfisk/subscriptions","organizations_url":"https://api.github.com/users/seanfisk/orgs","repos_url":"https://api.github.com/users/seanfisk/repos","events_url":"https://api.github.com/users/seanfisk/events{/privacy}","received_events_url":"https://api.github.com/users/seanfisk/received_events","type":"User","site_admin":false},"created_at":"2016-03-12T19:14:52Z","updated_at":"2016-03-12T19:14:52Z","body":"@bbatsov You're welcome; thank you for creating Projectile! :)\r\n\r\n@d12frosted Your code is essentially the same as mine, minus the directory prefix argument and Git submodules workaround. It should work the same way for most purposes, I would think. Thanks for reminding me about this issue!"}}