Git Product home page Git Product logo

dirac's People

Contributors

babot avatar danielcompton avatar darwin avatar dijonkitchen avatar mbertheau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dirac's Issues

Many Dirac errors since 1.1.3

For example, I was stopped at a breakpoint, went to the Console, and saw this:

Error: Failed to execute 'setStart' on 'Range': There is no child at offset 20.
at Console.DiracPromptWithHistory.onKeyDown (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console/console_module.js:129:146)

Internal Dirac Error TypeError: Cannot read property '0' of null

Recently updated to the newest version and I'm seeing this:

Internal Dirac Error TypeError: Cannot read property '0' of null
Dirac v0.7.1, Chrome/56.0.2888.0, Mac/10.11.6, Backend API/external (460 registrations), Backend CSS/external (406 definitions)

DevTools code has thrown an unhandled exception:
TypeError: Cannot read property '0' of null
    at vQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4727:48)
    at hQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4721:236)
    at qQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4723:18)
    at hQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4721:236)
    at qQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4723:18)
    at hQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4721:236)
    at qQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4723:18)
    at hQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4721:236)
    at qQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4723:18)
    at iQ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4730:192)

---
Please report the issue here: https://github.com/binaryage/dirac/issues

Console filter buttons act weird

The filter buttons on the console do not work in the same way as they do in the regular Developer Tools console. For example, when I try to leave out the "Debug" messages, clicking on the Debug filter button with Command (on my Mac) held down sometimes works, and sometimes does not.

The same for the other buttons...

Dirac console error when listing a var at breakpoint

What I did:
var is names "rules", in console I type rules and received undefined , I then entered js/rules and received this error, but following it correctly listed and cutom formatted my var a vector of maps.

Environment:
Dirac Runtime v0.6.2 , CLJS Devtools 0.7.2 , Dirac Chrome extension 0.6.2
Linux Ubuntu 14.04LTS Chrome unstable: Version 53.0.2785.8 dev (64-bit)

Internal Dirac Error: DevTools code has thrown an unhandled exception
TypeError: Cannot read property 'relativeToElement' of null
    at Object._updateBoxPosition (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:3299:115)
    at Object.updateSuggestions (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:3342:151)
    at Object._completionsForJavascriptReady (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console_module.js:56:18)
    at Object._reportCompletions (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:6396:1)
    at Object.receivedPropertyNames (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:6386:6)
    at propertiesCollected (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:5843:1)
    at Object.remoteObjectBinder (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:6602:1)
    at callback (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4347:39)
    at Object.dispatchResponse (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4354:10)
    at Object.dispatch (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4304:60)

Dirac console does not connect to agent with binaryage/devtools "0.5.2"

The dirac console does not connect to the agent with devtools 0.5.2 but works fine with 0.5.1
The lein repl terminal still shows: Tunnel is accepting connections on ws://localhost:8231 The dirac console shows no errors, but does not evaluate any cljs code.

OS: Linux Ubuntu 14:04
Chrome unstable: Version 49.0.2623.13 dev (64-bit)
Lein: Leiningen 2.5.3 on Java 1.8.0_66 Java HotSpot(TM) 64-Bit Server VM

Error in console after update 0.8.7->1.0.0

Backend uses 1.0.0, Chrome extension was updated, also on 1.0.0. System is Ubuntu 16.04

After opening the browser I see this message in the console:

Dirac v1.0.0, Chrome/57.0.2979.0, Linux/?, Backend API/external/456, Backend CSS/external/415

An error was logged into the internal DevTools console:
:
  * function $dirac$lib$ws_client$unserialize_message$$($unserialized_msg$$){try{return $cljs$reader$read_string$$($unserialized_msg$$)}catch($e42374$$){return console.error([$cljs$core$str$$($cljs$core$get_in$cljs$0core$0IFn$0_invoke$0arity$02$$([$cljs$core$str$$("Unable to unserialize message: "),$cljs$core$str$$($e42374$$),$cljs$core$str$$("\n")].join(""),new $cljs$core$PersistentVector$$(null,2,5,$cljs$core$PersistentVector$EMPTY_NODE$$,[$cljs$core$cst$0kw$0options$$,$cljs$core$cst$0kw$0name$$],null))),$cljs$core$str$$(":")].join(""),$dirac$lib$ws_client$unserialize_message$$),null}}

screenshot dirac console
__

Stack trace formatting removes name of function when calling multi arity functions

Dirac 0.6.0

screenshot of google chrome 7-06-16 10-52-35 am

it looks like Dirac is stripping the name of the function if a multi arity function is called?

3 @ core.cljs:4621 corresponds to

(defn into
  "Returns a new coll consisting of to-coll with all of the items of
  from-coll conjoined. A transducer may be supplied."
  ([to from]
     (if-not (nil? to)
       (if (implements? IEditableCollection to)
         (with-meta (persistent! (reduce -conj! (transient to) from)) (meta to))
         (reduce -conj to from))
       (reduce conj () from)))
  ([to xform from]
     (if (implements? IEditableCollection to)
>>>>   (with-meta (persistent! (transduce xform conj! (transient to) from)) (meta to))
       (transduce xform conj to from))))

