Fork me on GitHub
#clojure-russia
<
2016-01-29
>
andre07:01:18

@misha: ну у меня сначала вообще не заводился фигвил, вот это нашел http://stackoverflow.com/questions/34325079/cursive-editor-gives-classpath-exception-when-trying-to-run-clojure-project-that/34789964#34789964, помог перезапуск идеи, но подключение новых библиотек в проект также странно работает, такое ощущение он не подгружает их

andre07:01:17

по-моему фигвил в итоге я запустил, девкардс у меня не завелись ошибку реакта кидали

andre07:01:34

а из консоли завелись

andre08:01:36

или вот так вообще правильно (defonce coll '"rooms") ?

andre08:01:47

с апострофом

artemyarulin09:01:34

эм, я может не понимаю чо

user=> (defonce a "A")
#'user/a
user=> a
“A”

artemyarulin09:01:40

или это cljs?

andre09:01:33

это cursive ide подсвечивает

artemyarulin09:01:36

user=> (macroexpand `(defonce a "A"))
(let* [v__5361__auto__ (def user/a)] (clojure.core/when-not (.hasRoot v__5361__auto__) (def user/a "A")))

andre09:01:38

не cljs

artemyarulin09:01:48

должно все работать, в иде наверно чота не так

andre09:01:02

оно работает , просто напрягает что подсвечивает по всему коду simple_smile

andre09:01:51

как кстати лучше с интами работать которые пришли стрингами из компожи, я вот так делаю, но уже не раз обжигался искал багу чтоже так оказывается забыл в инт перевести

rm09:01:02

общайся через edn, там есть типы :)

artemyarulin09:01:00

вот кстати да - есть универсальный способ строку к инту привести f(“22)->22, для Clojure и ClojureScript?

artemyarulin09:01:14

кроме как стремный read

niquola09:01:26

Я использую read с защитным rexexp - ничего другого не нашел. Особой стремности вроде в этом нет - можно в исходниках read посмотреть, как он это делает, или в java провалиться

andfadeev09:01:37

@andre: есть коерс, вот у меня например

(GET "/channel/:id/subscribe" [id :<< as-int :as request] (channel-route/subscribe id request))
https://github.com/weavejester/compojure/wiki/Destructuring-Syntax

artemyarulin09:01:44

@nicola: Ну вариант да, но чота странно что нету в стандартной либе ничо

andre09:01:15

@andfadeev: спасибо, интересно , погляжу

niquola09:01:38

у clojure две стандартные либы simple_smile (три на самом деле)

artemyarulin09:01:29

эм, в смысле 3? Ты имеешь ввиду clojure.core, cljs.core и cljclr.core?

rm09:01:42

и google closure

artemyarulin09:01:59

кстати про Clojure 2015 Survey Results - 10% чтоль Clojure-CLR юзает, прикольно

rm10:01:53

разве? Там вроде совсем мало

misha10:01:56

@andre: после "подключения" новых либ делаешь lein deps? там еще есть File -> Invalidate Caches and Restart, но это когда совсем мистика начинает твориться

andre10:01:28

@misha: не делаю, для jvm то автоматически происходит, вот и тут ожидал такого же, я использую плагин для идеи, Invalidate Caches это наверное в Cursive IDE?

misha10:01:28

я не знаю это идейная опция или курсивная, но у меня идея15 с плагином курсива.

misha10:01:43

а разве standalone cursive ide уже есть?

andre10:01:38

наверное нет, извиняюсь, увидел download IDE на их сайте, подумал что уже есть

misha10:01:43

ну короче lein deps - это если у тебя лайнинген-проект. это как в мавене synchronize вроде

andre10:01:55

ясно понял, спс

misha10:01:06

но иногда курсив не справляется и после подгрузки зависимостей: - если нет сорс кода - с синтаксисом некоторых макросов (многие аргументы подсвечивает)

misha10:01:33

конструкторы джавовские некоторые подсвечивает, если динамически не может онозначно понять, какой из них вызывается - это к твоему скриншоту про Integer.

artemyarulin10:01:17

@rm: Точно, бы не прав - 2 процента всего. Ну все равно не ноль - т.е. оно живое, ну или умирает в агонии мда

misha10:01:08

@andre: второй подсвечивается, потому что значение вычисляется динамически, а третий - нет, потому что стоит type hint, поясняющий, что ты ждешь инт из словаря

andre10:01:54

о! спасибо

misha10:01:50

соответственно:

user=> (Integer. (:a {:a 1}))
1

user=> (Integer. (:a {:a "a"}))
java.lang.NumberFormatException: For input string: "a"
...

user=> (Integer. ^int (:a {:a "a"}))
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
...

be910:01:10

в курсиве надо не lein deps делать, а жать иконочку reload в окошке leiningen. он тогда перечитывает project.clj, и зависимости начинают нормально подсвечиваться

andre11:01:36

для фигвила не используется это окошечко

andre11:01:52

т.е. он не использует идеевский лейнинген

andre11:01:14

в этом наверное и главная засада

chort40916:01:58

@andre: его в какое-то время вообще говорили отключать …