Cider: *рдкреНрд░рд┐рдВрдЯ-рдиреЗрдорд╕реНрдкреЗрд╕-рдореИрдкреНрд╕* рд╣рдореЗрд╢рд╛ рд╕рддреНрдп рд╣реЛрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдордИ 2018  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: clojure-emacs/cider

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

рдирд╛рдорд╛рдВрдХрд┐рдд рдХреБрдВрдЬрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЬреИрд╕реЗ
{:person/name "Fred" :person/age 50}
рд╕рд╛рдЗрдбрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
#:person{:name "Fred", :age 50}
рдпрд╣ *print-namespace-maps* рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ true ред
рдЖрдо рддреМрд░ рдкрд░, рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ set! рд╕рд╛рде рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

user> (set! *print-namespace-maps* false)
false
user> *print-namespace-maps*
false

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

user> (set! *print-namespace-maps* false)
false
user> *print-namespace-maps*
true

рдЗрд╕реА рддрд░рд╣, рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ var рдХреЛ binding рд╕реЗ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

user> (binding [*print-namespace-maps* false]
        [*print-namespace-maps* {:person/name "Fred" :person/age 50}])
[false {:person/name "Fred" :person/age 50}]

рд▓реЗрдХрд┐рди, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд░ рдмрджрд▓рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИ;

user> (binding [*print-namespace-maps* false]
        [*print-namespace-maps* {:person/name "Fred" :person/age 50}])
[false #:person{:name "Fred", :age 50}]

рд╕реАрдЖрдИрдбреАрдИрдЖрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА

;; CIDER 0.15.0 (London), nREPL 0.2.13
;; Clojure 1.9.0, Java 1.8.0_92

Emacs рд╕рдВрд╕реНрдХрд░рдг

2016-06-01 рдХреЗ GNU Emacs 24.5.1 (x86_64-apple-darwin15.3.0, NS Apple-appkit-1404.34)

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо

OSX El Capitan, рд╕рдВрд╕реНрдХрд░рдг 10.11.6

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕реАрдЖрдИрдбреАрдИрдЖрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реАрдирд┐рдВрдЧрди рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕реАрдЖрдИрдбреАрдИрдЖрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реАрдирд┐рдВрдЧрди рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдирдЖрд░рдИрдкреАрдПрд▓ рдпрд╛ рдЙрддреНрддрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред

https://github.com/cemerick/nREPL/blob/master/src/main/clojure/clojure/tools/nrepl/middleware/interruptible_eval.clj - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ eval рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ (get-thread-bindings) рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрд▓реЛрдЬрд░ 1.9 рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдареАрдХ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ nREPL рдХрд╛ рд╕рддреНрд░ рдкреНрд░рдмрдВрдзрди рдпрд╛ рдЗрд╕рдХрд╛ рдХреБрдЫ рдЕрдкрд╕реНрдЯреНрд░реАрдо *print-namespace-maps* рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреИрдкреНрдЪрд░ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

https://github.com/cemerick/nREPL/blob/master/src/main/clojure/clojure/tools/nrepl/middleware/session.clj#L108 - рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рдВрджрд┐рдЧреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ *print-namespace-maps* рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

clojure.main/with-bindings clojure.main/repl рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ *print-namespace-maps* рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ true ред *print-namespace-maps* рдореЗрдВ clojure/core_print.clj рдХреА рдореВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ false ред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ clj -e "(get-thread-bindings)" рдЬреЛ рдХрд┐ {#'clojure.core/*print-namespace-maps* true ...} рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред

рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдирдЖрд░рдИрдкреАрдПрд▓ рдпрд╛ рдЙрддреНрддрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЖрд░рдИрдкреАрдПрд▓ рдПрдирдЖрд░рдИрдкреАрдПрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреБрдЫ рдЦрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдирдЖрд░рдИрдкреАрдПрд▓ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

clojure.main рдкреНрд░рд┐рдВрдЯ-рдиреЗрдорд╕реНрдкреЗрд╕-рдореИрдкреНрд╕ рдХреЛ рдмрд╛рдВрдзрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рддрд┐рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдирдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рд╕рдордХрдХреНрд╖ рдХреИрд╕реЗ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХрд░реНрд╕рд┐рд╡ рдЗрд╢реНрдпреВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдерд╛: рдХрд░реНрд╕рд┐рд╡-рдЖрдЗрдб/рдХрд░реНрд╕рд┐рд╡#1541ред

рдХреНрдпрд╛ рдореБрдЭреЗ https://github.com/clojure/tools.nrepl рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, @bbatsov ?

@Reefersleep рд▓рдЧрднрдЧред

https://github.com/clojure/tools.nrepl рдХреЛ ред рдХреГрдкрдпрд╛, рд╡рд╣рд╛рдВ рдЯрд┐рдХрдЯ рдЬрдорд╛ рдХрд░реЗрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ nrepl рд░реЗрдкреЛ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ @bbatsov рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдпрд╣рд╛рдБ рд╣реИ: https://github.com/nrepl/nREPL/issues/33

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

geokon-gh picture geokon-gh  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

crocket picture crocket  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

manuel-uberti picture manuel-uberti  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xificurC picture xificurC  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mwfogleman picture mwfogleman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