chlorine-clover

About Chlorine for Atom and Clover for VS Code: https://atom.io/packages/chlorine and https://marketplace.visualstudio.com/items?itemName=mauricioszabo.clover
roklenarcic 2019-09-05T12:18:09.072800Z

hey, in the keybinding section you suggest 'ctrl-, y': 'chlorine:connect-clojure-socket-repl' for non-vim users

roklenarcic 2019-09-05T12:18:24.073200Z

but I don't seem to be able to activate ctrl-, y

roklenarcic 2019-09-05T12:18:55.073900Z

is this supposed to be control plus y key straight up or some other thing

2019-09-05T12:20:56.074800Z

if you're on windows or linux, ctrl-, will probably show settings -- the recommendation in the README was recently modified to suggest ctrl-; as a prefix. does that work any better for you?

roklenarcic 2019-09-05T12:21:40.075700Z

oh it's control + , then y

roklenarcic 2019-09-05T12:21:54.076100Z

not it works fine now, I just found the format confusing

roklenarcic 2019-09-05T12:22:06.076600Z

I wasn't sure what the actual sortcut was

2019-09-05T12:22:15.076900Z

fwiw, i believe that's the atom folks' doing πŸ™‚

roklenarcic 2019-09-05T12:39:40.077600Z

A quick question, when I connect to repl I don't get a console

roklenarcic 2019-09-05T12:39:53.078Z

only a quick mention that it was successfully connected

roklenarcic 2019-09-05T12:54:07.078300Z

is there some sort of plugin I might be missing?

2019-09-05T13:10:07.078700Z

i think one thing that chlorine uses is ink -- do you have that? https://github.com/JunoLab/atom-ink

roklenarcic 2019-09-05T13:37:39.079500Z

yeah

roklenarcic 2019-09-05T13:53:52.080400Z

which plugins are you using?

2019-09-05T13:55:00.081Z

apparently, this is what is in my ~/.atom/packages:

asciidoc-preview  atomic-management  chlorine            ink             language-swift  linter-ui-default  parinfer            set-syntax      web-view
atom-browser      atom-ide-terminal  hasklig             intentions      linter          lisp-paredit       rainbow-delimiters  structure-view
atom-file-icons   busy-signal        highlight-selected  keymap-control  linter-joker    minimap            restart-atom        terminal-tab

2019-09-05T13:57:49.082500Z

I just tried out chlorine last night and had/have both of these issues as well

2019-09-05T13:57:53.082600Z

fwiw, iiuc, chlorine's console isn't something you can type into.

roklenarcic 2019-09-05T13:58:18.083100Z

I mean there's no console window period

mauricio.szabo 2019-09-05T13:58:52.084500Z

Okay, which OS are you using, and which Atom version?

2019-09-05T13:59:22.086Z

(on Linux but chromeOs crostini vm which uses Debian I think)

roklenarcic 2019-09-05T13:59:28.086300Z

latest Atom downloaded today, macOS

mauricio.szabo 2019-09-05T14:00:24.087100Z

Okay, I'll update my Atom editor and start a "clean" version of the editor and see if I can reproduce

2019-09-05T14:01:06.087800Z

Latest here as well, away from computer now but can get exact version in a little bit

roklenarcic 2019-09-05T14:02:39.089300Z

I installed atom, chlorine, ink and then I connected to socket repl, but no console/terminal appears

mauricio.szabo 2019-09-05T14:03:16.089800Z

Is there any info if it was connected or not?

roklenarcic 2019-09-05T14:03:25.090100Z

it said connected

2019-09-05T14:03:30.090300Z

It has the connected popup

mauricio.szabo 2019-09-05T14:25:20.091600Z

Chlorine only needs Ink to work. Maybe some new version of Ink or Atom broke some API, I'll look at it as soon as possible

2019-09-05T14:28:45.093Z

Afaik, I have the latest Atom, Ink and Chlorine. It works, after a bunch of boneheaded newbie missteps πŸ˜‹

2019-09-05T14:32:46.095400Z

I was meaning to ask, though, what other plugins are common along with Chlorine. For editing, etc. Enough old blog posts around to confuse anyone. What’s hip?

mauricio.szabo 2019-09-05T14:39:08.096300Z

I use lisp-paredit and parinfer. As I like VIM bindings, I also use vim-mode-plus but it will not make any difference in editing Clojure

mauricio.szabo 2019-09-05T14:39:49.096800Z

There are people that use rainbow-delimiters too, but I'm colorblind so... Β―\(ツ)/Β―

mauricio.szabo 2019-09-05T14:44:21.098200Z

Okay, I just installed a fresh copy of Atom, now I'm installing Chlorine and Ink using the installer inside Atom. Ink's version is 0.11.0, Chlorine is 0.1.11

mauricio.szabo 2019-09-05T14:44:26.098400Z

And, yes, there's a bug 😞

mauricio.szabo 2019-09-05T14:45:37.098700Z

I'll track it here: https://github.com/mauricioszabo/atom-chlorine/issues/93

