#+TITLE: :lang cc This module adds support for the C-family of languages: C, C++, and Objective-C. + Code completion (~company-irony~) + eldoc support (~irony-eldoc~) + Syntax-checking (~flycheck-irony~) + Code navigation (~irony~) + File Templates ([[../../feature/file-templates/templates/c-mode][c-mode]], [[../../feature/file-templates/templates/c++-mode][c++-mode]]) + Snippets ([[https://github.com/hlissner/emacs-snippets/tree/master/cc-mode][cc-mode]], [[https://github.com/hlissner/emacs-snippets/tree/master/c-mode][c-mode]], [[https://github.com/hlissner/emacs-snippets/tree/master/c++-mode][c++-mode]]) + Several improvements to C++11 indentation and syntax highlighting. #+begin_quote C contends with Haskell and Ruby for my favorite language. That said, it's more accurate to say I write C, but with two or three C++ features. The module provides nominal support for Objective-C, which I really only use to inspect generated glue code for iOS mobile apps. Otherwise, I prefer Swift. #+end_quote * Table of Contents :TOC: - [[#install][Install]] - [[#macos][MacOS]] - [[#arch-linux][Arch Linux]] * Install This module requires ~irony-server~ for most of its features, which depends on ~cmake~ and ~libclang~. ** MacOS Due to linking issues, MacOS users must compile irony-server manually: #+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes") brew install cmake brew install llvm # 1gb+ installation! May take a while! git clone https://github.com/Sarcasm/irony-mode irony-mode mkdir irony-mode/server/build pushd irony-mode/server/build DEST="$HOME/.emacs.d/.local/$(hostname)/etc/irony-server/" cmake -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \ -DCMAKE_INSTALL_PREFIX="$DEST" ../ cmake --build . --use-stderr --config Release --target install install_name_tool -change @rpath/libclang.dylib \ /usr/local/opt/llvm/lib/libclang.dylib \ "$DEST/bin/irony-server" # cleanup popd rm -rf irony-mode #+END_SRC ** Arch Linux #+BEGIN_SRC sh :tangle (if (doom-system-os 'arch) "yes") sudo pacman --needed --noconfirm -S clang cmake #+END_SRC Then run ~M-x irony-install-server~ in Emacs.