Fork me on GitHub
#cider
<
2017-03-10
>
slipset09:03:58

@bozhidar It’s my fun friday!

bozhidar09:03:15

@slipset Happy to hear this! 🙂

bozhidar09:03:11

@jfntn porting CIDER to some alternative backend would be way easier, trust me about this

bozhidar09:03:50

when I had more time to work on the project I made a few steps towards isolating the nREPL-specific code, but didn’t get very far

bozhidar09:03:19

basically to support some other backend you need a lot of passion and about one week of heavy work

bozhidar09:03:23

you need to do the following:

bozhidar09:03:34

* write some basic client library for the new REPL

bozhidar09:03:41

* write some simple layer that abstracts away connection information from the interactive commands (things that call down to nREPL should be replaced with functions that dispatch on the connection type)

bozhidar09:03:21

* extract the Clojure part of CIDER into some library that could be used with the new REPL and nREPL

bozhidar09:03:16

all of those tasks are relatively simple, but they are still a lot of work that someone needs to do

bozhidar09:03:24

dropping nREPL and replacing it with something else won’t be much easier, so I’d go in a direction to be able to support multiple REPL backends

slipset11:03:27

@bozhidar I’ve gotten some headway into this, but struggeling with a last couple of issues:

slipset11:03:33

cider $ emacs -Q --batch -l test/cider-checks.el 
Warning (emacs): 
cider.el:487: Probably "returns" should be imperative "return"
Warning (emacs): 
cider-test.el:401: Probably "TESTS" should be imperative "Test"
Warning (emacs): 
cider-test.el:516: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-test.el:530: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-test.el:573: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-test.el:629: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-test.el:639: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-test.el:644: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-test.el:649: Probably "tests" should be imperative "test"
Warning (emacs): 
cider-macroexpansion.el:129: Lisp symbol `macroexpand-all' should appear in quotes
Warning (emacs): 
cider-macroexpansion.el:134: Lisp symbol `macroexpand-all' should appear in quotes
Warning (emacs): 
cider-interaction.el:283: Probably "highlights" should be imperative "highlight"
Warning (emacs): 
cider-interaction.el:287: Probably "highlights" should be imperative "highlight"
Warning (emacs): 
cider-interaction.el:1173: Some lines are over 80 columns wide
Warning (emacs): 
cider-inspector.el:136: Keycode M-x embedded in doc string.  Use \\<keymap> & \\[function] instead
Warning (emacs): 
cider-apropos.el:79: Probably "matches" should be imperative “match”

slipset11:03:54

Do you know checkdoc well enough to make it ignore this?

bozhidar12:03:16

checkdoc has a ton of configuration that you can adjust via .dir-locals.el to suppress some types of warnings

bozhidar12:03:56

apart from the warnings about imperative that should probably be all disabled the others seem fixable to me

bozhidar12:03:52

checkdoc is complaining about macroexpand-1 because that’s also a Elisp function

slipset12:03:00

I’ll set the imparative stuff to ignore

bozhidar12:03:12

if you put it in double quotes probably it will stop complaining

slipset12:03:18

fixed the macroexpand-all by removing the ns

slipset12:03:33

macroexpand-1 was ok

slipset12:03:39

there is now a PR.

bozhidar12:03:41

the keymap reference should be fixed as well as the long line

slipset12:03:05

passing without any checkdocs warnings.

benedek12:03:37

did not have time to play with it yet but i have high hopes

slipset12:03:02

shame it’s written in go and not lumo/planck

benedek12:03:29

highest hope is to use it as a drop in analyzer which does not even need a REPL running

benedek12:03:37

i maybe daydreaming...

benedek12:03:54

this is not a repl tho @slipset if i understand it right

slipset12:03:32

My point is that he says he’s implemented it in go so it should be fast.

slipset12:03:54

at least planck has the ability to run stuff as a script.

slipset12:03:25

which would get you the speed you need.

slipset12:03:46

Having said that, it’s still missing a story for bundling deps and such.

benedek12:03:23

fair point

realtime19:03:22

hi I got a question re cider versioning

realtime19:03:00

how dependent is the version of cider you use to the java version of the project?

dpsutton19:03:17

i believe they are completely orthogonal

dpsutton19:03:41

but they do "require" a clojure version 1.7 or greater

dpsutton19:03:54

so whatever you're running better be able to host clojure 1.7

dpsutton19:03:04

although it can work on lower versions of clojure

dpsutton19:03:22

you're on your own as there may be invalid stuff but i think it's more towards cljs

realtime19:03:33

so if I have a java6 project there's no reason the latest cider wouldn't work with it?

dpsutton19:03:42

i don't believe so

dpsutton19:03:52

i don't think clojure actually has any java code inside of it

dpsutton19:03:05

as long as your java version can run a recent clojure you should be good

realtime19:03:14

hmm.. thanks

dpsutton19:03:27

does that mean you still have an indeterminate bug?

realtime19:03:03

yes I'm just having weird little issues like "C-up/down" don't work in the repl

realtime19:03:24

And if theres an error the stacktrace doesn't show up its just a blank cider-error buffer

dpsutton19:03:33

well cider doesn't run in java at all

dpsutton19:03:38

so those are emacs issues

dpsutton19:03:47

can you uninstall and reinstall cider?

dpsutton19:03:54

yeah that interaction is 100% emacs lisp

dpsutton19:03:59

if i'm understanding you correctly

realtime19:03:06

Yeah I'm gonna work on it later.. it was just bugging me

realtime19:03:36

thanks though

dpsutton19:03:41

feel free to chat in here later when you're working on it

richiardiandrea20:03:51

Are defcustoms global ? I have a case where in a buffer the value is picked from .dir-locals.el and one where it is not. The latter is a freshly made buffer not associated with any file. Maybe this is why?

dpsutton20:03:39

i understand dir locals affects that var from any buffer located in that folder or a folder located underneath that one

dpsutton20:03:00

if you are saying the latter is a freshly made buffer not associated with a file then it couldn't possibly be in a folder underneath your dir locals

richiardiandrea20:03:32

So it follows that you can never use .dir-locals.el for buffers not associated with a file

richiardiandrea20:03:55

Like repls or comint-mode buffers..

dpsutton20:03:02

> Sometimes, you may wish to define the same set of local variables to all the files in a certain directory and its subdirectories, such as the directory tree of a large software project. This can be accomplished with directory-local variables. looks like it

dpsutton20:03:09

it's scoped by the file system

dpsutton20:03:30

if you control buffer creation you could set buffer locals in that buffer though

richiardiandrea20:03:33

Yes I control it and I might take that route