You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-36Lines changed: 42 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,45 +9,55 @@ set breakpoints and includes llvm support to view data in the debug window.
9
9
> Touchlab is looking for Android-focused mobile engineers, experienced with Kotlin and
10
10
> looking to get involved with Kotlin Multiplatorm in the near future. [More info here](https://on.touchlab.co/2P94J5q).
11
11
12
-
## Blog post and live demo
12
+
#Xcode 11+
13
13
14
-
Check out the [blog post and sign up for the live video demo](https://medium.com/@kpgalligan/kotlin-xcode-plugin-64f52ff8dc2a) on Friday 4/26 (3pm EST).
14
+
Xcode does not officially support custom language definitions, but they also don't explicitly block them. However,
15
+
Xcode 11 introduced several breaking changes from earlier versions, and some resolutions are still outstanding.
15
16
16
-
## Installation
17
+
## Xcode <= 10.x
17
18
18
-
### Watch Video
19
+
For earlier versions, please see [xcode10 branch](https://github.com/touchlab/xcode-kotlin/tree/xcode10). Life moves on,
@@ -75,21 +85,7 @@ support an interactive debugger.
75
85
The current version of the plugin will still allow you to add breakpoints and run the debugger, but source code highlighting is not yet functional. When Xcode 11 releases
76
86
we'll dig back into the situation.
77
87
78
-
## Coming Soon
79
-
80
-
### LLDB Formatter
81
-
82
-
The plugin itself relies on the lldb python formatter which was mostly adapted from the lldb formatter that comes with Kotlin Native. That script was really written for command line use. In an interactive context (like this plugin) the performance isn't great. Most of our changes are around optimizations. However, there are ongoing changes both to the underlying script and (possibly) to the memory layout of Kotlin Native itself at runtime.
83
-
84
-
The script in this plugin could use a refresh with a more recent base version from Kotlin Native, and if possible, refactor the optimizations to be as close to "stock" as possible, to make future updates easier.
85
-
86
-
The formatter also takes a very basic approach to data formatting. Lists are capped at 20 entries to avoid super long refreshes. Maps show their underlying data structures, but could get custom formatting (for example). There is a lot that could be done.
87
-
88
-
We currently can't get some things like class name. This could be enabled with moderate additions to Kotlin Native debug facilities.
89
-
90
-
### Debug aligning
91
-
92
-
The breakpoints and runtime *usually* line up, but they can get weird. This is especially true around things like lambdas. This *may* be related to what the llvm compiler is writing, or it may simply be an artifact of how Xcode is setting breakpoints. We'll need reports and repros of code that confuses the debugger to see if that can be improved.
88
+
## Possible Future Stuff
93
89
94
90
### Color File
95
91
@@ -99,6 +95,16 @@ The color definition is basically Java's with minor additions. This could be bet
99
95
100
96
It's a bash script, which works, but does not take into account non-standard install directories and various other possible config options. This could be improved.
101
97
98
+
### From Swift
99
+
100
+
You can see variables when you're debugging Kotlin, but when you're in a swift file that has a class that came from Kotlin
101
+
you can't see much. It would be great to be able to improve that.
102
+
103
+
### Better Debug Alignment
104
+
105
+
This happens in the Kotlin compiler, so it's a little deeper, but the breakpoints don't always track with the source
106
+
when there are more complex structures (lambdas, etc). This should improve over time.
107
+
102
108
## Xcode Updates
103
109
104
110
Every time Xcode is updated we need the UUID. It needs to be added to `Kotlin.ideplugin/Contents/Info.plist`. To find the
0 commit comments