@kotlin_lang

Страница 780 из 982
Konstantin
30.07.2018
08:23:46
очевидное против невероятного - это как бы не про длинные названия )

dimiii
30.07.2018
08:24:29
мм любимый борщ борщ нью борщ
А как же абстрактная фабрика борщей?

Kirill
30.07.2018
08:24:34
https://vk.com/twispicord?w=wall-61226939_2388

Google
Konstantin
30.07.2018
08:24:49
А как же абстрактная фабрика борщей?
главное чтобы было очевидно что она есть

dimiii
30.07.2018
08:25:04
согласен, фабрика-кухня

Konstantin
30.07.2018
08:25:08
и что туда можно залезть и чото нажать чтобы все сломалось

Egor
30.07.2018
08:25:19
борщ борщ = Женщина.создатьБорщ?

Alexander
30.07.2018
08:26:38
Попробуйте сделать нормальный модульный код без этого

Всегда можно обвешать это красивыми утилками, особенно в котлине, но без этого никуда

Хекс
30.07.2018
08:28:02
борщ борщ = Женщина.создатьБорщ?
женщина?.создатьБорщ()

ибо нулабл а лучше женщина?.let { ... }

Egor
30.07.2018
08:28:25
Можно тогда ещё ленивую фабрику сделать

Konstantin
30.07.2018
08:28:26
тру

Egor
30.07.2018
08:28:38
А нет, нельзя, потому что женщина должна работать

Vladimir
30.07.2018
08:28:40
Ни у кого не вылазило такое в идее? Error while indexing /home/user/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-common/0.23.3/94ff949da32fa6a0f30aa2c92ba6bd6ca4e21896/kotlinx-coroutines-core-common-0.23.3.jar!/kotlinx/coroutines/experimental/channels/AbstractChannel.kotlin_metadata To reindex this file IDEA has to be restarted: Unknown type parameter with id = 2 java.lang.IllegalStateException: Unknown type parameter with id = 2

Google
Quantum Harmonizer
30.07.2018
08:30:35
Хекс
30.07.2018
08:31:38
?

dimiii
30.07.2018
08:35:18
Ничего не изменилось
Как вариант - почистить еще этот кэш /home/user/.gradle/caches/

У меня продукт на основе идеи (rubymine) как-то лез индексировать бинарные файлы - пришлось бить по рукам

Vladimir
30.07.2018
08:37:00
Как вариант - почистить еще этот кэш /home/user/.gradle/caches/
Ну я пробовал удалять всю директорию с kotlinx-coroutines-core-common перед тем, как сюда писать) И проблема возникла только с 0.23.3

Alexander
30.07.2018
08:42:02
Это какой-то косяк кэшей градла. Если обновление было прямо сегодня, может что-то в демоне застряло не то. Я бы сказал, убить демона и сбросить кэши

не обязательно артефакты удалять, но чтобы этого избежать - это надо в потрохах градла копаться

Egor
30.07.2018
08:43:37
В таких случаях надо говорить production-ready product

Vladimir
30.07.2018
08:43:59
Это какой-то косяк кэшей градла. Если обновление было прямо сегодня, может что-то в демоне застряло не то. Я бы сказал, убить демона и сбросить кэши
Подозреваю, что проблема всё-таки в идее) Я это уже давно видел (с обновления на 0.23.3), но сегодня решил тут спросить

Alexander
30.07.2018
08:44:49
Проблема конфликта идеи с градлом. Если прочистка кэшей идеи не помогла, значит что-то с последним

dimiii
30.07.2018
08:45:56
Убить грэдл - вообще идеальный вариант.

Maven + maven polyglot

Vladimir
30.07.2018
08:46:40
Maven + maven polyglot
Вот только давайте без холивара Тут наши взгляды расходятся)

Alexander
30.07.2018
08:46:51
упс

dimiii
30.07.2018
08:47:05
Вот только давайте без холивара Тут наши взгляды расходятся)
ОК, но я оставлю за собой право периодически катить бочку на грыдлу в этом чатике

Alexander
30.07.2018
08:47:40
беда со смайликами. Я хотел сказать, что не надо. Я очень люблю мавен, но после градла на нем работать очень уж несподручно

Leonid
30.07.2018
08:48:19
всё равно Kotlin/JS и Kotlin/Native чем-то кроме гредла собирать достаточно несподручно ?

Google
Alexander
30.07.2018
08:49:50
Это да, но не только. Мавеновские lifecycle таски не всегда понятно, что делают. Я вот на днях возился. Каким-то образом компайл работал при том, что в проекте не хватало зависимостей. Я с мавена начинал, но это давно было

