Giter Club home page Giter Club logo

lighttable's Introduction

Light Table

Build Status Build Status Build status CircleCI codecov

Packaging status

Join the chat at https://gitter.im/LightTable/LightTable Code Shelter

Light Table is a next generation code editor that connects you to your creation with instant feedback. Light Table is very customizable and can display anything a Chromium browser can.

This is a development branch and is not clean like master and can have many breakages.

Downloads

Prebuilt binaries are available through lighttable.com. To build and use a developer version of Light Table see these instructions.

For OSX users, the install process involves the following steps until we officially sign our OSX App:

  • In Finder, Ctrl-click on LightTable.app/ and select Open.
  • When you see this prompt about LightTable being unidentified, click Open.
  • If Ctrl-click doesn't work for you, open System Preferences > Security & Privacy > General, temporarily change "Allow apps downloaded from:" to Anywhere and double click on LightTable.app.

Documentation

Plugins

Light Table has a powerful plugin system that allows almost any aspect of the editor to be extended and customized. With over 100+ plugins, the community is able to offer eval support for new languages, create domain-specific IDEs and much more. If you're interested in writing your own plugin, see the Write a Plugin and Submit a Plugin docs. For an example ClojureScript plugin, see LightTable-Declassifier.

Community

Want to ask a question or just say hi? Please do :). Our mailing list is the Light Table Google group. We also hang out in #lighttable on Freenode IRC.

For Developers

LightTable is primarily written in ClojureScript. If you aren't familiar with it, check out David Nolen's tutorial.

In order to develop for Light Table, you will need to install a developer version of Light Table. For more information, read CONTRIBUTING.md and For Developers.

License

All files in this project are under the LICENSE.md license unless otherwise stated in the file or by a dependency's license file.

Credits

Big thanks to all our contributors! Thanks of course to Kodowa for all they have done for Light Table and also to Cognitect for providing friday contributions for one of the core team members.

lighttable's People

Contributors

ahoffer avatar benjaminvanryseghem avatar bost avatar brabadu avatar can3p avatar cldwalker avatar cndreisbach avatar efuquen avatar gozala avatar gunnarahlberg avatar ibdknox avatar jamii avatar joneshf avatar joshuafcole avatar kenny-evitt avatar martinchooooooo avatar mihneadb avatar mikeinnes avatar morgawr avatar mortalapeman avatar ngaffney avatar piyush0101 avatar prertik avatar remyleone avatar rundis avatar sbauer322 avatar seancaffery avatar snufkon avatar statesside avatar teachmefly 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  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

lighttable's Issues

Mac jar launcher doesn't work

Hi. The Curl method worked, but now that you've got a JAR, it doesn't launch a window & I don't know where to point a brewer window. I deleted the .lighttable and relaunched. Same thing. It says it's starting... But thats all folks.

Error when starting server

I just fetched the 0.0.7 code from a totally fresh environment (no .lighttable dir). An error occurred after the "Fetching..." step, and the subsequent "Starting server..." stage didn't seem to do anything at all (it just hung there).

Here's the full log of what happened:


PS Y:> .\light table
Creating Y:.lighttable...

Directory: Y:\

Mode LastWriteTime Length Name


d---- 7/9/2012 12:24 PM .lighttable

Directory: Y:\.lighttable

Mode LastWriteTime Length Name


d---- 7/9/2012 12:24 PM settings
d---- 7/9/2012 12:24 PM bin
d---- 7/9/2012 12:24 PM pids
d---- 7/9/2012 12:24 PM temp
d---- 7/9/2012 12:24 PM logs
Fetching version: 0.0.7...
You cannot call a method on a null-valued expression.
At Y:\light.ps1:55 char:42

  • $destination.Copyhere($zip_file.items <<<< (), 20)
    
    • CategoryInfo : InvalidOperation: (items:String) [], RuntimeException
    • FullyQualifiedErrorId : InvokeMethodOnNull

Starting server... (this takes several seconds)

HasMoreData : True
StatusMessage :
Location : localhost
Command : java -jar $input prod
JobStateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : 63ec0191-a0d3-4ee6-a2dc-20cbd94e87a0
Id : 1
Name : lighttable
ChildJobs : {Job2}
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
State : Running

