86 lines
2.2 KiB
Org Mode
86 lines
2.2 KiB
Org Mode
|
#+title: Setup.jl
|
|||
|
#+author: TEC
|
|||
|
|
|||
|
This is my personal Julia configuration. It has grown far beyond my wildest imagination.
|
|||
|
|
|||
|
* Installation
|
|||
|
|
|||
|
#+begin_src shell
|
|||
|
julia --startup-file=no -e 'using Pkg; Pkg.add(url="https://git.tecosaur.net/tec/Setup.jl.git"); using Setup; Setup.install()'
|
|||
|
#+end_src
|
|||
|
|
|||
|
* Features
|
|||
|
** Autoloading
|
|||
|
|
|||
|
Instead of loading packages whose functionality might be needed at some point,
|
|||
|
load them on-demand. Lazy loading for the win!
|
|||
|
|
|||
|
The following packages are currently supported:
|
|||
|
+ The standard library (=Base64=, =CRC32c=, =Dates=, =Distributions=, =Downloads=,
|
|||
|
=LinearAlgebra=, =Markdown=, =Mmap=, =Pkg=, =Printf=, =REPL=, =Random=, =SHA=, =Serialisation=,
|
|||
|
=Statistics=, =StatsBase=, =TOML=, =Tar=, =Test=, =Threads=, =UUIDs=)
|
|||
|
+ =BaseDirs=
|
|||
|
+ =BenchmarkTools=
|
|||
|
+ =CSV=
|
|||
|
+ =Cthulhu=
|
|||
|
+ =DataFrames=
|
|||
|
+ =DataToolkit=
|
|||
|
+ =Debugger=
|
|||
|
+ =Distributions=
|
|||
|
+ =JET=
|
|||
|
+ =JSON3=
|
|||
|
+ =Org=
|
|||
|
+ =WhyNotEqual=
|
|||
|
|
|||
|
** Function/Structure inspection
|
|||
|
|
|||
|
Get a sense of a function or structure with the =about= function/macro.
|
|||
|
|
|||
|
** Environment tweaks
|
|||
|
*** Shorter activation
|
|||
|
|
|||
|
Add =a= as a shorthand for =activate=
|
|||
|
|
|||
|
*** Easier temp environments
|
|||
|
|
|||
|
Add =-t= as a shorthand for =--temp=, with the activate change this means opening a
|
|||
|
temporary environment is now a bit quicker:
|
|||
|
|
|||
|
#+begin_example
|
|||
|
pkg> a -t
|
|||
|
#+end_example
|
|||
|
|
|||
|
instead of
|
|||
|
|
|||
|
#+begin_example
|
|||
|
pkg> activate --temp
|
|||
|
#+end_example
|
|||
|
|
|||
|
|
|||
|
*** Environment stack
|
|||
|
|
|||
|
Load and unload named environments with the new =pkg> (un)stack= set of commands.
|
|||
|
|
|||
|
** Command puns
|
|||
|
|
|||
|
For more easily running ~Cmd~s, we now have the following syntactic puns.
|
|||
|
|
|||
|
#+begin_src julia
|
|||
|
~ `cmd` # read to string
|
|||
|
! `cmd` # print output
|
|||
|
!~ `cmd` # read and print output
|
|||
|
`a` | `b` # pipe commands
|
|||
|
#+end_src
|
|||
|
|
|||
|
** Package configuration
|
|||
|
|
|||
|
Thanks to package extensions, it's fairly straightforward to bundle per-package
|
|||
|
customisation code. Currently this covers the following:
|
|||
|
|
|||
|
+ Setting the Makie theme based on the terminal colours when loading =CairoMakie=
|
|||
|
+ Pushing the =Gadfly= display
|
|||
|
+ Changing the =HDF5= icons
|
|||
|
+ Loading =ImageShow= when =JpegTurbo=, =Netpbm=, =PNGFiles=, =QOI=, or =TiffImages= are loaded
|
|||
|
+ Load an appropriate =OhMyREPL= theme on startup
|
|||
|
+ Add pretty colour show methods for =Color= types
|