Reloacted packages, compiles, emacs deps work.

This commit is contained in:
2024-09-07 01:11:53 +03:00
parent 5971d9534e
commit 85ecb7b4a0
10 changed files with 72 additions and 43 deletions
+134
View File
@@ -0,0 +1,134 @@
#+title: Aner's Emacs Development Configuration
#+property: header-args :results silent
* Base dev
** Require
#+begin_src emacs-lisp
(require 'azos-emacs-base)
#+end_src
** Flycheck
Flycheck is for syntax checking. Mode-specific configs in their relevant sections.
#+begin_src emacs-lisp
(use-package flycheck
:config
(global-flycheck-mode 1)
)
#+end_src
* Dev modes
** Irony-mode
Must work on this. While it does work, can get slow and for weird projects can
show errors.
Namespace indent disabling based on:
https://stackoverflow.com/questions/13825188/suppress-c-namespace-indentation-in-emacs
#+begin_src emacs-lisp
;; == irony-mode ==
(use-package irony
:ensure t
:defer t
:init
(add-hook 'c++-mode-hook 'irony-mode)
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'objc-mode-hook 'irony-mode)
:config
;; replace the `completion-at-point' and `complete-symbol' bindings in
;; irony-mode's buffers by irony-mode's function
(defun azos/irony-mode-hook ()
(define-key irony-mode-map [remap completion-at-point]
'irony-completion-at-point-async)
(define-key irony-mode-map [remap complete-symbol]
'irony-completion-at-point-async))
(add-hook 'irony-mode-hook 'azos/irony-mode-hook)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
(defconst azos/cc-style
'("gnu"
(c-offsets-alist . ((innamespace . [0])))
(c-basic-offset . 4)))
(c-add-style "azos/cc-style" azos/cc-style)
(add-hook 'irony-mode-hook (lambda () (c-set-style "azos/cc-style")))
)
#+end_src
Integration with flycheck
#+begin_src emacs-lisp
(use-package flycheck-irony
:after flycheck irony
:config
(add-hook 'flycheck-mode-hook #'flycheck-irony-setup)
(add-hook 'c++-mode-hook (lambda () (setq flycheck-checker 'irony)))
)
#+end_src
** CMake
#+begin_src emacs-lisp
(use-package cmake-mode)
#+end_src
** YAML
#+begin_src emacs-lisp
(use-package yaml-mode)
#+end_src
** Nix
#+begin_src emacs-lisp
(use-package nix-mode)
#+end_src
** Python
#+begin_src emacs-lisp
(setq
;; python-shell-interpreter "python3"
python-shell-completion-native-enable nil)
(defun azos/python/set-fringes () "Sets fringes for python"
(setq left-fringe-width 10 right-fringe-width 0))
(add-hook 'python-mode-hook 'azos/python/set-fringes)
(use-package elpy
:ensure t
:defer t)
;; :init
;; (elpy-enable))
(define-key azos/global-minor-mode/open-keymap
(kbd "r p") 'run-python)
#+end_src
** Rust
#+begin_src emacs-lisp
(use-package rust-mode)
#+end_src
** Jupyter (ein)
#+begin_src emacs-lisp
(use-package ein
:config
(setq ein:output-area-inlined-images t)
(add-hook 'ein:notebook-mode-hook (lambda () (progn
;; (elpy-mode -1)
(define-key ein:notebook-mode-map (kbd "C-c C-k") nil)))))
#+end_src
* Provide
#+begin_src emacs-lisp
(provide 'azos-emacs-dev)
#+end_src
+181
View File
@@ -0,0 +1,181 @@
#+title: Aner's Emacs Editor Configuration
#+property: header-args :results silent
* Base dev
** Require
#+begin_src emacs-lisp
(require 'azos-emacs-base)
#+end_src
* Editor modes
** Pandoc
Pandoc mode lets us export different formats to PDF.
Added for use with markdown.
Binding to startup is 'C-c /'
#+begin_src emacs-lisp
(use-package pandoc-mode
:hook
(markdown-mode . pandoc-mode))
#+end_src
** Graphviz
#+begin_src emacs-lisp
(use-package graphviz-dot)
#+end_src
** Markdown
Based on [[https://www.reddit.com/r/emacs/comments/u5owr4/how_to_enable_variablepitchmode_for_markdownmode/][this]] post
detailing variable pitch.
We default to github-flavored markdown and show it as variable pitch.
#+begin_src emacs-lisp
(use-package markdown-mode
:mode (("\\.md$" . gfm-mode)
("\\.mkd$" . gfm-mode))
:hook (gfm-mode . variable-pitch-mode)
:diminish markdown-live-preview-mode
:config
(when (bound-and-true-p lsp-mode)
(variable-pitch-mode -1))
(set-face-attribute 'markdown-pre-face nil
:background "LemonChiffon1" :extend t)
)
#+end_src
Let's add a TOC
#+begin_src emacs-lisp
(use-package markdown-toc)
#+end_src
* ORG
** PDF exporting
#+begin_src emacs-lisp
(setq org-latex-listings 'minted
org-export-babel-evaluate nil
org-latex-pdf-process
(list (concat "latexmk -xelatex -shell-escape -interaction=nonstopmode "
"-output-directory=%o %f ; latexmk -c %f")))
(require 'ox-latex)
(unless (boundp 'org-latex-classes)
(setq org-latex-classes nil))
#+end_src
This code removes unecessary files after each export
#+begin_src emacs-lisp
(add-to-list 'org-latex-logfiles-extensions "tex")
#+end_src
Creating classes
#+begin_src emacs-lisp
(defvar anerenv/latex-class-common-header
"[DEFAULT-PACKAGES]
\\usepackage{polyglossia}
\\usepackage{tabularx}
\\usepackage[cache=false]{minted}
\\usepackage{xcolor}
\\usepackage{indentfirst}
\\usepackage{amsfonts}
\\usepackage{transparent}
\\usepackage{amsmath}
\\usepackage{braket}
\\usepackage{dsfont}
\\definecolor{codebg}{rgb}{0.95,0.95,0.95}
\\setdefaultlanguage{english}
\\setlength{\\parindent}{0in}
\\DeclareMathOperator*{\\argmax}{arg\\,max}
\\DeclareMathOperator*{\\argmin}{arg\\,min}
\\newfontfamily\\hebrewfont{LiberationSans}[Script=Hebrew]
\\newfontfamily\\hebrewfonttt{LiberationSans}[Script=Hebrew]
\\newfontfamily\\hebrewfontsf{LiberationSans}[Script=Hebrew]
\\setotherlanguage{hebrew}
" "Default common class header")
(setq org-latex-classes
(list (list "article"
(concat "\\documentclass{article}
" anerenv/latex-class-common-header
"\\setminted{
bgcolor=codebg,
breaklines=true,
mathescape,
fontsize=\\scriptsize,
linenos=false,
}
")
'("\\section{%s}" . "\\section*{%s}")
'("\\subsection{%s}" . "\\subsection*{%s}")
'("\\subsubsection{%s}" . "\\subsubsection*{%s}")
'("\\paragraph{%s}" . "\\paragraph*{%s}")
'("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
(list "beamer"
(concat "\\documentclass{beamer}
" anerenv/latex-class-common-header
"\\setminted{
bgcolor={},
breaklines=true,
mathescape,
fontsize=\\scriptsize,
linenos=false,
}
")
'("\\section{%s}" . "\\section*{%s}")
'("\\subsection{%s}" . "\\subsection*{%s}")
'("\\subsubsection{%s}" . "\\subsubsection*{%s}")
'("\\paragraph{%s}" . "\\paragraph*{%s}")
'("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
)
#+end_src
This should render Hebrew text.
#+begin_export latex
\begin{hebrew}
#+end_export
זה אמור לעבוד
#+begin_export latex
\end{hebrew}
#+end_export
** DOCX exporting
Taken from https://www.reddit.com/r/emacs/comments/zjv1gj/org_files_to_docx/
#+begin_src emacs-lisp
(defun anerenv/org/export-docx-with-pandoc ()
"Use Pandoc to convert .org to .docx.
Comments:
- The `-N' flag numbers the headers lines.
- Use the `--from org' flag to have this function work on files
that are in Org syntax but do not have a .org extension"
(interactive)
(message "exporting .org to .docx")
(shell-command
(concat "pandoc -N --from org " (buffer-file-name)
" -o "
(file-name-sans-extension (buffer-file-name))
(format-time-string "-%Y-%m-%d-%H%M%S") ".docx")))
#+end_src
* Provide
#+begin_src emacs-lisp
(provide 'azos-emacs-editor)
#+end_src