Fork me on GitHub
#proton
<
2016-02-15
>
dvcrn02:02:50

@jessejanderson: I'm trying to merge your pane PR but it doesn't even compile for me

dvcrn02:02:16

I'll take a closer look later but if you're faster than me, please let me know

dvcrn02:02:27

theme comparison. material+material-dark vs nucleus+atom-fusion

robbyoconnor03:02:31

proton handles handlebars beautifying better than spacemacs

robbyoconnor03:02:32

@dvcrn: can the errors only show for the given buffer?

dvcrn04:02:35

@robbyoconnor: need to check that!

dvcrn04:02:05

yes there is

dvcrn04:02:27

[linter.statusIconScope "File"] should do that. Gonna put that as default for the next release

robbyoconnor04:02:53

It's not a biggy

dvcrn04:02:36

it also annoyed me. Just never got around to check it

robbyoconnor04:02:00

Question: what does it use for beautification?

dvcrn04:02:07

we started adding https://atom.io/packages/atom-beautify but not sure no the exact state

dvcrn04:02:11

I think @geksilla started with it

dvcrn04:02:42

and stuff that isn't supported by it, we just add whatever is available

dvcrn04:02:03

(ruby is for example done with rubocop format)

robbyoconnor05:02:26

I use rubocop to format my ruby

robbyoconnor06:02:55

just updated my proton install

geksilla09:02:24

@dvcrn I would like to set default theme nucleus + atom-material-syntax.

geksilla09:02:08

nucleus is the one of the best themes, because it's adaptive and looks awesome with any syntax theme.

geksilla09:02:33

also we can pre set some default profiles with theme-switch

geksilla09:02:10

btw fusion theme also awesome )

dvcrn09:02:14

@geksilla: I think we should integrate your surround keymap by default

geksilla09:02:25

I will send PR. @robbyoconnor did you start to wok on it?

robbyoconnor09:02:13

@geksilla: I gave up -- i pulled your keymap and keybindings in

geksilla09:02:04

ok, thought you want to send PR. I will add it.

geksilla09:02:37

for vim-mode we can use vim-surround package. https://atom.io/packages/vim-surround

robbyoconnor09:02:13

I dont wanna send a PR -- I'm already spread thin with OSS

geksilla10:02:58

sent PR regarding surround support.

robbyoconnor11:02:05

How does it work for vim-mode

robbyoconnor11:02:13

as far as I can see that works for vim-mode-plus only... :X

geksilla11:02:28

@robbyoconnor, vim-mode-plus enabled by default and has built in support for surround

geksilla11:02:00

vim-mode is developed by atom core team and has no support for surround

geksilla11:02:32

so for vim-mode-plus we need to add appropriate key maps to trigger surround actions

geksilla11:02:52

but for vim-mode package we need to install additional package vim-surround

robbyoconnor11:02:50

to me the power of vim is the fact i can copy/paste without using my mouse

robbyoconnor11:02:30

I'm not interested in an editor war -- so long as I have modal editing im happy

dvcrn14:02:33

spacemacs had something like that in the minibuffer

geksilla14:02:57

I had this plugin enabled for spacemacs )

dvcrn14:02:23

We need more fun layers 😄

dvcrn14:02:34

That was my favorite

geksilla14:02:40

nice, will try it

dvcrn14:02:00

sadly doesn’t work that great with vim mode

dvcrn14:02:16

seems like people really like “spaceatom"

dvcrn14:02:13

typewriter + power-mode + nyan-cat and my coworkers will never take me serious again lol

geksilla14:02:43

))))))))))))

geksilla14:02:30

@dvcrn what is the status of doc_helper branch?

geksilla14:02:50

just wondering what features missed

dvcrn14:02:18

putting everything together and writing it into a README file

dvcrn14:02:21

need to think how to run it properly. We can’t use shadow-build or leiningen (ping @thheller) to collect all the things because of cljs artifacts. I think it would fail right away. I saw that better cljs repl support is coming in the next version though

dvcrn14:02:35

alternatively, maybe planck for mac can help us with 1-time off scripts (for generation)

geksilla14:02:30

For now we can try to use it for key bindings discovery.

geksilla14:02:23

Similar to spacemacs when you can hit Ctrl-h during which-key buffer

geksilla14:02:16

For layer and other docs we can just copy all readme files to some directory for released build

geksilla14:02:16

For example you type SPC h l will start dialog with list of available layers

geksilla14:02:46

on selected item will open appropriate readme

robbyoconnor14:02:35

nyancat needs to go in the colors

robbyoconnor14:02:39

let's model spacemacs

robbyoconnor14:02:47

They're doing stuff right

robbyoconnor15:02:26

We should slowly aim to match the layers of spacemacs

dvcrn15:02:36

nyan cat isn’t really a color tho 😛

dvcrn15:02:52

it’s a fun package that’s toggle-able. It seems obvious to me where to put it 😉

dvcrn15:02:16

layer -> fun/nyan-cat keybinding -> SPC t f n (toggle -> fun -> nyan cat)

dvcrn15:02:53

each layer is exposing keybindings and readme fragments over multimethods. Within proton / cljs we just collect that and generate the prefix tree with that. Now we want to use that information to generate README files. We need a solution to execute all of the cljs code and writes out files

dvcrn15:02:32

any thoughts on this? I was thinking of just compiling everything down to javascript and load it inside node with calling it’s exposed commonjs functions