Vladimir
30.07.2018
08:50:54
Проблема конфликта идеи с градлом. Если прочистка кэшей идеи не помогла, значит что-то с последним
Я очень сомневаюсь, что Gradle может сделать что-то такое, что из-за него вылетело такое pastebin.com/XtYu3xax

Alexander
30.07.2018
08:52:05
Аа, так это ж декомпайлер. Ругается на бинарную несовместимости

действительно, градл не при чем

Leonid
30.07.2018
08:52:26
а попробуйте корутины 0.24

Alexander
30.07.2018
08:52:59
Может версия плагина протухла?

Leonid
30.07.2018
08:53:27
https://youtrack.jetbrains.com/issue/KT-24944

там косяк в бинарной сборке артефакта кажется был, поэтому его пересобрали как новую версию

Alexander
30.07.2018
08:54:26
Если плагин старый и он пытается декомпайлить более новый байткод, то будет ошибка

Vladimir
30.07.2018
08:55:00
Alexander
30.07.2018
08:55:32
А он пытается библиотеки заиндексировать на открытие проекта

Vladimir
30.07.2018
08:56:37
а попробуйте корутины 0.24
Попробую. Надеюсь, что ничего не отвалится с таким переходом.

Alexander
30.07.2018
08:57:26
Если я прав, то оно тем более не заработает

Какая версия плагина в идее?

Тимур
30.07.2018
08:58:09
Насколько оправданно использовать котлин в качестве скриптовой обвязки для проекта? Не основной код, а всякую мелкую автоматизацию вокруг проекта: что-то собрать, что-то переложить, что-то разослать Обычно такое пишут на sh, bat, питоне А кто-нибудь пытался котлин для этих целей применять?

Vladimir
30.07.2018
08:58:20
Какая версия плагина в идее?
1.2.51-release-IJ2018.1-1 С 0.24.0 вроде норм

Alexander
30.07.2018
08:59:43
Насколько оправданно использовать котлин в качестве скриптовой обвязки для проекта? Не основной код, а всякую мелкую автоматизацию вокруг проекта: что-то собрать, что-то переложить, что-то разослать Обычно такое пишут на sh, bat, питоне А кто-нибудь пытался котлин для этих целей применять?
Я использую. В принципе вполне удобно. Раньше использовал Groovy, но с динамическим языком одни мучения. Вроде сейчас наконец должны были сделать, чтобы из скриптов проект был виден в идее, но я пока не проверял. А так создаю файл с одинм main методом

Vladimir
30.07.2018
09:03:20
Попробую. Надеюсь, что ничего не отвалится с таким переходом.
Так оказывается специально для этого выпущена 0.23.4. Перейду на неё пока.

Тимур
30.07.2018
09:05:00
Я использую. В принципе вполне удобно. Раньше использовал Groovy, но с динамическим языком одни мучения. Вроде сейчас наконец должны были сделать, чтобы из скриптов проект был виден в идее, но я пока не проверял. А так создаю файл с одинм main методом
ты запускаешь скрипты именно как скрипт, в виде kts файла, через kotlin compiler? без предварительной компиляции? а вот эту штуку приходилось использовать? https://github.com/holgerbrandl/kscript

Alexander
30.07.2018
09:06:51
Я запускаю файлы из идеи прямо. Не скрипты, а просто файлы с main методом. Для того, чтобы запускать kts извне, надо к нему весь проект в качестве classpath присобачить. Если надо извне, я обычно делаю градл таск, указывающий на конкретный файл с main методом. Kscript работает на баше и только под линуксом, так что я с ним не дружу.

Google
Alexander
30.07.2018
09:07:44
Кстати градл таск хорош еще тем, что он гарантирует актуальность скомпилированного кода.

Сейчас проверил. kts в идее видет файлы проекта, но работает немного странно.

Тимур
30.07.2018
09:13:31
мне почти все извне надо и желательно без компиляции, то есть именно скрипты автоматизация всяких проектных процессов обычно такие вещи начинаются с bat/sh-файлов но потом оказывается что bat/sh не справляются вместо них приходит питон вот пытаюсь понять, вроде котлин как-то умеет в скрипт но пока не пойму насколько хорошо, чтобы его вместо питона применять для этих целей

Ivan
30.07.2018
09:13:49
Смысл скриптинга в том, чтобы подключать скрипты на лету, так с Котлином можно делать?

Admin
ERROR: S client not available