mauricio.szabo 2019-09-05T14:47:03.099900Z

There were some integrations tests failing currently on some of my branches, but I was expecting then to fail, so I didn't look at then 😒

2019-09-05T14:52:07.100500Z

Thanks, will check those out!

mauricio.szabo 2019-09-05T14:59:02.101100Z

Okay, it seems that Ink removed the Console API I was using

roklenarcic 2019-09-05T15:32:38.101500Z

is there a way to get an older version of Ink

mauricio.szabo 2019-09-05T15:33:22.101900Z

Yes, you can install with apm install ink@0.10.12.

mauricio.szabo 2019-09-05T15:34:14.102900Z

I opened an issue on Ink page, there's zero documentation on how to use the new API. I think I'll publish a quick-fix right now (the console will be REALLY UGLY for a while) until I find a better way to solve this issue...

roklenarcic 2019-09-05T15:46:22.103300Z

where do I put in this command?

mauricio.szabo 2019-09-05T15:46:56.103900Z

Run on any linux/windows/mac terminal

roklenarcic 2019-09-05T15:47:01.104100Z

ok thanks

roklenarcic 2019-09-05T15:48:13.104500Z

works now πŸ™‚

mauricio.szabo 2019-09-05T15:55:20.107500Z

Great! Some information on this issue, they removed a console API I was using, and the new one doesn't do what I need. It doesn't even use HTML for rendering the text...

2019-09-05T16:30:52.110Z

unrelated, but I've heard people complain here and there about lag in atom, this is my first time playing with it. The lag is very noticeable and I'm pretty sure it's made worse by the fact that I'm in a weird linux VM thing. Do you find the lag in text input noticeable? Do you get used to it? I love the fact that Chlorine is a cljs app and can really see that being worth it to make the switch from emacs, but my first impressions of atom in general are pretty so-so

seancorfield 2019-09-05T16:41:57.110700Z

@jjttjj It shouldn't be noticeable. It may be some setting or plugin you have...

2019-09-05T16:42:50.112600Z

thanks good to know. It's definitely my weird chromeOS+crostini (google's very beta chromeos linux vm) then

2019-09-05T16:43:10.113400Z

(it has rendering issues with other things. strangely not emacs though)

mauricio.szabo 2019-09-05T16:43:45.114300Z

I remember that I did notice the input lag at the beginning, but not anymore (only when I change editor for some reason then go back to Atom).

seancorfield 2019-09-05T16:43:45.114400Z

I wonder if it's because it's trying to provide code assist/insight and your REPL doesn't have compliment as a dependency? I can't remember if that can contribute to lag...

2019-09-05T16:44:52.118200Z

oh interesting. Yeah I probably shouldn't judge anything yet since I only used the now broken version so far but I'll try using the older version of Ink a little later and get compliment going and report back

mauricio.szabo 2019-09-05T16:44:56.118400Z

I don't think it contributes to lag, really. Once I was running Atom inside a VM and I do remember that I had to activate an experimental 3D rendering flag and add more video card memory to the VM, otherwise Atom was pretty unusable inside the VM

2019-09-05T16:45:02.118800Z

Fwiw, I’m on a MacBook Pro with no lag in Atom.

2019-09-05T16:45:41.119500Z

yeah i was also gonna experiment with gpu rendering... I have it on now, but some programs work better with it off

seancorfield 2019-09-05T16:46:36.120500Z

Also, rainbow-delimiters can cause terrible lag in larger files. Just FYI. I've tried it a couple of times (because I like matching colored parens) but I've uninstalled it each time after about a day of use.

seancorfield 2019-09-05T16:47:31.121300Z

I'd also make sure you have the three "refresh" options off in Chlorine's settings (although I believe "off" is the default now?).

mauricio.szabo 2019-09-05T16:48:14.121600Z

Off is the default since the last version

seancorfield 2019-09-05T17:58:20.122200Z

@mauricio.szabo Did you see my comment on that commit in PR 96?

roklenarcic 2019-09-05T18:00:35.122600Z

what should compliment functionality look like?

roklenarcic 2019-09-05T18:00:50.123Z

I only get autocomplete for symbol names and that's it

mauricio.szabo 2019-09-05T18:08:11.123800Z

compliment should complete local vars, symbols on imported namespaces (and on the current namespace, also on clojure.core) and complete keywords too

mauricio.szabo 2019-09-05T18:08:20.124200Z

But it only works for Clojure code (for now)

mauricio.szabo 2019-09-05T18:56:35.125100Z

Ok, published Chlorine version 0.1.12, fixing the Ink console. The console lost some functionality (for now) until I have time to make it as it was previously.

mauricio.szabo 2019-09-05T19:01:30.126700Z

Also, in this version if you enable "Experimental features" on the configs you'll get a preview of the new way of detecting blocks, with everything we discussed here already implemented. So far I didn't found any problems on the code I work with, but it's not extensibly tested (and that's why it's experimental :D)

