+ ((derived-mode-p 'sql-mode)
+ ;;;; i dun think this is needed, but leaving it here just in case.
+ ;; (let ((err-buf (get-buffer "*sqlformat errors*")))
+ ;; (when err-buf (kill-buffer err-buf)))
+
+ ;; fixes parsing errors for the perl i've been writing.
+ (replace-regexp-in-buffer "?" "'?'")
+ (sqlformat-buffer)
+ (replace-regexp-in-buffer "'\\?'" "?")
+ (let ((err-buf (get-buffer "*sqlformat errors*"))
+ err-str)
+ (when err-buf
+ (with-current-buffer err-buf
+ (setq err-str (buffer-substring-no-properties (point-min) (point-max))))
+ (when (not (string-empty-p err-str))
+ (message "using alt formatter due to error: %s" err-str)
+ (setq sqlformat-command 'sqlformat
+ sqlformat-args (list "-k" "lower" "-r" "--wrap_after=80"))
+ (sqlformat-buffer)
+ (setq sqlformat-command 'sqlfluff
+ sqlformat-args nil)))))