Hello!
A week ago we released AppCode 2019.1 - let's talk about changes in it. Under the cut a lot of new, useful, revised and updated.
All the new features of Swift 5 work correctly in AppCode 2019.1:
ExpressibleByStringInterpolation
try?
There was a problem with renaming overloaded methods and methods of the parent class - and now it does not exist.
It would seem, what could be simpler and more elementary than the transition to the definition of a method or class? Standard, familiar action.
And everything is really so in Objective-C: when the object is initialized, the type name is separate, the initializer method itself is separate. Accordingly, if the cursor is on the type name, we proceed to the type definition, if on the initializer, to the definition of the initializer. But in Swift, everything becomes more complicated. The initializer merged with the type name together, and if you reproduce the behavior of Xcode, we lose the ability to go to the initializer. If we leave the behavior of AppCode 2018.3.x, we break the user's habit (βas in Xcodeβ, that is, the transition is not to the definition of the initializer, but to the definition of the type). For obvious reasons, users do not like this.
As a result, a median solution was worked out: the expression that initializes the object in Swift still consists of two parts. All that to parentheses is the type name, and everything inside is the initializer signature. Therefore, if the cursor is on the type name, proceed to the type definition, if inside the parentheses - to the initializer definition:
Both usage scenarios are saved, everyone is happy.
While Xcode users select with mouse and copy-and-paste, AppCode users place the cursor on the expression and move it all with a slight touch of β§ββ
/ β
:
Works for cycles, functions, methods, classes, conditions, in general, for almost everything.
How to turn a single-line literal into a multi-line? In AppCode, now just press β
:
The more correctly we build a tree of symbols that is used for highlighting, code analysis, navigation, and other IDE functions (even for displaying variables in the debugger), the better and more correctly the AppCode will work. In this release, we solved several fundamental problems that ruined the lives of users:
Colleagues from CLion added codeset naming styles for C / C ++, and we got them for Objective-C as well ( Preferences | Editor | Code Style | C/C++/Objective-C | Naming Convention)
:
AppCode is now able to join processes running not only on the simulator, but also on the device ( β§βA
β Attach to process
):
The ability to select the language and region of the application is added to the launch configuration settings:
Run to Cursor can be called up not only via β₯F9
, but also by clicking on the line number in the editor:
Recalculation of variables during debugging can now be disabled using the Mute Variables action in the context menu:
The attentive reader has already noticed that all the screenshots in the post are made using the Dark Purple theme:
IDE themes can now be made independently , therefore, in the plugin repository, apart from a few themes made by us, you can already find several custom design options. And until May 3rd, you can not only make your own topic, but also take part in the contest we recently announced.
There are several useful actions for navigating to newly opened or changed places in the code:
βE
)ββ₯
)β§ββ«
)Moving to the last edited section of code is generally difficult to overestimate, especially when editing a large file.
Now there is also a list of recently viewed / changed places Recent Locations ( β§βE
):
Here is such a release. All questions, suggestions and even bug reports write right here in the comments - we will be happy to answer!
AppCode command
Source: https://habr.com/ru/post/448462/