Clash with earlier FS Version

Hi,

The lein-light plugin clashed with the FS version my project was using (1.0.0). Error:

Caused by: java.lang.RuntimeException: No such var: fs/cwd
at clojure.lang.Util.runtimeException(Util.java:170)
at clojure.lang.Compiler.resolveIn(Compiler.java:6789)

I managed to bypass the error by upgrading my projects FS version to 1.2.0. It would be nice if the light plugin didn't clash with the projects libs.

Still all looking good at this early stage.

Doesn't like my home dir (mac)

My home path contains a space, so light does not know where to put it's config file. I tried exporting $HOME with the space escaped, but that didn't do the trick. I'm not really too keen on playing around with changing the location of my home directory or symlinking it or something like that, so hopefully this gets a fix. Thanks!

Nohup fails on osx when using tmux

I use tmux in osx terminal, and when I run light table my server.log says: nohup: can't detach from console: Inappropriate ioctl for device

Problem with Set and Font Size

I ran the updated LightTable 0.0.7 Playground on my 10.6 OSX Intel Mac and everything worked fine, and I decided to test changing the font size. I could change up and down no problem, but when I went to the size after the smallest that would be displayed, it reset to the default size. No qualms with that particular feature. The problem is that now I cannot change the font size at all, clicking on the + and - buttons does nothing for me. I was just closing (rather stupidly) the Terminal window I had run it from when I noticed two errors had been written to the window. Unfortunately I clicked close before I could read them, but they might have mentioned something about 'fi', I'm sorry :( I have tried re-downloading, re-updating and restarting the server, none of which have seemed to work, the + and - buttons still do not work, but no errors are being output either. The only thing I haven't tried is restarting my computer.

Light table has no way of showing recursive proceses.

One of the most important things such an interactive IDE such as light table can have, especially when dealing with functional programming languages such as clojure is a way of showing recursive processes (yes I read SICP and it's awsome)

A way I suggest showing recursive processes is demonstrated on this website (roll over the text):
http://community.schemewiki.org/?sicp-ex-1.10

The only problem is that it won't work for functions that output complex data such as HTML or nested record structures.

java.lang.StackOverflowError on Windows

I'm a first time LT user, knowing nothing about clojure or javascript. Being very intrigued by the videos I downloaded LT and tried a couple of things. In short order I seemed to have broken it. :-/ Now when I start LT there is an error, "java.lang.StackOverflowError", at the bottom left of the screen, and the right side remains blank. Pressing Ctrl-D and Ctrl-R do not resolve the error. I haven't tried to reboot or anything liket that, having other stuff working in the background.

This is the console log starting the server:

Fetching version: 0.0.6...
Starting server... (this takes several seconds)

HasMoreData   : True
StatusMessage :
Location      : localhost
Command       :  java -jar $input prod
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 278ab641-4a6a-4a14-ba85-d12fbdf9c705
Id            : 1
Name          : lighttable
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
State         : Running

Server is running!

And this is what I think I did to break it:

(defn + [a b]
   (+ a b))

(+ 3.14 14.3)

Questions:

  1. How does one stop the server completely?
  2. How do I back out of the hole I built?

Can't download upgrade from PowerShell

After invoking: .\light table, I get this exception report from PowerShell (Windows 7 Home Premium, 64-bit):

Found a new version: 0.0.7
Updating C:\windows\system32\light.ps1...
Exception calling "DownloadFile" with "2" argument(s): "An exception occurred during a WebClient request."
At C:\windows\system32\light.ps1:28 char:28

  • $webclient.DownloadFile <<<< ($url,$file)
    
    • CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    • FullyQualifiedErrorId : DotNetMethodException

This message keeps repeating until I terminate the script with Ctrl-c.

Problem with multimethods

Please check out this code in LightTable:

(defn dispatch-updates [entity-type & _] entity-type)

(defmulti updates dispatch-updates)

(defmethod updates :default [entity-type context known-versions & uids]
:anything-else
)

(defmethod updates :Edition [entity-type context known-versions & uids]
:asking-for-a-single-edition
)

(updates :Edition nil nil)

Results in

defn dispatch-updates [entity-type & _] entity-type)

(defmulti updates dispatch-updates)|| => nil||