Macros inferring in new cljs (CLJS-1507)

Currently we use cljs.analyzer/analyze to parse ns forms. We trust it to tell us which symbols/namespace references are macros. But new macros inference CLJS-1507 can make this unreliable when someone relies on inferring.

I think a way how to work around this is to treat everything as a function and check for runtime presence. If it is not present at runtime, we treat it as a macro (but this can have performance implications because runtime presence checks must go over wire).

Other idea is just to leave it as is and our code completion hints will report wrong types.

Local names incorrect

Hi,

In the attached screenshot, you can see that the local "nodeleaf-id" is shown several times in the list at the right side. Only one of those instance is correct (the one having value 538) -- the other values correspond to other locals (e.g., :node-types/tree corresponds to local "rep-tree|fold?" and value null corresponds to "has-children?"). When I select the text of the local at the left side, the current value is correctly displayed in the popup window that appears.

Using Chrome 57.0.2984.0, Dirac 1.0.0, and I tried to start with a fresh Chrome folder with no extensions installed other than Dirac.

screen shot 2017-01-17 at 10 52 39

Different keyboard command for switching between console types

same as #9

Hi im hit by this to on the chromebook pixel. Perhaps you can follow devtools lead and offer two options (like F12 and ctrl-shift i)
maybe
PageUp = control+>
PageDown = control+<

I have tried the Chromebook recommended alternative (search up and search down) but it doesn't work on my setup

nrepl error: Error loading dirac.nrepl.middleware

lein repl console error:
Error loading dirac.nrepl.middleware: Could not locate dirac/nrepl/middleware__init.class..

Environment:
[org.clojure/clojure "1.8.0"]
[org.clojure/clojurescript "1.9.229"]
[binaryage/devtools "0.8.2"]
[binaryage/dirac "0.7.2"]

:repl-options 
    {:port 8230
     :nrepl-middleware [dirac.nrepl.middleware/dirac-repl]
     :init (do
               (require 'dirac.agent)
               (dirac.agent/boot!))}

Error detail:

lein repl
Error loading dirac.nrepl.middleware: Could not locate dirac/nrepl/middleware__init.class or dirac/nrepl/middleware.clj on classpath.
12:52:08.602 [main] DEBUG dirac.agent.impl - Booting Dirac Agent...
12:52:08.632 [main] DEBUG dirac.agent.impl - effective config:
 {:log-level "WARN",
 :max-boot-trials 10,
 :initial-boot-delay 1000,
 :delay-between-boot-trials 500,
 :skip-logging-setup false,
 :nrepl-server {:host "localhost", :port 8230},
 :nrepl-tunnel {:host "localhost", :port 8231}}

Exception in thread "main" java.lang.RuntimeException: Unable to resolve var: dirac.nrepl.middleware/dirac-repl in this context, compiling:(/tmp/form-init3155148178228252122.clj:1:1525)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:6875)
        at clojure.lang.Compiler.analyze(Compiler.java:6669)
        at clojure.lang.Compiler.analyze(Compiler.java:6625)
        at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3834)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:6870)
        at clojure.lang.Compiler.analyze(Compiler.java:6669)
        at clojure.lang.Compiler.analyze(Compiler.java:6625)
        at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3834)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:6870)
        at clojure.lang.Compiler.analyze(Compiler.java:6669)
        at clojure.lang.Compiler.access$300(Compiler.java:38)
        at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6269)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:6868)
        at clojure.lang.Compiler.analyze(Compiler.java:6669)
        at clojure.lang.Compiler.analyze(Compiler.java:6625)
        at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6001)
        at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5380)
        at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3972)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:6866)
        at clojure.lang.Compiler.analyze(Compiler.java:6669)
        at clojure.lang.Compiler.eval(Compiler.java:6924)
        at clojure.lang.Compiler.eval(Compiler.java:6917)
        at clojure.lang.Compiler.eval(Compiler.java:6917)
        at clojure.lang.Compiler.load(Compiler.java:7379)
        at clojure.lang.Compiler.loadFile(Compiler.java:7317)
        at clojure.main$load_script.invokeStatic(main.clj:275)
        at clojure.main$init_opt.invokeStatic(main.clj:277)
        at clojure.main$init_opt.invoke(main.clj:277)
        at clojure.main$initialize.invokeStatic(main.clj:308)
        at clojure.main$null_opt.invokeStatic(main.clj:342)
        at clojure.main$null_opt.invoke(main.clj:339)
        at clojure.main$main.invokeStatic(main.clj:421)
        at clojure.main$main.doInvoke(main.clj:384)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at clojure.lang.Var.invoke(Var.java:383)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.Var.applyTo(Var.java:700)
        at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve var: dirac.nrepl.middleware/dirac-repl in this context
        at clojure.lang.Util.runtimeException(Util.java:221)
        at clojure.lang.Compiler$TheVarExpr$Parser.parse(Compiler.java:710)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:6868)
        ... 37 more

Internal Dirac Error: Cannot read property 'text' of undefined