thheller15:02:49

uhm I don't quite follow

thheller15:02:05

you have a bunch of cljs CODE that you want as data?

thheller15:02:24

do you have an example?

dvcrn15:02:42

each layer’s multimethod is returning a hash (or vector of vectors) that defines the keybindings and settings each layer needs to operate

dvcrn15:02:55

that information is what we show inside READMEs as well but right now that’s very manual

dvcrn15:02:37

the part where I was wondering if you have some ideas is how to execute a one off cljs runner that just calls all these multimethods, collects each layers settings and writes out a bunch of README files

dvcrn15:02:52

is there a way to do this with shadow-build or is the node / browser REPL the only real way to achieving this?

thheller15:02:05

again I don't quite follow

thheller15:02:20

where can I find one of those multi-methods?

thheller15:02:02

why are those not actual "config" files?

dvcrn15:02:12

nope, pure cljs trees simple_smile

robbyoconnor15:02:01

@thheller: you never saw spacemacs? The fact this is done in clojurescript is kinda epic 😄

thheller15:02:36

again: why is it code?

thheller15:02:55

it would be the exact same structure if it was edn?

robbyoconnor15:02:33

Sometimes there's logic that needs to be run

dvcrn15:02:34

sometimes we need to react on user config and dynamically adjust packages / settings/ etc

thheller15:02:41

that is not logic that runs

thheller15:02:45

that is static data

thheller15:02:18

just trying to understand it, not saying it is wrong or anything

dvcrn15:02:37

the part we want to do next is to collect all of that and spit out readmes for each layer

dvcrn15:02:50

though my cljs knowledge is still a bit limited in what the best way for this is

robbyoconnor15:02:20

I bullshitted my elisp for the past 6 months

thheller15:02:01

suppose you have a config file like this

thheller15:02:09

wouldn't that yield the same thing?

thheller15:02:21

but since its pure data, not code

thheller15:02:35

you can access it simply without executing it?

thheller15:02:51

you can even write a simple shadow-build importer

thheller15:02:58

that generates the desired code from it

thheller15:02:03

if it really has to be code?

thheller15:02:37

but .. if you are fixed on the idea of code

thheller15:02:07

yes you can use shadow-build to generate a launcher/util for you and node to execute it

dvcrn15:02:13

I’m not sure how edn deals with anonymous nested functions, for example https://github.com/dvcrn/proton/blob/master/src/cljs/proton/layers/core/keybindings.cljs#L93-L104

thheller15:02:15

same thing just a whole lot more complicated

thheller15:02:47

don't make it an anonymous function

thheller15:02:01

big smell if you repeat something like that 4 times

thheller15:02:22

:target that-package.util/helper-fn

dvcrn15:02:31

yah 😅 we started doing that for other things

dvcrn15:02:38

in anyway, how would that look in edn?

thheller15:02:45

it wouldn't

dvcrn15:02:49

if I parse the edn file, does it resolve to the namespaces?

geksilla15:02:04

I think it will be simple list in edn

thheller15:02:13

well yeah if would be a simple list

thheller15:02:55

but not very useable and you would need to load configs via macros so the correct cljs code can be generated

thheller15:02:03

not very pretty

geksilla15:02:10

I had an idea to use bootstrapped repl to compile some parts, like these functions in edn

geksilla15:02:27

but really don't know is it make sense at all

geksilla15:02:38

I was able to compile simple function in bootstrapped cljs repl

geksilla15:02:20

but didn't try to require that compiled code

thheller15:02:29

if you want to stick with the code

thheller15:02:41

write a "main" namespace that does what you want

thheller15:02:54

execute it to dump the data

thheller15:02:32

I assume you have something like that already?

dvcrn15:02:30

Like a one off thing that just dumps everything into READMEs and execute that

robbyoconnor15:02:34

im too lazy to google

dvcrn15:02:37

@robbyoconnor: clojure is a superset of edn. It's a data notation https://github.com/edn-format/edn

dvcrn15:02:50

The .proton file for example is pure edn

geksilla15:02:42

@dvcrn, I'll try to make some demo branch with readme features on top of doc_helper branch.

dvcrn15:02:01

I think using shadow build to compile a different main namespace and execute that with node might work quite good

dvcrn15:02:27

Getting late here. I'll check back tomorrow morning :)

geksilla15:02:25

@thheller I got one issue when trying to write another atom plugin with shadow-build. Thrown error: 'shadow_umd_helper' already provided

geksilla15:02:01

I think this is because of proton plugin already define it

thheller15:02:42

you can only have one umd module per build

geksilla16:02:17

yes, I got it

geksilla16:02:01

also compiled source with advanced compilation will prevent it I guess

geksilla16:02:59

since it's mangle strings

thheller16:02:21

no one mangles strings?

geksilla16:02:29

yes, proton uses simple optimization for release

geksilla16:02:54

I was trying switch to advanced but got errors

thheller16:02:18

yes forget about advanced

thheller16:02:24

not worth the effort

thheller16:02:32

you'd need externs for all of atom

thheller16:02:38

every package you are using

thheller16:02:43

and node itself

thheller16:02:51

unlikely that will happen

thheller16:02:57

@dvcrn: looked into it a bit ... getting an executable for the docs will be quite hard ... something does require("atom") which node doesn't know

dvcrn22:02:50

Hmm we could stub that dependency