Table of Contents
1. Programming Configuration Loader
This file serves as the main entry point for all programming-related configurations. It loads language-specific modules and platform-specific tools.
1.1. Purpose
The loader (prog-conf.el) is responsible for:
- Loading general programming settings (
prog-general-conf) - Loading language-specific configurations (web, Python, Ruby, Lua)
- Conditionally loading platform-specific tools
- Managing Clojure, SQL, and tree-sitter integrations
1.2. Architecture
The programming configuration is modular:
prog-conf.el (this file) ├── prog-general-conf.el → General programming settings ├── prog-web-conf.el → Web development (HTML/CSS/JS/TS) ├── prog-python-conf.el → Python development ├── prog-ruby-conf.el → Ruby development └── prog-lua-conf.el → Lua development
1.3. Loader Implementation
;;; prog-conf.el --- Programming configuration loader -*- lexical-binding: t; -*- ;;; Commentary: ;;; Main programming configuration file that loads language-specific modules ;;; and platform-specific programming tools. ;;; Code: ;; Load general programming configuration (require 'prog-general-conf) ;; Load language-specific configurations (require 'prog-web-conf) (require 'prog-python-conf) (require 'prog-ruby-conf) (require 'prog-lua-conf) ;; Platform-specific and additional tools (unless (eq system-type 'windows-nt) ;; Clojure development (non-Windows only) ;; TODO: finish https://clojure-doc.org/articles/tutorials/introduction/ (use-package cider :custom (nrepl-use-ssh-fallback-for-remote-hosts t)) ;; SQL database interaction (use-package ejc-sql ;; Github: https://github.com/kostafey/ejc-sql?tab=readme-ov-file#mariadbconnection ;; M-x ejc-connect ;; M-x ejc-quit-connection -> it refreshes the connection :config (load (expand-file-name ".local/ejc-config.el" user-emacs-directory) 'noerror 'nomessage)) ;; Tree-sitter support (use-package tree-sitter :config (global-tree-sitter-mode 1)) (use-package tree-sitter-langs) (use-package treesit-auto :config (global-treesit-auto-mode 1))) (provide 'prog-conf) ;;; prog-conf.el ends here
1.4. Non-Windows Tools
Several tools are only loaded on non-Windows systems:
1.4.1. Clojure Development (CIDER)
- Interactive Clojure development environment
- REPL integration
- SSH support for remote development
1.4.2. SQL Database Interaction (ejc-sql)
- Connect to databases directly from Emacs
- Execute SQL queries
- Load local configuration from
~/.emacs.d/.local/ejc-config.el
1.4.3. Tree-sitter
- Fast, incremental parsing library
- Better syntax highlighting
- More accurate code navigation
- Language grammar support via
tree-sitter-langs - Automatic mode activation via
treesit-auto