[binaryage/dirac "0.6.3"]
[binaryage/devtools "0.8.1"]
[powerlaces/boot-cljs-devtools "0.1.1"]

Chrome 54.0.2836.0 canary on macOS.

On loading the page the normal CLJS DevTools / Dirac Runtime installation messages are printed in the console, then shortly after the following exception is printed in the console. CLJS REPL still appears to be working regardless.

Internal Dirac Error: DevTools code has thrown an unhandled exception
TypeError: Cannot read property 'text' of undefined
    at WebInspector.RuntimeDispatcher.exceptionThrown (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:6309:180)
    at Object.dispatch (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4355:63)
    at WebInspector.WebSocketConnection.dispatch (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4295:31)
    at WebInspector.WebSocketConnection._onMessage (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:10993:31)

Assist with core.async debugging

I can imagine implementing "core.async" sidebar pane on Sources panel.

When stopped on a breakpoint this pane would list all existing go blocks and their state (running/how they are parked). One could click on them to see the source code location where given go block is being parked.

Another feature could be better presentation of channels. Custom formatter could display all pending puts and takes on given channel, also it could display state of associated buffer.

This would require a fork of core.async with added debugging capabilities.

"require" broken?

Somewhere around version 0.7.5 executing

> (require '[re-frame.db :refer [app-db]])
> @app-db

in the browser console would give a nice representation of app-db current value.
Now none of such statements are working - in this case app-db is undefined.
At the same time, requireing works inside lein repl (although it doesn't have the same value as app-db in browser).

Feature request: scrolling to the right in the Watch and Scope sub-panel

Hi,

(Previously forgot to express a very big thank to you for Dirac, it really improves my workflow substantially!)

It would be great if the "scope" and "watch" subpanels of the "Sources" panel would be able to scroll to the right. When drilling down on a ClojureScript map, for example, you quickly get to the point where the content of Dirac's custom CLJS formatter is no longer shown.

Scope disappearing when disclosure triangle clicked

When debugging with Dirac, if I expand the disclosure triangles for a value in the scope panel, then everything disappears.

I'm using Dirac 0.2.0, Chrome: Version 52.0.2723.0 canary (64-bit), Dirac DevTools Extension 0.2.0.

dirac

Strange build errors

Hi,

Since upgrading to 0.2.0, I get very weird errors during execution (in fact, my web app refuses to load due to the severity of the errors). See attached screenshot.

Initially the problem occurred on my main development machine, and after some fiddling (reinstall extension, delete and reinstall lein, clean build, renaming the resulting .JS file compiled by CLJS, etc.) suddenly everything worked again.

Today I had exactly the same problem on my second development machine, and no matter what I try, I always get the same error. Merely including "[dirac.runtime :as dirac]" (not even calling dirac/install!) causes the error. Note that:

  • no errors are shown during compilation/building;
  • devtools does not cause any problems;
  • the sample project works fine as well;
  • clicking on the links referenced in the error messages is not of any help (they all return empty files, probably because they are too low-level/internal?).

I am using the same Clojure and dirac/devtools versions as the sample project, and using Chrome 50...

Thanks in advance for your help!

screen shot 2016-05-02 at 20 13 00

Cannot read property 'shift' of undefined

Here is the issue as discussed on Slack, evaluating any form throws:

Internal Dirac Error: DevTools code has thrown an unhandled exception
TypeError: Cannot read property 'shift' of undefined
    at WebInspector.ConsoleView._alterDiracViewMessage (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console_module.js:398:137)
    at WebInspector.ConsoleView._createViewMessage (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console_module.js:406:133)
    at WebInspector.ConsoleView._addConsoleMessage (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console_module.js:384:131)
    at WebInspector.ConsoleView._onConsoleMessageAdded (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console_module.js:380:32)
    at WebInspector.MultitargetConsoleModel.dispatchEventToListeners (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:772:185)
    at WebInspector.MultitargetConsoleModel._consoleMessageAdded (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4613:7)
    at WebInspector.ConsoleModel.dispatchEventToListeners (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:772:185)
    at WebInspector.ConsoleModel.addMessage (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4542:97)
    at WebInspector.DiracAwareConsoleDispatcher.messageAdded (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4596:311)
    at WebInspector.DiracAwareConsoleDispatcher.messageAdded (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4604:55)

This happens with 0.6.2 and Google Chrome 54.0.2810.2 dev (64-bit)

Interruptible evals

nREPL has support for interruptible evaluations (e.g interrupting long running Clojure code snippet). I have copy&pasted supporting code from piggieback to dirac nREPL middleware, but never tested it. It won't work for in-flight weasel evaluations anyways, it will leak them I guess. Javascript does not have a good way how to interrupt long-running code.

Because we are using Chrome's debugger protocol for evaluations in dirac, we can interrupt in-flight code executions. This would require an extension of weasel protocol for interruption requests.

I don't want to spend time on it but if anyone would feel that this is important feature to add I'm open for an addition. This task is considered very hard because you would have to understand full stack.

Exception: $s$$124$$.replace is not a function

I have run across this problem after upgrating Chrome, thankfully you have already all the version info but let me know if you need anything else or want me to test some fix:

Internal Dirac Error: DevTools code has thrown an unhandled rejection (in promise)
Dirac v0.6.7, Chrome/55.0.2868.3, Linux/?, Backend API/external (449 registrations), Backend CSS/external (403 definitions)
TypeError: $s$$124$$.replace is not a function
    at $clojure$string$replace$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4881:127)
    at $cuerdas$core$replace$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4923:133)
    at $cuerdas$core$escape_html$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4924:296)
    at $dirac$implant$intercom$bootstrap_error_msg$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:5422:211)
    at chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:5444:5177
    at $message$$52$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:5444:677)
    at $c__28935__auto__$$115$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:5444:1724)
    at $cljs$core$async$impl$ioc_helpers$run_state_machine_wrapped$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4861:4674)
    at chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4862:409
    at chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4859:4247