(defmethod updates :default [entity-type context known-versions & uids]
:anything-else
)|| => clojure.lang.MultiFn@4f3e9f6f||

(defmethod updates :Edition [entity-type context known-versions & uids]
:asking-for-a-single-edition
)|| => clojure.lang.MultiFn@4f3e9f6f||

(updates :Edition nil nil)|| => :anything-else||

However, the call to (updates :Edition nil nil) should result in (and it does in any other Clojure 1.3 REPL) :asking-for-a-single-edition.

Noir can't seem to find the app.

After starting the service on a Windows 8 machine I'm getting the following error:
We seem to have lost that one.

Since we couldn't find the page you were looking for, check to make sure the address is correct.

NOTE: Previous version of playground had worked on Windows 8.

logs and settings folders are empty.

Binding deconstructing bug in live eval pane

Type the following lines to see the bug:

(def board [[:x :o :x] [:o :x :o] [:o :x :o]])    

(defn center [[_ [_ c _] _]] c) 

(center board) 

In live eval pane, 2nd line, the first element still showed up even though it should be ignored.

(defn center [[[:o :x :o] [_ :x _] _]] :x)  ---> first element in vector should be _

Doesn't launch (Windows 7 64bit)

After running the powershell command (in 32 bit shell), it seems to be 'processing' but nothing ever loads or is launched. It shows the process as running in powershell, but nothing else.

How about some instructions or documentation on what we should see/expect or the exact steps to follow in case this is an ID10T user issue?

Leiningen doesn't recognize light as a task

I created a project by entering "lein new app my-new-app", then I "cd" into the project directory, and type "lein light". Leiningen comes back with: "light is not a task. Use "lein help" to list all tasks." I am using Leiningen 2 and my profile.clj has the lein-light plugin definition.

Windows 7 64bit, Light Table Playground v0.0.8, Leiningen 2 Preview 7

0.0.7 Upgrade on Windows: We seem to have lost that one

After the 0.0.7 upgrade on Windows, a browser window for localhost:8833 opens with the Noir 404 message. I also tried removing ~/.lighttable and downloading again, same issue. Have not tried on Mac yet.

64-bit Windows 7

PS C:\Users\rathwell> java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode, sharing)

broken formatting in instarepl live eval pane

when entering this code:

(def x 1)
x
(def x "hello")

the live eval pane updates to this:

(def 1 1)
x
(de => 1f "hello" "hello")

instead of the expected:

(def 1 1)
x => 1
(def "hello" "hello")

This bug still exists in version 0.2.0 (Linux 64-bit)

