This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-01-03
Channels
- # adventofcode (1)
- # beginners (76)
- # boot (88)
- # cider (63)
- # clojure (357)
- # clojure-austin (2)
- # clojure-berlin (8)
- # clojure-brasil (8)
- # clojure-nl (1)
- # clojure-russia (22)
- # clojure-spec (17)
- # clojure-uk (47)
- # clojurescript (67)
- # cursive (45)
- # datascript (3)
- # datomic (45)
- # dirac (7)
- # emacs (3)
- # funcool (2)
- # hoplon (26)
- # jobs (2)
- # jobs-discuss (11)
- # luminus (6)
- # off-topic (243)
- # om (40)
- # om-next (7)
- # onyx (23)
- # overtone (1)
- # portland-or (2)
- # protorepl (11)
- # re-frame (55)
- # reagent (58)
- # rum (12)
- # sql (4)
- # test-check (12)
- # untangled (25)
I used vim for 15+ years, then saw someone develop clojure in emacs using cider, and went 'oh shit'
That's the main reason I'm using Emacs now too. Emacs integration w/ Clojure tools is better than what's available in vim.
if neotree could display functions inside a file, instead of smallest unit = file, I'd be so happy
so my ideal setup would be as follows
----------
| a | . main . | b |
where a = neotree, maikn = file i'm editing, and b = speedbar showing function definitions within the fileFor some languages, speedbar has magical integrations that let you look at the files contents (usually in the form of a function list)
(speedbar 1) (speedbar-add-supported-extension ".cljc") (speedbar-add-supported-extension ".clj") (speedbar-add-supported-extension ".cljs")
@qqq This seems to indicate imenu is involved. http://stackoverflow.com/questions/19239604/speedbar-defn-clojure-mode The relevant lines from clojure-mode might be: https://github.com/clojure-emacs/clojure-mode/blob/master/clojure-mode.el#L480-Lundefined and https://github.com/clojure-emacs/clojure-mode/blob/master/clojure-mode.el#L648-L671
@beppu: I think you're right -- I was just looking at
(defvar speedbar-fetch-etags-parse-list
'(;; Note that java has the same parse-group as c
("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\|cxx\\|hxx\\)\\'" .
speedbar-parse-c-or-c++tag)
("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" .
"def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*\C-?")
; ("\\.\\([fF]\\|for\\|FOR\\|77\\|90\\)\\'" .
; speedbar-parse-fortran77-tag)
("\\.tex\\'" . speedbar-parse-tex-string)
("\\.p\\'" .
"\\(\\(FUNCTION\\|function\\|PROCEDURE\\|procedure\\)\\s-+\\([a-zA-Z0-9_.:]+\\)\\)\\s-*(?^?")
)
"Associations of file extensions and expressions for extracting tags.
To add a new file type, you would want to add a new association to the
list, where the car is the file match, and the cdr is the way to
extract an element from the tags output. If the output is complex,
use a function symbol instead of regexp. The function should expect
to be at the beginning of a line in the etags buffer.
This variable is ignored if `speedbar-use-imenu-flag' is non-nil.")
but the imenu looks right instead@beppu: the SO answer you posted links to imenu -- and imenu is amazing for jumping in clj files
turns out spacemacs has nice imenu bindings. SPC j i
for an imenu of the current buffer and SPC j I
for an imenu of all buffers.
The space menu is genius. I gotta give that guy credit for coming up w/ a nice way to organize keybindings.
It's the leader key idea + a system for key combo discovery. In vi, the UI is largely invisible. In Spacemacs, you get hints as you traverse the tree of key combinations.
@beppu: exactly, the thing I've come to love about emacs/hydra is C-h k, C-h f tends to work much better than reading vim docs (since vimdocs don't reflect my ~/.vimrc configs) -- and having the 'hotkey hints' is life changing, whereas in vim it was "memorize everything"
@beppu: I can't overstress how cool it is that we stumbled across speedbar/imenu yesterday; it's life changing, already something part of my workflow, and I can't imagine not having it
you guys can all just use Cursive and not have to remember any of that stuff or install anything or type any arcane combinations i'll see myself out
@notanon Is Cursive it's own independent IDE now or is it still a part of IntelliJ?
Or other (I may have my wires crossed here)?
Ah, just clicked on download
shows intelliJ as the prerequisite
Do you know off hand what the costs are?
Is the 100/250 for the intellij portion for commercial use?
ok cool
It also contains the web stuff, which is the bit you’re most likely to want (JS support etc)
I know someone else mentioned using Atom with ProtoREPL
And what about LightTable? Any good?
this is ridicilous, even when I move from #clojure to #ott-topic, I can't stop hearing the praises of cursive
I'm so tempted, is there a wya to use emacsx, but have it talk to cursive instead of cider ?
I like cursive too, but beyond personal use, I'd go something free like light table (although I use emacs)
I still want my emacs-as-OS setup, but willing to run cursive if I can talk to it via emacs
@cfleming: are there public numbers on the free / personal / corporate split of cursive? (I'm just curious as I never would have thought it possible for someone to build a company building dev tools in the age of open source)
@qqq No public numbers, but I sell way more commercial licences than personal which surprised me. More free ones than anything, which didn’t surprise me.
Here’s the office of a company making dev tools: https://www.youtube.com/watch?v=GPvVCV4kh-Q
@notanon: yeah, your cursive install is now going to remotely self destruct for arguing with @cfleming
@cfleming: cursive's success is changing the way I look at software companies; I used to reason "if there's one group of ppl who can write their own tools; it's open source devs" therefore "impossible to sell tools to open source devs" -- yet, cursive's debugging ability beats available options, and everyone loves it
the flaw in that reasoning... is i want to write software, not software to write software
@notanon: sure, but as N (the # of devs using a langauge goes up), so the the probability that atleast one of them decides to wirte their own open source tool
What @notanon said - lots of people want to do their actual work rather than develop their editor, and lots of companies are willing to pay to not have their devs wasting their time.
I guess the flaw in my reasoning that I underestimated the difficulty of writing a fully featured ide/debugger
And while OSS is great, lots of it lacks the polish that you get with JetBrains tools. You can make it all work, but it usually requires time to do so.
Some people like spending that time, lots don’t, and are willing to pay to avoid doing so.
Completely agree there. The JetBrains tool set does look very polished
And a lot of variety in offerings
Isn't that what Clojure is for 😉
No, I guess not 🙂
What is JetBrains' own language?
Ah, enough said
Quite a few cfml devs have been looking into it recently
So all I need to do is really learn Clojure, Java, Scala and Kotlin and I'll be safe in the job market
I love my android phone
Wouldn't buy an apple for anything 🙂
Not that it's necessarily a bad company / product set. Just not my cup of tea
@yogidevbear IMO if you learn Kotlin you can probably ditch Scala from that list.
I tried doing the scala specialisation on coursera and found it overly complicated just to get started
The sbt seemed a bit of a PITA
Any ideas what the job market is like for Kotlin? Guessing not that high yet as it's relatively new?
hahhaha
Their offices do look swanky 😉
Putting an added spin on that earlier link: https://www.indeed.com/jobtrends/q-clojure-q-scala-q-kotlin.html
It got a lot of traction in companies in the UK at least
anyone think Kotlin will beet it?
The idea was Scala has incredibly high ramp-up but could possibly afford great benefits at that point. But those benefits haven't really been realized as much as hoped, iirc.
Kotlin's what I'd call a pragmatic improvement. It's nowhere near functional, but affords many utilities that let it lean towards a function-passing style where useful, in a way that's much nicer than Java's piss-poor lambdas.
Primarily because it introduces a single 'Function' abstraction instead of fragmenting everything into functional interfaces.
Which aren't composable or reusable, and do not allow you to abstract a single piece of computation for multiple purposes.
Thanks for the input guys. Really appreciate. I'm off to bed now though. Catch you later 😴
Spent ~ the latter half of 2015 mildly curious about Kotlin, the first half of 2016 trying and evangelizing it, and the latter half of 2016 obsessed with Clojure. The latter is sticking pretty well, though 😛
For an average Java dev team that you're trying to help think past their limited Java horizons, Kotlin will be an easier sell than Clojure. But Kotlin might also serve as a stepping stone on that road.
Again - Kotlin uses a single 'Function' abstraction for its lambdas, as opposed to Java which basically just uses lambdas as a cleaner wrapper around Single Abstract Method interface implementations, i.e. anonymous implementations
It allows extension methods to be defined, something seen in C# for example, and which allows much cleaner interfaces when connecting two domains. It's not quite the protocols from Clojure, but enough to be utilitarian.
Instead of passing around an Integer Predicate, I can pass around an int -> boolean
. Instead of passing around a custom implementation of some interface in Java, I can pass around an (S, T) -> Unit
It uses the same names / types for all things 'function', instead of dropping down to the level of abstraction of the thing that needs to call said function.