#+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