;; User behaviors
;; -----------------------------
;; Behaviors are stored as a set of diffs that are merged together
;; to create the final set of functionality that makes up Light Table. You can
;; modify these diffs to either add or subtract functionality.
;;
;; Behaviors are added to tags, objects with those tags then automatically gain
;; whatever logic the behavior imparts. To see a list of user-level behaviors,
;; start typing a word related to the functionality you want in between the square
;; brackets (e.g. "theme").

[
 ;; The app tag is kind of like global scope. You assign behaviors that affect
 ;; all of Light Table to it.
 [:app :lt.objs.style/set-skin "dark"]
 [:app :lt.objs.plugins/load-js "user_compiled.js"]

 ;; The editor tag is applied to all editors
 [:editor :lt.objs.editor/no-wrap]
 [:editor :lt.objs.style/set-theme "rubyblue"]
 [:editor :lt.objs.editor/line-numbers]
 [:editor :lt.objs.editor.file/remove-trailing-whitespace]
 [:editor :lt.objs.style/font-settings "" "12" "1.2"]

 ;; Set Python tabs to be 4
 [:editor.python :lt.objs.editor/tab-settings false 4 4] ;; use tabs?, tab size in spaces, indent unit

 ;; Turn off autocomplete for HTML and Python.  This otherwise annoys me
 [:editor.html :-lt.plugins.auto-complete/auto-show-on-input]
 [:editor.python :-lt.plugins.auto-complete/auto-show-on-input]

 ;; Specify multiple rulers (2015-10-05, currently only works on master branch of Light Table repo)
 [:editor.python :lt.objs.editor/set-rulers [{:lineStyle "dashed" :color "#aff" :column 72}
                                             {:lineStyle "dashed" :color "#aff" :column 80}]]

  ;; Here we can add behaviors to just clojure editors
 [:editor.clojure :lt.plugins.clojure/print-length 1000]

 ;; Behaviors specific to a user-defined object
 [:user.hello :lt.plugins.user/on-close-destroy]

 ;; Set paragraph width for reflow
 [:editor :lt.plugins.reflow/set-width 72]

 ;; To subtract a behavior, prefix the name with '-' e.g.
 ;;  [:app :-lt.objs.intro/show-intro]
]