(refer-clojure :exclude

Hello,
If I use the command lein repl from a command prompt on Mac OS X 10.7.4, and if my first command at the REPL prompt is (refer-clojure :exclude [==]), the command works correctly. If instead I have used lein light, and then connected to Light Table, when I input (refer-clojure :exclude [==]) into the instant REPL, I get the following

(refer-clojure :exclude [==]) => java.lang.RuntimeExecption: Can't take value of a macro: #'clojure.core.logic/==, compiling: (NO_SOURCE_PATH:1:2)

As a little bit of extra information the project.clj file for this toy project has the following:

(defproject SUDOKU_CLOJURE "0.01"
:description "My superduper SUDOKU solver."
:dependencies [[org.clojure/clojure "1.4.0"]
[org.clojure/core.logic "0.7.3"]
[org.clojure/math.combinatorics "0.0.2"]])

Scrolling is broken on MacOS

After filling up the screen the editor scrolls down a page. Using the mouse wheel to scroll then results in the editor getting two scrollbars:

Scrollbars

Umlauts stops evalutation

When i have umlauts in my buffer, evaulation (automatic and manual) stops working.
I don't even get an error message.

The strange thing is that this works:

(println "This is a text ಠ_ಠ")

But this does not:

(println "And some other text åäö")

It doesn't have to be in a string, anywhere in the buffer (even comments) yields the same result.

Cannot load namespaces from project using lein light

First, what an awesome project!

So, the jar-based launcher works, and then in my project directory I can do lein light and get a "Connected." I can then go to the GUI and click "Connect" and select my project (although nothing indicates whether this succeeded). However, if I try to browse namespaces in my project I get:

(keys (ns-publics 'Newton.core)) => No namespace: Newton.core found

Here's what I get from the repl:

PS C:\Projects\CDT\Newton> lein repl
All namespaces already :aot compiled.
nREPL server started on port 50543
REPL-y 0.1.0-beta8
Clojure 1.4.0
Exit: Control+D or (exit) or (quit)
Commands: (user/help)
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
(user/sourcery function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Examples from clojuredocs.org: [clojuredocs or cdoc](user/clojuredocs name-here)
(user/clojuredocs "ns-here" "name-here")

Newton.core=> (keys (ns-publics 'Newton.core))
(-main)
Newton.core=> exit
Bye for now!
PS C:\Projects\CDT\Newton> lein light
All namespaces already :aot compiled.
Connected.

So, it doesn't look as if the project actually loaded, or I'm not understanding something.

Here are some relevant details on the OS/VM:

PS C:\Projects\CDT\Newton> java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

PS C:\Projects\CDT\Newton> [System.Environment]::OSVersion.Version

Major Minor Build Revision


6 2 8400 0

PS C:\Projects\CDT\Newton> (Get-WmiObject -class Win32_OperatingSystem).Caption
Microsoft Windows 8 Release Preview

Thanks again for such a cool project!

No evaluation screen?

I don't see the result of evaluation on the right hand - it is just empty (or so it seems).

Protocol impls don't work

(defprotocol tester
  (cool [this]))

(defrecord hey [a]
  tester
  (cool [this] (println a)))

protocol implementations bomb out for some reason:

java.lang.ClassCastException: clojure.lang.Var cannot be cast to java.lang.Class, compiling:(NO_SOURCE_PATH:4:2)

Light Table Launcher should say which port the server is running on

I am running Chromium, Ubuntu 12.04 LTS and have just executed the jar with:

$ /path/to/jre1.7.0_04/bin/java -jar ./launcher.jar 

The "Light Table Launcher" window pops up with some text:

:: Light Table Playground ::

Creating ~/.lighttable/bin
Creating ~/.lighttable/settings/
Checking for new version...
Fetching version 0.0.8   [=================]
Starting server...

Server started. Let's do this.

(close this to stop the server)

That window doesn't tell me where to point the browser. Nor does a browser window open pointing to the server.

Output on the console is:

Connected.
Server started.
Exception in thread "main" java.lang.UnsupportedOperationException: Desktop API is not supported on the current platform
    at java.awt.Desktop.getDesktop(Unknown Source)
    at launcher.core$fn__76.invoke(core.clj:166)
    at clojure.lang.MultiFn.invoke(MultiFn.java:163)
    at launcher.core$_main.invoke(core.clj:187)
    at clojure.lang.AFn.applyToHelper(AFn.java:159)
    at clojure.lang.AFn.applyTo(AFn.java:151)
    at launcher.core.main(Unknown Source)
CONNECTING:  local
CONNECTING:  nil
DISCONNECTED HUB

Can't launch on 32bit macs

As a commenter on the HN announce thread mentioned, Light Table crashes on launch with an error about an incorrect executable format on 32bit-only macs. Those of us still on these machines are probably quite an edge case, but fwiw here's the install log

curl -s -O https://s3.amazonaws.com/temp2.kodowa.com/playground/light && chmod +x light && ./light table

 --- Creating ~/.lighttable 
 --- Fetching latest... 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18.5M  100 18.5M    0     0  1933k      0  0:00:09  0:00:09 --:--:-- 2141k
 --- Checking for updates... 
 --- Starting server... (this takes several seconds) 
 --- Server up! 
The application cannot be opened because it has an incorrect executable format.

and quick confirmation that the bitness is the problem:

file ~/.lighttable/bin/Light\ Table.app/Contents/MacOS/Light\ Table

/Users/aberghage/.lighttable/bin/Light Table.app/Contents/MacOS/Light Table: Mach-O 64-bit executable x86_64

Server is down?

I tried starting ./light table and it stopped at "Waiting for Server".

I then removed ~/.lighttable and pulled fresh:

~/bin> curl -s -O http://temp2.kodowa.com/playground/light && chmod +x light && ./light table

 --- Creating ~/.lighttable 
 --- Fetching latest... 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18.5M  100 18.5M    0     0   910k      0  0:00:20  0:00:20 --:--:--  880k
 --- Checking for updates... 
 --- Starting server... (this takes several seconds)

Can't download behind a poxy

The installer can't download, i am behind a proxy but i have set the HTTP_PROXY
and also set it in the Java Runtime but it do not help.
/Anders

Fails to start on Ubuntu & Chrome

$ light table
--- Checking for updates...
--- Starting server... (this takes several seconds)
nohup: redirecting stderr to stdout
--- Server up!
--- Starting Chrome
Created new window in existing browser session.

I get a blank window in Chrome, constantly loading.
I stopped the server and started it again a few times, sometimes I get a plain text page with some code, I'm assuming it's a broken default screen.

Cannot start the server

Exception in thread "main" java.lang.IllegalStateException: Can't change/establish root binding of: warn-on-reflection with set (compiler.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5435)
at clojure.lang.Compiler.load(Compiler.java:5852)
at clojure.lang.RT.loadResourceScript(RT.java:340)
at clojure.lang.RT.loadResourceScript(RT.java:331)
at clojure.lang.RT.load(RT.java:409)
at clojure.lang.RT.load(RT.java:381)
at clojure.core$load$fn__4504.invoke(core.clj:4893)
at clojure.core$load.doInvoke(core.clj:4892)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at clojure.core$load_one.invoke(core.clj:4717)
at clojure.core$load_lib.doInvoke(core.clj:4754)
at clojure.lang.RestFn.applyTo(RestFn.java:143)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_libs.doInvoke(core.clj:4788)
at clojure.lang.RestFn.applyTo(RestFn.java:138)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$require.doInvoke(core.clj:4857)
at clojure.lang.RestFn.invoke(RestFn.java:422)
at noir.cljs.compiler$eval1959$loading__4403__auto____1960.invoke(compiler.clj:1)
at noir.cljs.compiler$eval1959.invoke(compiler.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5419)
at clojure.lang.Compiler.eval(Compiler.java:5410)
at clojure.lang.Compiler.load(Compiler.java:5852)
at clojure.lang.RT.loadResourceScript(RT.java:340)
at clojure.lang.RT.loadResourceScript(RT.java:331)
at clojure.lang.RT.load(RT.java:409)
at clojure.lang.RT.load(RT.java:381)
at clojure.core$load$fn__4504.invoke(core.clj:4893)
at clojure.core$load.doInvoke(core.clj:4892)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at clojure.core$load_one.invoke(core.clj:4717)
at clojure.core$load_lib.doInvoke(core.clj:4754)
at clojure.lang.RestFn.applyTo(RestFn.java:143)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_libs.doInvoke(core.clj:4788)
at clojure.lang.RestFn.applyTo(RestFn.java:138)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$require.doInvoke(core.clj:4857)
at clojure.lang.RestFn.invoke(RestFn.java:483)
at noir.cljs.core$eval1953$loading__4403__auto____1954.invoke(core.clj:1)
at noir.cljs.core$eval1953.invoke(core.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5419)
at clojure.lang.Compiler.eval(Compiler.java:5410)
at clojure.lang.Compiler.load(Compiler.java:5852)
at clojure.lang.RT.loadResourceScript(RT.java:340)
at clojure.lang.RT.loadResourceScript(RT.java:331)
at clojure.lang.RT.load(RT.java:409)
at clojure.lang.RT.load(RT.java:381)
at clojure.core$load$fn__4504.invoke(core.clj:4893)
at clojure.core$load.doInvoke(core.clj:4892)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at clojure.core$load_one.invoke(core.clj:4717)
at clojure.core$load_lib.doInvoke(core.clj:4754)
at clojure.lang.RestFn.applyTo(RestFn.java:143)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_libs.doInvoke(core.clj:4788)
at clojure.lang.RestFn.applyTo(RestFn.java:138)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$require.doInvoke(core.clj:4857)
at clojure.lang.RestFn.invoke(RestFn.java:636)
at lighttable.server$eval3$loading__4403__auto____4.invoke(server.clj:1)
at lighttable.server$eval3.invoke(server.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5419)
at clojure.lang.Compiler.eval(Compiler.java:5410)
at clojure.lang.Compiler.load(Compiler.java:5852)
at clojure.lang.RT.loadResourceScript(RT.java:340)
at clojure.lang.RT.loadResourceScript(RT.java:331)
at clojure.lang.RT.load(RT.java:409)
at clojure.lang.RT.load(RT.java:381)
at clojure.core$load$fn__4504.invoke(core.clj:4893)
at clojure.core$load.doInvoke(core.clj:4892)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at clojure.core$load_one.invoke(core.clj:4717)
at clojure.core$load_lib.doInvoke(core.clj:4754)
at clojure.lang.RestFn.applyTo(RestFn.java:143)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_libs.doInvoke(core.clj:4788)
at clojure.lang.RestFn.applyTo(RestFn.java:138)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$require.doInvoke(core.clj:4857)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at clojure.lang.Var.invoke(Var.java:365)
at lein_otf.loader.Stub.main(Stub.java:31)
Caused by: java.lang.IllegalStateException: Can't change/establish root binding of: warn-on-reflection with set
at clojure.lang.Var.set(Var.java:167)
at noir.cljs.compiler$eval1963.invoke(compiler.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:5419)
... 82 more

how do I get light table to show the data flowing through existing fns?

First, this is all very cool. Installation was straightforward. My question is this: I have an existing project with a bunch of code. I can execute the functions in that project and they run fine. But I would like to be able to see the data flowing through a particular function when I execute it. It seems like the only way this works is if the function is defined at the light table instarepl. Is there some way I can tell light table to show me the data flowing through an existing function that wasn't defined at the instarepl?

If I copy the function out of my source file and paste it into the light table instarepl, it doesn't complain, but it doesn't show me the data flowing through it either. It seems like I have to define a unique function at the instarepl for the data to be shown.

Thanks!

lein-light throws an exception when :eval-in-leiningen is set to true

When I run lein light in a project with :eval-in-leiningen true, in the project.clj file, I get an IllegalArgumentException.

java.lang.IllegalArgumentException: Unable to resolve classname: IPersistentMap, compiling:(NO_SOURCE_PATH:0)

Steps:

  1. Create a new lein plugin with lein new plugin test1
  2. Change current directory to test1
  3. Run lein light

Ubuntu Desktop 12.04
Leiningen 2.0.0-preview7 on Java 1.6.0_24 OpenJDK 64-Bit Server VM

Check for `$BROWSER` and `xdg-open`

Before testing for either google chrome or firefox on linux, check the $BROWSER variable. If it's an URL, you can also use xdg-open afterwards, before chrome/firefox.

code formatting does not update in live eval pane once changed

first type

(defn size [v]   (if (empty? v)     0     (inc (size (rest v))))) (size [1 2 3]) 

press enter

now change it to

 (defn size [v]   
 (if (empty? v)     
 0     
 (inc (size (rest v))))) 
(size [1 2 3]) 

press enter

now in live eval pane the formatting for the code did not change to reflect changes

Does lein-light load changes made externally?

When I connect to a project to Light Table through lein-light, I can execute functions from the project. But if I make a change (add a new function) to the project using an IDE, Light Table doesn't load it.

Infinite lazy-seqs cannot be handled inside functions

Platform: Windows
Version: 0.0.8

Had a hell of a time reducing this but it's probably sufficiently small now. When you try to process infinite lazy-seqs in Light Table, the process never finishes. Here is an example.

(defn inf-seq [n] (lazy-seq (cons n (inf-seq n))))

(first (inf-seq 1))  ;; This is OK.

(defn process-seq [s] (first s))
(process-seq (inf-seq 1))  ;; This never terminates.

It works fine when I run it in Eclipse's Clojure REPL. The problem is not unique to first. It also happens when you try to loop.

Can't connect to project running lein-light from light table

The light table server is up. I run "lein light" in project directory and it states "Connected.". I can see the project in the light table menu but clicking on it just closes the menu and nothing happens. I tried it with several different projects with the same result.
The light table log file contains only "CONNECTING: myproject 1.0.0".

When the lein light is shut down light table reports this error to log:
DISCONNECTED HUB
Jul 9, 2012 10:54:26 PM sun.reflect.NativeMethodAccessorImpl invoke0
SEVERE: Error in close callback
java.lang.IllegalArgumentException: No implementation of method: :consumer of protocol: #'lamina.core.channel/ChannelProtocol found for class: nil
at clojure.core$cache_protocol_fn.invoke(core_deftype.clj:529)
at lamina.core.channel$eval4958$fn__4959$G__4949__4964.invoke(channel.clj:20)
at lamina.core.channel$enqueue.doInvoke(channel.clj:136)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at lighttable.wire$send_STAR
.invoke(wire.clj:19)
at lighttable.wire$command.invoke(wire.clj:25)
at lighttable.hub.clients$on_message$fn__11535.invoke(clients.clj:20)
at lamina.core.seq$receive_all$fn__5268$fn__5273$fn__5282.invoke(seq.clj:141)
at lamina.core.observable$observer$reify__4332.on_close(observable.clj:49)
at lamina.core.observable.Observable.close(observable.clj:136)
at lamina.core.observable$siphon$fn__4617$fn__4621.invoke(observable.clj:246)
at lamina.core.observable$observer$reify__4332.on_close(observable.clj:49)
at lamina.core.observable.Observable.close(observable.clj:136)
at lamina.core.channel$close.invoke(channel.clj:154)
at gloss.io$decode_channel$fn__8415$fn__8416.invoke(io.clj:157)
at lamina.core.pipeline$start_pipeline$fn__5119$fn__5137.invoke(pipeline.clj:208)
at lamina.core.pipeline$start_pipeline$fn__5119.invoke(pipeline.clj:207)
at lamina.core.pipeline$start_pipeline.invoke(pipeline.clj:164)
at lamina.core.pipeline$start_pipeline$fn__5119$fn__5123$f__5054__auto____5125$fn__5126.invoke(pipeline.clj:196)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1773)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at lamina.core.pipeline$start_pipeline$fn__5119$fn__5123$f__5054__auto____5125.invoke(pipeline.clj:188)
at lamina.core.pipeline$start_pipeline$fn__5119$fn__5123.invoke(pipeline.clj:33)
at lamina.core.queue$r_obs$fn__4931.invoke(queue.clj:287)
at lamina.core.observable$observer$reify__4332.on_message(observable.clj:43)
at lamina.core.observable.ConstantObservable.message(observable.clj:203)
at lamina.core.channel$enqueue.doInvoke(channel.clj:136)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at lamina.core.channel$poll$callback__5024$fn__5025$fn__5026.invoke(channel.clj:213)
at lamina.core.queue$l_obs$fn__4935.invoke(queue.clj:293)
at lamina.core.observable$observer$reify__4332.on_message(observable.clj:43)
at lamina.core.observable.ConstantObservable.message(observable.clj:203)
at lamina.core.channel$enqueue.doInvoke(channel.clj:136)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at lamina.core.pipeline$success_BANG_.invoke(pipeline.clj:87)
at lamina.core.pipeline$read_channel$fn__5192.invoke(pipeline.clj:335)
at lamina.core.queue$r_obs$fn__4931.invoke(queue.clj:287)
at lamina.core.observable$observer$reify__4332.on_message(observable.clj:43)
at lamina.core.observable.ConstantObservable.message(observable.clj:203)
at lamina.core.channel$enqueue.doInvoke(channel.clj:136)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at lamina.core.channel$poll$callback__5024$fn__5025$fn__5026.invoke(channel.clj:213)
at lamina.core.queue$send_to_callbacks.invoke(queue.clj:227)
at lamina.core.queue.EventQueue.enqueue(queue.clj:93)
at lamina.core.queue$setup_observable__GT_queue$fn__4918.invoke(queue.clj:237)
at lamina.core.observable$observer$reify__4332.on_close(observable.clj:49)
at lamina.core.observable.Observable.close(observable.clj:136)
at lamina.core.observable$siphon$fn__4617$fn__4621.invoke(observable.clj:246)
at lamina.core.observable$observer$reify__4332.on_close(observable.clj:49)
at lamina.core.observable.Observable.close(observable.clj:136)
at lamina.core.channel$close.invoke(channel.clj:154)
at lamina.core.seq$copy$close_callback__5333.invoke(seq.clj:236)
at lamina.core.queue$check_for_drained.invoke(queue.clj:218)
at lamina.core.queue$send_to_callbacks.invoke(queue.clj:228)
at lamina.core.queue.EventQueue.enqueue(queue.clj:112)
at lamina.core.queue$setup_observable__GT_queue$fn__4918.invoke(queue.clj:237)
at lamina.core.observable$observer$reify__4332.on_close(observable.clj:49)
at lamina.core.observable.Observable.close(observable.clj:136)
at lamina.core.observable$siphon$fn__4617$fn__4621.invoke(observable.clj:246)
at lamina.core.observable$observer$reify__4332.on_close(observable.clj:49)
at lamina.core.observable.Observable.close(observable.clj:136)
at lamina.core.channel$close.invoke(channel.clj:154)
at aleph.tcp$basic_server_pipeline$fn__9597.invoke(tcp.clj:83)
at aleph.netty$channel_close_stage$fn__8123.invoke(netty.clj:155)
at aleph.netty$upstream_stage$reify__8106.handleUpstream(netty.clj:120)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:792)
at aleph.netty$upstream_stage$reify__8106.handleUpstream(netty.clj:122)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:792)
at aleph.netty$upstream_stage$reify__8106.handleUpstream(netty.clj:122)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:792)
at aleph.netty$upstream_stage$reify__8106.handleUpstream(netty.clj:122)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:792)
at aleph.netty$upstream_stage$reify__8106.handleUpstream(netty.clj:122)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireChannelDisconnected(Channels.java:399)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.close(AbstractNioWorker.java:616)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:101)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:372)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:246)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Ctrl+L shortcut not working on Firefox or Chromium

