I hereby claim:
- I am mateuszkubuszok on github.
- I am mateuszkubuszok (https://keybase.io/mateuszkubuszok) on keybase.
- I have a public key ASDad2uAPXJRFF-i7B7nKeQixgIFu5bVsXJLqD7jJGRg0Ao
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| backup: .dotsync_bck | |
| global: | |
| include: | |
| - .bashrc | |
| - .zshrc | |
| exclude: [] | |
| local: | |
| laptop2: | |
| include: | |
| - .snxrc |
| Compiled from "Test2.scala" | |
| public final class Test2$ { | |
| public static final Test2$ MODULE$; | |
| public static {}; | |
| Code: | |
| 0: new #2 // class Test2$ | |
| 3: dup | |
| 4: invokespecial #20 // Method "<init>":()V | |
| 7: putstatic #22 // Field MODULE$:LTest2$; |
| Compiled from "Test1.scala" | |
| public final class Test1$ { | |
| public static final Test1$ MODULE$; | |
| public static {}; | |
| Code: | |
| 0: new #2 // class Test1$ | |
| 3: dup | |
| 4: invokespecial #18 // Method "<init>":()V | |
| 7: putstatic #20 // Field MODULE$:LTest1$; |
| # Open window/pane in the same PATH | |
| bind c new-window -c "#{pane_current_path}" | |
| bind '"' split-window -c "#{pane_current_path}" | |
| bind % split-window -h -c "#{pane_current_path}" | |
| # Reload config | |
| bind R source-file ~/.tmux.conf \; display-message "Config reloaded..." | |
| # Window tab menu | |
| bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S \ | |
| "Swap Left" l "swap-window -t:-1" \ |
All of these can be figured out by looking at ammonite.io and at libraries pages, but to make things faster for myself I written it down (I don't always want to search through Ammonite history nor pollute my ~/.ammonite/predef.sc).
For convenience, next to library there is badge with the newest version and next to one liners for Ammonite for specific version is link to releases - it let you update to newest version without goolging or checking project's site.
| trait Uncurry[C, U] { | |
| def uncurried(curried: C): U | |
| } | |
| object Uncurry { | |
| def instance[C, U](body: C => U) = new Uncurry[C, U] { | |
| def uncurried(curried: C): U = body(curried) | |
| } | |
| implicit def uncurry2[A, B, Out]: Uncurry[A => B => Out, (A, B) => Out] = | |
| instance[A => B => Out, (A, B) => Out] { curried => curried(_)(_) } | |
| implicit def uncurry3[A, B, C, Out]: Uncurry[A => B => C => Out, (A, B, C) => Out] = |
| # Open window/pane in the same PATH | |
| bind c new-window -c "#{pane_current_path}" | |
| bind '"' split-window -c "#{pane_current_path}" | |
| bind % split-window -h -c "#{pane_current_path}" | |
| # Reload config | |
| bind R source-file ~/.tmux.conf \; display-message "Config reloaded..." | |
| # Window tab menu | |
| bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S \ | |
| "Swap Left" l "swap-window -t:-1" \ |
| // Parser definitions | |
| type Parser[+A] = String => Option[(A, String)] | |
| object Parser{ | |
| def apply[A](re: String)(f: String => A): Parser[A] = | |
| input => s"""\\s*($re)(\\s*)""".r | |
| .findPrefixMatchOf(input) | |
| .map { n => |