{"action":"opened","issue":{"url":"https://api.github.com/repos/ceylon/ceylon-ide-eclipse/issues/1394","labels_url":"https://api.github.com/repos/ceylon/ceylon-ide-eclipse/issues/1394/labels{/name}","comments_url":"https://api.github.com/repos/ceylon/ceylon-ide-eclipse/issues/1394/comments","events_url":"https://api.github.com/repos/ceylon/ceylon-ide-eclipse/issues/1394/events","html_url":"https://github.com/ceylon/ceylon-ide-eclipse/issues/1394","id":92595959,"number":1394,"title":"Add a refactoring to create an alias for a type name","user":{"login":"bjansen","id":281528,"avatar_url":"https://avatars.githubusercontent.com/u/281528?v=3","gravatar_id":"","url":"https://api.github.com/users/bjansen","html_url":"https://github.com/bjansen","followers_url":"https://api.github.com/users/bjansen/followers","following_url":"https://api.github.com/users/bjansen/following{/other_user}","gists_url":"https://api.github.com/users/bjansen/gists{/gist_id}","starred_url":"https://api.github.com/users/bjansen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjansen/subscriptions","organizations_url":"https://api.github.com/users/bjansen/orgs","repos_url":"https://api.github.com/users/bjansen/repos","events_url":"https://api.github.com/users/bjansen/events{/privacy}","received_events_url":"https://api.github.com/users/bjansen/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ceylon/ceylon-ide-eclipse/labels/refactoring/wizards","name":"refactoring/wizards","color":"02d7e1"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-07-02T09:42:18Z","updated_at":"2015-07-02T09:42:18Z","closed_at":null,"body":"Given the following code:\r\n\r\n```\r\nclass Foo() {\r\n    shared void method1(Map<List<String>, Map<Object, Integer>> param) { ... }\r\n    shared Map<List<String>, Map<Object, Integer>> method2() { ... }\r\n}\r\n```\r\n\r\nIt would be nice to have a refactoring that creates an alias for the selected text, then replaces every occurence of this text with the alias name:\r\n\r\n```\r\nclass Foo() {\r\n    shared alias MyType => Map<List<String>, Map<Object, Integer>>;\r\n\r\n    shared void method1(MyType param) { ... }\r\n    shared MyType method2() { ... }\r\n}\r\n```"}}