seancorfield 2019-09-05T19:08:59.127400Z

Thanks @mauricio.szabo! I'll update and work with the experimental stuff this afternoon and report back on my experience!

mauricio.szabo 2019-09-05T19:12:58.128500Z

Great, I'll also keep testing here. So far things seems to be working. I wanted to test a little bit better before the release, but this Ink removal of console caught me off-guard

seancorfield 2019-09-05T19:28:42.129400Z

Are you sure that eval block/top-block change got into the release? So far, every time I've tried to eval block, the entire top-level form is being eval'd...

seancorfield 2019-09-05T19:29:37.130500Z

(and I also realized that I don't use Chlorine's eval functions by default -- I use my inspect functions which I expect still have the old logic for selecting code to eval?)

seancorfield 2019-09-05T19:33:15.131400Z

That was without the experimental features enabled, FYI. With those enabled, eval block seems to work as expected (so far).

mauricio.szabo 2019-09-05T20:01:54.132100Z

Ah, yes, I will publish a new version, that eval-block that you commented on my PR did not enter on this release, my bad

mauricio.szabo 2019-09-05T20:03:59.132400Z

Ok, published 0.1.13

1
mauricio.szabo 2019-09-05T21:50:04.134Z

Also, I'll probably publish another version tomorrow or even today. I just found that my "quick and dirty fix" for Console is not sufficient for multiple workflows that I depend on...

seancorfield 2019-09-05T22:15:44.134800Z

It would be nice to have the inspect functions updated to match the evaluate functions, in terms of detecting blocks.

seancorfield 2019-09-05T22:16:54.136100Z

Also, is this way exposed so that it can be accessed from init.coffee? In case other folks want to roll their own commands based on code blocks?

seancorfield 2019-09-05T22:20:44.137500Z

If it can be used from init.coffee, I might be tempted to suggest pulling the inspect functions out of the core -- and I'll just implement them in my init.coffee file and point REBL users at that, since I have four REBL-related functions in there already.

2019-09-05T22:27:47.138600Z

hmmm ok just tried upgrading to the new release, i'm getting a new repl window now but it seems like I can't input in this window nor is there any output from eval-block (I'm not positive what the expected behavior is)

2019-09-05T22:28:32.139500Z

on the other hand, things are actually eval'ing in the file buffers themeselves now, and it's not as painfully slow anymore. This is pretty cool

2019-09-05T22:31:32.139900Z

Is there a command to make the in-file (instarepl?) code evaluations "go away"

2019-09-05T22:32:10.140200Z

When I evaluate a block the results just stay there

mauricio.szabo 2019-09-05T22:32:48.141100Z

On this new release the evaluations don't stay on the console because of limitation on this other Ink

2019-09-05T22:33:30.141600Z

I'm seeing nothing on the console at all, and the instarepl evaluations are just staying there forever

2019-09-05T22:34:08.142100Z

ok escape on the evaluations get them to go away, is this the intended workflow?

2019-09-05T22:34:25.142500Z

mauricio.szabo 2019-09-05T22:34:31.143100Z

There's a command to make then go away, I think it "clear inline results"

2019-09-05T22:34:39.143300Z

cool

mauricio.szabo 2019-09-05T22:34:50.143500Z

inline-results:clear-all

mauricio.szabo 2019-09-05T22:34:56.143800Z

Is the command name

2019-09-05T22:35:11.144400Z

gotcha, thanks!

mauricio.szabo 2019-09-05T22:36:05.145400Z

As for the console, the evaluations will be back on console. The thing is, the library I'm using to render the console and these inline evaluations removed some code on the new release, and I must now re-add these on Chlorine because it is also breaking my workflow

mauricio.szabo 2019-09-05T22:36:25.145900Z

For example, if I refresh the namespace and get an error, I don't know where it happened

2019-09-05T22:37:10.146200Z

cool no worried, just wanted to report

2019-09-05T22:38:06.147200Z

so even when things were working, the repl didn't accept input and just showed the result of evaluations? Did I understand that correctly from something I read here?

mauricio.szabo 2019-09-05T22:38:47.148500Z

Yes, when you evaluated on the editor, it rendered the results of evaluations below the source code and also on the Console

seancorfield 2019-09-05T22:39:49.149600Z

@mauricio.szabo I decided to go ahead and define inspect-block and inspect-top-block in my init.coffee to match the other four commands I have in there. I think there are a few REBL/Atom/Chlorine users so removing them from core would break a few people's workflow but they could easily restore them based on my atom-chlorine-setup repo...

seancorfield 2019-09-05T22:48:03.150900Z

I'm also changing ctrl-, in my keymap.json to ctrl-; to match Chlorine's README non-`vim` bindings, so that folks using my setup don't have problems on Windows/Linux in the future (that'll take some getting used to for me!).

πŸ‘ 1
seancorfield 2019-09-05T22:50:18.151900Z

Currently relies on EditorUtils.getCursorInBlockRange(editor) and the {topLevel:true} variant.