Thanks as usual for your work on this ;)

Relax Clojure 1.8 requirement in next release

0.3.0 uses string/index-of, a new function in 1.8. If you're still on 1.7, you will get the log messages below. It will look like the problem is Unable to resolve var: dirac.nrepl/middleware in this context, but this is just a symptom, and the root problem is the missing string/index-of function which stops compilation. Upgrading to 1.8 is all that is required to fix this, but it was quite confusing to figure out, as there was a lot of logging (as I had set my logging to DEBUG globally), and it wasn't immediately clear what the true problem was.

It could be good to add notes to the 0.3.0 release notes and installation notes to say that 1.8 is required.

$ lein repl
Error loading dirac.nrepl: java.lang.RuntimeException: No such var: string/index-of, compiling:(dirac/nrepl/sessions.clj:149:14)
21:36:21.464 [main] DEBUG clj-logging-config.log4j - Set logger: logger is :root, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1b18f38f "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1b18f38f"], :level #object[org.apache.log4j.Level 0x3e40bea1 "INFO"]}
21:36:21.467 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1b18f38f
21:36:21.467 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.468 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger root
21:36:21.469 [main] DEBUG clj-logging-config.log4j - Setting level to INFO
21:36:21.469 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.469 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.browser-tests, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1000fbae "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.browser-tests
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.470 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.agent-tests, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1000fbae "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.agent-tests
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.test, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x1000fbae "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@1000fbae
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.test
21:36:21.471 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.agent, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x46bcdf2e "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.agent
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.agent-impl, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x46bcdf2e "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.472 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@46bcdf2e
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.agent-impl
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.nrepl, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x5927fc8e "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@5927fc8e"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@5927fc8e
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.nrepl
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.logging, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x4eeda18f "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.473 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.logging
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.lib, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x4eeda18f "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@4eeda18f
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.lib
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Set logger: logger is dirac.lib.weasel-server, args is {:layout #object[dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a 0x268c4507 "dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@268c4507"], :level #object[org.apache.log4j.Level 0x2fe8ec31 "WARN"]}
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Creating console appender named _default and layout dirac.logging.utils.proxy$org.apache.log4j.Layout$ff19274a@268c4507
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting name _default against appender
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Adding appender named _default to logger dirac.lib.weasel-server
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting level to WARN
21:36:21.474 [main] DEBUG clj-logging-config.log4j - Setting additivity to false
21:36:21.475 [main] INFO  dirac.agent-impl - Booting Dirac Agent...
21:36:21.513 [main] DEBUG dirac.agent-impl - effective config:
 {:log-level "WARN",
 :max-boot-trials 10,
 :initial-boot-delay 1000,
 :delay-between-boot-trials 500,
 :skip-logging-setup false,
 :nrepl-server {:host "localhost", :port 8230},
 :nrepl-tunnel {:host "localhost", :port 8231}}

Exception in thread "main" java.lang.RuntimeException: Unable to resolve var: dirac.nrepl/middleware in this context, compiling:(/private/var/folders/1z/vv_fwgqj67518h3j_gdgnl_00000gq/T/form-init109334489615094292.clj:1:1767)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6730)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3791)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6725)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3791)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6725)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.access$300(Compiler.java:38)
    at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6129)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6723)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5861)
    at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5296)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3925)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6721)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.eval(Compiler.java:6779)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    at clojure.lang.Compiler.loadFile(Compiler.java:7165)
    at clojure.main$load_script.invoke(main.clj:275)
    at clojure.main$init_opt.invoke(main.clj:280)
    at clojure.main$initialize.invoke(main.clj:308)
    at clojure.main$null_opt.invoke(main.clj:343)
    at clojure.main$main.doInvoke(main.clj:421)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve var: dirac.nrepl/middleware in this context
    at clojure.lang.Util.runtimeException(Util.java:221)
    at clojure.lang.Compiler$TheVarExpr$Parser.parse(Compiler.java:698)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6723)
    ... 34 more