Alexander
30.07.2018
09:14:55
Тогда не очень рекомендую, не очень удобно все это делать на котлине. А вот груви - вполне. Он умеет интерпретировать скрипты на лету и по возможностям не уступает питону. Кроме того, он умеет завивимости на лету подхватывать

Bogdan
30.07.2018
10:04:50
Можно, но через попу. Лучше не стоит
А котлин скрипт на jvm работает ?

Quantum Harmonizer
30.07.2018
10:07:06
Alexander
30.07.2018
10:08:47
Да

Alexander
30.07.2018
10:21:47
Парни. а может кто-нибудь подсказать, можно ли это как преврать в Котлин аннотэйшен класс? @Extend(Extension.class) @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface InterfaceExt { String value(); class Extension implements Context { @Override public void enrich(Map<String, String> context, String desc) { context.put(«description», desc) } } } При любом раскладе, после переписывания пишет «Members are not allowed in annotation class»

честно говоря не врубаюсь как можно обойти

Тимур
30.07.2018
10:23:43
вообще как я понял можно скачать котлин compiler и запускать kts файлы им в принципе оно вполне запускается, даже не надо никаких jvm дополнительно указывать но в этом случае не очень понятно как шарить код между разными файлами скриптов нашел что есть некий kscript который это умеет но смущает во первых способ как он это делает, а во вторых что это чья-то самоделка

Alexander
30.07.2018
10:33:30
c value понятно, это не помогает, а вот если инфа про 1.3 верна, получается, что на данный момент это невозможно, я правильно понимаю?

Alexander
30.07.2018
10:35:14
Вложенные классы в аннотации нет, но можно в том же файле объявить
нельзя. точнее можно, но это не помогает тоже +_+ потом при обращии, говорит что NPE

Alexander
30.07.2018
10:36:05
при каком обращении?

Тимур
30.07.2018
10:38:31
Проблема всегда с класспутем. В котлине сейчас нет инструментов для поддержки динамического classpath. Приходится держать внешнюю опболочку, которая это обеспечивает.
да в принципе я бы даже согласился на статический classpath для базовых библиотек что мол импорти библиотеки оттуда но сами скрипты должны конечно импортиться динамически друг из друга

Google
Leonid
30.07.2018
10:39:03
c value понятно, это не помогает, а вот если инфа про 1.3 верна, получается, что на данный момент это невозможно, я правильно понимаю?
в 1.3M1: > Before 1.3, annotation classes could not have bodies in Kotlin. This release relaxes this limitation, allowing them to have nested classes, interfaces, and objects including a companion object.

Alexander
30.07.2018
10:39:48
Котлин вообще плохо ориентирован на динамическое применение, я думаю, что вся эта скриптовая бодяга не взлетит.

Идеальный вариант - писать на котлине, компилить, а потом использовать из груви

Badya
30.07.2018
10:41:04
Alexander
30.07.2018
10:41:42
Оно работает, но не очень удобно

Badya
30.07.2018
10:42:46
https://github.com/JetBrains/kotlin/tree/master/libraries/examples/kotlin-jsr223-daemon-local-eval-example

Alexander
30.07.2018
10:44:47
при каком обращении?
например при таком childContext.getExtensions(Context.class) .forEach(enricher -> enricher.enrich(childContext));

Alexander
30.07.2018
10:47:43
Не понятно, как getExtensions определено

Тимур
30.07.2018
10:47:44
Можно, исходя из jsr-223, написать некое демон приложение с компилером внутри, которому кормить .kts скрипты
Очень сложно Я просто увидел что формально есть kts, что в доке написано что есть маломальская поддержка скриптов, и подумал - а что если... Как оно вообще, юзабельно? Но самостоятельно что-то доделывать, писать демонов - для меня это перебор. Проще тогда отказаться и писать скрипты на чем-то более традиционном.

Alexander
30.07.2018
10:48:31
для запуска kts jsr223 не нужен, компилятор их поддерживает из коробки

Проблема в том, что при каждом запуске надо classpath руками генерировать. kscript это все делает, но только на линуксе

Тимур
30.07.2018
13:46:16
я сейчас kscript собрал из исходников это просто jar-файл, то есть при желании можно и на windows запустить, если сделать соответствующий bat-ник для запуска

Руслан
30.07.2018
14:29:29
Ближайшие 50 часов вы можете купить год пользования Intellij Idea Ultime (Kotlin JVM/Kotlin JS), CLion (Kotlin/Native), а также других IDE за пол цены! https://www.jetbrains.com/promo/friends/

Alexander
30.07.2018
14:36:24
Ланчер на баше

Страница 780 из 982