kotlinpoet
kotlinpoet copied to clipboard
Make the kotlinpoet module multi-platform and add source set configuration for the JS and wasmJs platforms
#304
Hi! This PR attempts to change the kotlinpoet
module into a true multi-platform module: adding source code sets for platforms other than the JVM platform: JS and WasmJs. No native platforms have been added yet.
There should be no change in behaviour on the JVM platform after the change, and the unit tests all pass locally.
There are some limitations and issues with JS and wasmJs.
- The
kotlin-reflect
in JS and WasmJs is very limited, so it's almost impossible to get valid results withKClass.asXxx
. - The
IDENTIFIER_REGEX
in theUtil.kt
cannot be initialised, and you get the error:PatternSyntaxException: No such character class
. (I'm not very good at regular expressions, I don't understand the problem with them.) -
CodePoint
related implementations are temporary on JS and WasmJS, not sure if that's correct. -
isJavaIdentifierStart
andisJavaIdentifierPart
are not implemented on JS and WasmJs at the moment and only return default values temporarily. -
formatNumericValue
is not implemented on JS and WasmJs at the moment and currently returnstoString
itself directly, unformatted.
I have tried not to change the logic and ensure API compatibility, but I have to say it's still a lot of changes. I wonder if such a change would be allowed or accepted? I think this might simply advance #304 ?
Please review these changes and let me know whether you will be accepted or not, thanks!