2.6 KiB
building
requirements
You will need the go compiler installed. In addition you will need the following libraries:
- sdl2
- sdl2_image
- sdl2_ttf
If you're on Linux, you will need:
- xclip
- xsel
Either works. This is for copying/pasting.
linux
Here's an example for Ubuntu:
$ sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev xclip
$ go get github.com/felixangell/phi
$ cd $GOPATH/src/github.com/felixangell/phi
$ go build
$ ./phi
macOS
If you're on macOS, you can do something like this, using homebrew:
$ brew install sdl2 sdl2_image sdl2_ttf pkg-config
$ go get github.com/felixangell/phi
$ cd $GOPATH/src/github.com/felixangell/phi
$ go build
$ ./phi
windows
Building on Windows is a bit more involved. It's the same process, though you will need a bit more software:
- Install mingw-w64 from mingw-builds
- Version:
latest
(e.g.7.3.0
); - Architecture:
x86_64
; - Threads:
win32
; - Exceptions:
seh
; - Build Revision:
latest
; - Destination folder: any folder your user owns, e.g.
C:/Users/yourname/documents
- Version:
- Install SDL2, SDL2_img, and SDL2_ttf from here: sdl2, sdl2_image, sdl2_ttf
- Extract these zip files;
- Copy the
x86_64-w64-mingw32
into your mingw folder specified when installing mingw-w64.
- Add the
mingw
bin folder to thePATH
Once this is complete, open up a terminal and type the following:
$ go get github.com/felixangell/phi
$ cd $GOPATH/src/github.com/felixangell/phi
$ go build
$ ./phi
Note that you should run go install
so that the dependencies aren't being rebuilt for faster compile times.
configuration
Configuration files are stored in $HOME/.phi-editor/config.toml
. Note that
this directory is created on first startup by the editor, as well as the configuration
files in the 'cfg/' directory are pre-loaded dependening on platform: see 'cfg/linuxconfig.go', for example.
Below is an incomplete configuration file to give you an idea of what the config files are like:
[editor]
tab_size = 4
hungry_backspace = true
tabs_are_spaces = true
match_braces = false
maintain_indentation = true
highlight_line = true
[render]
aliased = true
accelerated = true
throttle_cpu_usage = true
always_render = true
[theme]
background = 0x002649
foreground = 0xf2f4f6
cursor = 0xf2f4f6
cursor_invert = 0x000000
[cursor]
flash_rate = 400
reset_delay = 400
draw = true
flash = true
[commands]
[commands.save]
shortcut = "super+s"
[commands.delete_line]
shortcut = "super+d"