I'm using Chromium 18 and Firefox 13 with Light Table 0.0.8 on Linux Mint 12.

The shortcut Ctrl+D works on both of these browsers, but the shortcut Ctrl+L doesn't work for either of them. Instead it exhibits the default behavior for both browsers, which is moving the focus to the address bar.

Chromium and Firefox are not using any extensions or plugins.

OSX install recommendations

Hello

I'm a casual light table user, I want a simple way to start up light table so that it feels like a normal app.

Just wondering what you recommend for setting up Light Table Playground on OSX. The launcher.jar works just fine. It feels like the best way to make it "normal" would be to copy launcher.jar into the /Applications folder but perhaps there's a better way.

What do you recommend? Am I missing something.

cheers, Oliver

Ubuntu 12.04 Exception (Desktop API)

When running on Ubuntu 12.04, I get the following exception when running the launcher:

Exception in thread "main" java.lang.UnsupportedOperationException: Desktop API is not supported on the current platform
at java.awt.Desktop.getDesktop(Desktop.java:126)
at launcher.core$fn__76.invoke(core.clj:166)
at clojure.lang.MultiFn.invoke(MultiFn.java:163)
at launcher.core$_main.invoke(core.clj:187)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.AFn.applyTo(AFn.java:151)
at launcher.core.main(Unknown Source)

I can't seem to start the browser manually because there is no server running on any port that I can connect to with the browser. Is there a way to connect to it manually?

Some errors are reported differently and stop evaluation

When I entered the invalid expression (defn x 1), the auto evaluation pane on the right did not report anything. Any valid code entered after this would not be evaluated either.

After trying the same expression in another REPL it gave the error: Don't know how to create ISeq from: java.lang.Long

I then noticed the same message at the bottom of the left pane in light table. I am not sure if this is the intended behavior for this error, but it was not what I expected. I had expected to see all errors in the right pane. It took a while to notice and figure this out.

I am using light table to learn clojure so I do a lot of silly things with it like that above.

Syntax highlighting breaks on \" (the double-quote char literal)

Here are a few examples to demonstrate the way Clojure actually evaluates these forms:

(str \" \a \b \c \")
;= "\"abc\""

(println (str \" \a \b \c \"))
; "abc"
;= nil

(println (str "abc"))
; abc
;= nil

(println (str \" "abc" \"))
; "abc"
;= nil

Here's a screenshot of Light Table's behavior.

Anyway, great job on Light Table! It's already fun to use, and I'm pumped to see what the future has in store.

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.