21:36:22.517 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent
21:36:23.029 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #2)
21:36:23.530 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #3)
21:36:24.034 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #4)
21:36:24.537 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #5)
21:36:25.040 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #6)
21:36:25.541 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #7)
21:36:26.046 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #8)
21:36:26.550 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #9)
21:36:27.055 [clojure-agent-send-off-pool-1] INFO  dirac.agent-impl - Starting Dirac Agent(attempt #10)
21:36:27.560 [clojure-agent-send-off-pool-1] ERROR dirac.agent-impl - Failed to start Dirac Agent. The nREPL server didn't come online in time. Made 10 connection attempts over last 5.00 seconds.
Did you really start your nREPL server at nrepl://localhost:8230? Maybe a firewall problem?
^[[A^CโŽ

Logging library conflict

Hi,

I'm trying to use Dirac on a project which is using logback and sljf4j. Unfortunately clj-logging-config used by Dirac only supports log4j 1.

Logging dependencies:

[org.clojure/tools.logging "0.3.1"]
[ch.qos.logback/logback-classic "1.1.7"]
[org.slf4j/slf4j-api "1.7.21"]
[org.slf4j/jcl-over-slf4j "1.7.21"]
[org.slf4j/jul-to-slf4j "1.7.21"]
[org.slf4j/log4j-over-slf4j "1.7.21"]

Exception:

Error loading dirac.nrepl: java.lang.IllegalArgumentException: No matching ctor found for class clj_logging_config.log4j.proxy$org.apache.log4j.WriterAppender$ff19274a, compiling:(clj_logging_config/log4j.clj:37:18)
> java.lang.Exception: namespace 'clj-logging-config.log4j' not found, compiling:(dirac/logging.clj:1:1)

Dirac failed to require its implementation. This is likely caused by missing or wrong dependencies in your project.
Please review your project configuration with Dirac installation instructuctions here: https://github.com/binaryage/dirac#installation.
**stack trace**

Exception in thread "main" java.lang.RuntimeException: Unable to resolve var: dirac.nrepl/middleware in this context, compiling:(/tmp/form-init8356300935810374369.clj:1:9709)
**stack trace**

Wrong completion after a require with alias

It is very good to be able to inspect vars with dirac.

I know it is alpha/early stage, I just want to report one thing.

selection_008

If I require a namespace with an alias, then auto-completion shows symbols starting with the alias but no the namespace symbols (we have had the same problem on clojurescript.io btw).

Add dock from side options

I like to be able to embed my devtools console into the current window. Is it possible to do that with dirac?

Chrome extension doesn't work

Hello!

I've installed extension from webstore to my chromeVersion 54.0.2840.71 (64-bit) macOS Sierra 10.12.1 and see this error on my cljs project page, constantly repeating:

Uncaught SyntaxError: Invalid or unexpected token VM3986:1

Also, extension has ! red badge.

core.cljs:65 CLJS DevTools internal error: TypeError: Cannot convert a Symbol value to a string

Hi,

Encountered the error when browsing through stacks at a break point. Below is the stack trace from that error. Chrome didn't output source map line numbers for a few frames at the bottom, not sure this stack trace are helpful or not.

core.cljs:65 CLJS DevTools internal error: TypeError: Cannot convert a Symbol value to a string
    at Array.join (native)
    at Function.cljs.core.str.cljs$core$IFn$_invoke$arity$1 (http://localhost:3450/js/compiled/test_out/cljs/core.js:9780:12)
    at Object.cljs$core$str [as str] (http://localhost:3450/js/compiled/test_out/cljs/core.js:9762:22)
    at cljs$core$pr_writer_impl (http://localhost:3450/js/compiled/test_out/cljs/core.js:31145:128)
    at devtools$formatters$printing$alt_printer_job (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:233:21)
    at devtools$formatters$printing$alt_printer_impl (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:248:46)
    at cljs$core$pr_writer (http://localhost:3450/js/compiled/test_out/cljs/core.js:31172:128)
    at http://localhost:3450/js/compiled/test_out/cljs/core.js:31613:131
    at Object.cljs$core$pr_sequential_writer [as pr_sequential_writer] (http://localhost:3450/js/compiled/test_out/cljs/core.js:30903:142)
    at cljs$core$print_map (http://localhost:3450/js/compiled/test_out/cljs/core.js:31602:18)
    at cljs$core$pr_writer_impl (http://localhost:3450/js/compiled/test_out/cljs/core.js:31092:170)
    at devtools$formatters$printing$alt_printer_job (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:233:21)
    at devtools$formatters$printing$alt_printer_impl (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:248:46)
    at cljs$core$pr_writer (http://localhost:3450/js/compiled/test_out/cljs/core.js:31172:128)
    at Object.cljs$core$pr_sequential_writer [as pr_sequential_writer] (http://localhost:3450/js/compiled/test_out/cljs/core.js:30903:142)
    at cljs.core.PersistentVector.cljs$core$IPrintWithWriter$_pr_writer$arity$3 (http://localhost:3450/js/compiled/test_out/cljs/core.js:31791:18)
    at cljs$core$pr_writer_impl (http://localhost:3450/js/compiled/test_out/cljs/core.js:31078:12)
    at devtools$formatters$printing$alt_printer_job (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:233:21)
    at devtools$formatters$printing$alt_printer_impl (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:248:46)
    at Object.cljs$core$pr_writer [as pr_writer] (http://localhost:3450/js/compiled/test_out/cljs/core.js:31172:128)
    at cljs$core$pr_seq_writer (http://localhost:3450/js/compiled/test_out/cljs/core.js:31178:11)
    at http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:283:32
    at http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:258:16
    at devtools$formatters$printing$managed_print (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:276:8)
    at devtools$formatters$printing$managed_print_via_writer (http://localhost:3450/js/compiled/test_out/devtools/formatters/printing.js:282:51)
    at http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:34:15
    at Function.devtools.formatters.markup.print_with.cljs$core$IFn$_invoke$arity$variadic (http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:41:19)
    at devtools$formatters$markup$print_with (http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:26:46)
    at Function.devtools.formatters.markup.print_via_writer.cljs$core$IFn$_invoke$arity$variadic (http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:83:46)
    at devtools$formatters$markup$print_via_writer (http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:77:52)
    at devtools$formatters$markup$_LT_preview_GT_ (http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:400:52)
    at devtools$formatters$markup$_LT_header_GT_ (http://localhost:3450/js/compiled/test_out/devtools/formatters/markup.js:1054:106)
    at devtools$formatters$core$header_STAR_ (http://localhost:3450/js/compiled/test_out/devtools/formatters/core.js:56:149)
    at devtools.formatters.core.config_wrapper (http://localhost:3450/js/compiled/test_out/devtools/formatters/core.js:156:19)
    at Function.handler (http://localhost:3450/js/compiled/test_out/devtools/formatters/core.js:209:120)
    at Function.cljs.core.apply.cljs$core$IFn$_invoke$arity$2 (http://localhost:3450/js/compiled/test_out/cljs/core.js:12983:10)
    at cljs$core$apply (http://localhost:3450/js/compiled/test_out/cljs/core.js:12951:24)
    at devtools.formatters.CLJSDevtoolsFormatter.G__54238__delegate (http://localhost:3450/js/compiled/test_out/devtools/formatters/core.js:167:28)
    at devtools.formatters.CLJSDevtoolsFormatter.G__54238 [as header] (http://localhost:3450/js/compiled/test_out/devtools/formatters/core.js:180:27)
    at InjectedScript.RemoteObject._customPreview (<anonymous>:147:82)
    at InjectedScript.RemoteObject (<anonymous>:139:73)
    at InjectedScript._wrapObject (<anonymous>:43:13)
    at InjectedScript.getProperties (<anonymous>:51:23)
    at Function.<anonymous> (http://localhost:3450/js/compiled/test_out/webapp/react.js?zx=d29fd3515wqx:75:9)
    at Function.cljs.core.apply.cljs$core$IFn$_invoke$arity$3 (http://localhost:3450/js/compiled/test_out/cljs/core.js:12998:10)
    at cljs$core$apply (http://localhost:3450/js/compiled/test_out/cljs/core.js:12955:24)
    at render (http://localhost:3450/js/compiled/test_out/rum/core.js:209:107)
    at http://localhost:3450/js/compiled/test_out/react/util.js:219:33
    at Constructor.render (http://localhost:3450/js/compiled/test_out/rum/core.js:76:33)
    at ReactCompositeComponentWrapper._renderValidatedComponentWithoutOwnerOrContext (http://localhost:3450/js/compiled/test_out/lib.js:20139:34)
    at ReactCompositeComponentWrapper._renderValidatedComponent (http://localhost:3450/js/compiled/test_out/lib.js:20166:34)
    at ReactCompositeComponentWrapper.performInitialMount (http://localhost:3450/js/compiled/test_out/lib.js:19703:30)
    at ReactCompositeComponentWrapper.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:19591:21)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactDOMComponent.mountChildren (http://localhost:3450/js/compiled/test_out/lib.js:26012:44)
    at ReactDOMComponent._createInitialChildren (http://localhost:3450/js/compiled/test_out/lib.js:21122:32)
    at ReactDOMComponent.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:20947:12)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactCompositeComponentWrapper.performInitialMount (http://localhost:3450/js/compiled/test_out/lib.js:19716:34)
    at ReactCompositeComponentWrapper.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:19591:21)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactCompositeComponentWrapper.performInitialMount (http://localhost:3450/js/compiled/test_out/lib.js:19716:34)
    at ReactCompositeComponentWrapper.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:19591:21)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactDOMComponent.mountChildren (http://localhost:3450/js/compiled/test_out/lib.js:26012:44)
    at ReactDOMComponent._createInitialChildren (http://localhost:3450/js/compiled/test_out/lib.js:21122:32)
    at ReactDOMComponent.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:20947:12)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactDOMComponent.mountChildren (http://localhost:3450/js/compiled/test_out/lib.js:26012:44)
    at ReactDOMComponent._createInitialChildren (http://localhost:3450/js/compiled/test_out/lib.js:21122:32)
    at ReactDOMComponent.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:20947:12)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactDOMComponent.mountChildren (http://localhost:3450/js/compiled/test_out/lib.js:26012:44)
    at ReactDOMComponent._createInitialChildren (http://localhost:3450/js/compiled/test_out/lib.js:21122:32)
    at ReactDOMComponent.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:20947:12)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactCompositeComponentWrapper.performInitialMount (http://localhost:3450/js/compiled/test_out/lib.js:19716:34)
    at ReactCompositeComponentWrapper.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:19591:21)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at ReactDOMComponent.mountChildren (http://localhost:3450/js/compiled/test_out/lib.js:26012:44)
    at ReactDOMComponent._createInitialChildren (http://localhost:3450/js/compiled/test_out/lib.js:21122:32)
    at ReactDOMComponent.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:20947:12)
    at Object.mountComponent (http://localhost:3450/js/compiled/test_out/lib.js:27270:35)
    at Object.updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:17767:51)
    at ReactDOMComponent._reconcilerUpdateChildren (http://localhost:3450/js/compiled/test_out/lib.js:25982:32)
    at ReactDOMComponent._updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:26086:31)
    at ReactDOMComponent.updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:26073:12)
    at ReactDOMComponent._updateDOMChildren (http://localhost:3450/js/compiled/test_out/lib.js:21365:12)
    at ReactDOMComponent.updateComponent (http://localhost:3450/js/compiled/test_out/lib.js:21183:10)
    at ReactDOMComponent.receiveComponent (http://localhost:3450/js/compiled/test_out/lib.js:21141:10)
    at Object.receiveComponent (http://localhost:3450/js/compiled/test_out/lib.js:27349:22)
    at Object.updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:17755:25)
    at ReactDOMComponent._reconcilerUpdateChildren (http://localhost:3450/js/compiled/test_out/lib.js:25982:32)
    at ReactDOMComponent._updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:26086:31)
    at ReactDOMComponent.updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:26073:12)
    at ReactDOMComponent._updateDOMChildren (http://localhost:3450/js/compiled/test_out/lib.js:21365:12)
    at ReactDOMComponent.updateComponent (http://localhost:3450/js/compiled/test_out/lib.js:21183:10)
    at ReactDOMComponent.receiveComponent (http://localhost:3450/js/compiled/test_out/lib.js:21141:10)
    at Object.receiveComponent (http://localhost:3450/js/compiled/test_out/lib.js:27349:22)
    at Object.updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:17755:25)
    at ReactDOMComponent._reconcilerUpdateChildren (http://localhost:3450/js/compiled/test_out/lib.js:25982:32)
    at ReactDOMComponent._updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:26086:31)
    at ReactDOMComponent.updateChildren (http://localhost:3450/js/compiled/test_out/lib.js:26073:12)
    at ReactDOMComponent._updateDOMChildren (http://localhost:3450/js/compiled/test_out/lib.js:21365:12)
    at ReactDOMComponent.updateComponent (http://localhost:3450/js/compiled/test_out/lib.js:21183:10)
    at ReactDOMComponent.receiveComponent (http://localhost:3450/js/compiled/test_out/lib.js:21141:10)
    at Object.receiveComponent (http://localhost:3450/js/compiled/test_out/lib.js:27349:22)
    at ReactCompositeComponentWrapper._updateRenderedComponent (http://localhost:3450/js/compiled/test_out/lib.js:20092:23)
    at ReactCompositeComponentWrapper._performComponentUpdate (http://localhost:3450/js/compiled/test_out/lib.js:20070:10)
    at ReactCompositeComponentWrapper.updateComponent (http://localhost:3450/js/compiled/test_out/lib.js:19989:12)
    at ReactCompositeComponentWrapper.performUpdateIfNecessary (http://localhost:3450/js/compiled/test_out/lib.js:19897:12)
    at Object.performUpdateIfNecessary (http://localhost:3450/js/compiled/test_out/lib.js:27381:22)
    at runBatchedUpdates (http://localhost:3450/js/compiled/test_out/lib.js:28521:21)
    at ReactReconcileTransaction.perform (http://localhost:3450/js/compiled/test_out/lib.js:30772:20)
    at ReactUpdatesFlushTransaction.perform (http://localhost:3450/js/compiled/test_out/lib.js:30772:20)
    at Object.flushBatchedUpdates (http://localhost:3450/js/compiled/test_out/lib.js:28543:19)
    at ReactDefaultBatchingStrategyTransaction.closeAll (http://localhost:3450/js/compiled/test_out/lib.js:30838:25)
    at ReactDefaultBatchingStrategyTransaction.perform (http://localhost:3450/js/compiled/test_out/lib.js:30785:16)
    at Object.batchedUpdates (http://localhost:3450/js/compiled/test_out/lib.js:23778:19)
    at Object.batchedUpdates (http://localhost:3450/js/compiled/test_out/lib.js:28468:20)
    at dispatchEvent (http://localhost:3450/js/compiled/test_out/lib.js:24761:20)
G__54238__delegate  @   core.cljs:65
G__54238    @   core.cljs:61
_customPreview
InjectedScript.RemoteObject
_wrapObject
getProperties

"Use of undeclared var" & "no such namespace" errors

When I try to execute CLJS-code from the Dirac REPL, I always get "use of undeclared var" errors (even though the function call usually executes correctly) and "no such namespace" errors (for imported namespaces in the current namespace). I did execute an (in-ns ...) call first to go to the correct namespace.

dirac dependency must be specified in :dev profile

I'd like to be able to do:

  :profiles {:dirac
             {:dependencies [[binaryage/dirac "0.1.3"]]
              :repl-options {:nrepl-middleware [dirac.nrepl.middleware/dirac-repl]
                             :port 8231
                             :init (do
                                     (require 'dirac.agent)
                                     (dirac.agent/boot!))}}

But this doesn't work. When I run lein with-profile +dirac repl the error is:

> java.lang.IllegalArgumentException: No matching ctor found for class clj_logging_config.log4j.proxy$org.apache.log4j.WriterAppender$ff19274a, compiling:(clj_logging_config/log4j.clj:37:18)

Dirac failed to require its implementation. This is likely caused by missing or wrong dependencies in your project.
Please review your project configuration with Dirac installation instructuctions here: https://github.com/binaryage/dirac#installation.
 #error {
 :cause No matching ctor found for class clj_logging_config.log4j.proxy$org.apache.log4j.WriterAppender$ff19274a
 :via
 [{:type clojure.lang.Compiler$CompilerException
   :message java.lang.IllegalArgumentException: No matching ctor found for class clj_logging_config.log4j.proxy$org.apache.log4j.WriterAppender$ff19274a, compiling:(clj_logging_config/log4j.clj:37:18)
   :at [clojure.lang.Compiler analyzeSeq Compiler.java 6875]}
  {:type java.lang.IllegalArgumentException
   :message No matching ctor found for class clj_logging_config.log4j.proxy$org.apache.log4j.WriterAppender$ff19274a
   :at [clojure.lang.Compiler$NewExpr <init> Compiler.java 2548]}]
 :trace
 [[clojure.lang.Compiler$NewExpr <init> Compiler.java 2548]

This does work:

  :profiles {:dev
             {:dependencies [[binaryage/dirac "0.1.3"]]}
             :dirac
             {:repl-options {:nrepl-middleware [dirac.nrepl.middleware/dirac-repl]
                             :port 8231
                             :init (do
                                     (require 'dirac.agent)
                                     (dirac.agent/boot!))}}

Internal Dirac Error: DevTools code has thrown an unhandled exception

Hi all, I've been getting this strange error... any ideas?

Internal Dirac Error: DevTools code has thrown an unhandled exception
Dirac v0.6.7, Chrome/55.0.2880.0, Mac/10.11.6, Backend API/external (456 registrations), Backend CSS/external (405 definitions)
TypeError: Cannot read property '0' of null
    at $cljs$reader$read_keyword$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4911:394)
    at $cljs$reader$read_delimited_list$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4901:1717)
    at $cljs$reader$read_map$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4906:107)
    at $cljs$reader$read_delimited_list$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4901:1717)
    at $cljs$reader$read_map$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4906:107)
    at $cljs$reader$read_delimited_list$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4901:1717)
    at $cljs$reader$read_map$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4906:107)
    at $cljs$reader$read_delimited_list$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4901:1717)
    at $cljs$reader$read_map$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4906:107)
    at $cljs$reader$read$$ (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:4917:2441)

Compliant to 1.9.0-alpha11 spec for (ns (:require))

Hi,

1.9.0-alpha11 includes spec for (ns ...) macro, which only allows keywords, not symbols for ns clauses. Would you include the fix in the next release?

Good news is only three (ns .. (:require)) in these files to be changed.

dirac/lib/nrepl_tunnel.clj
dirac/agent/config.clj
dirac/nrepl/config.clj

Tested OK with a local copy. Btw, figwheel-0.5.5 requires 1.9.0 spec now, and wish people can use them together.

Thanks!

Assist with core.async debugging

I can imagine implementing "core.async" sidebar pane on Sources panel.

When stopped on a breakpoint this pane would list all existing go blocks and their state (running/how they are parked). One could click on them to see the source code location where given go block is being parked.

Another feature could be better presentation of channels. Custom formatter could display all pending puts and takes on given channel, also it could display state of associated buffer.

This would require a fork of core.async with added debugging capabilities.

in-ns issues

Hi,

I noticed in-ns doesn't seem to be working anymore. It used to be working, but I can't remember when I used it last time.

I did a git clone dirac-sample project to reproduce it. Here is the screenshot.

  • require, then in-ns to dirac-sample.demo. but hello! gave 'call' of undermined.
  • eval a simple expression, ns switched back cljs.user in the prompt.

screen shot 2016-10-24 at 5 09 34 pm

Dirac disconnects when inspecting DOM elements.

Hi all, first off awesome work on this tool. I'm having a bit of an issue where the Dirac tool will disconnect if I inspect an element in the browser, it appears that the issue is from another dev tools being opened up in Chrome. Is there any resolution to this issue.

(Sorry if this is a duplicate, I looked in the closed issues from something similar).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.