#+title:    :lang solidity
#+subtitle: Do you need a blockchain? No.
#+created:  May 19, 2018
#+since:    21.12.0 (#599)

* Description :unfold:
This module adds [[https://github.com/ethereum/solidity][Solidity]] support to Doom Emacs.

- Syntax-checking ([[doom-package:flycheck]])
- Code completion ([[doom-package:company-solidity]])
- Gas estimation (~C-c C-g~)

** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]

** Module flags
/This module has no flags./

** Packages
- [[doom-package:company-solidity]] if [[doom-module::completion company]]
- [[doom-package:solidity-flycheck]] if [[doom-module::checkers syntax]]
- [[doom-package:solidity-mode]]

** Hacks
/No hacks documented for this module./

** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./

* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]

This module requires one or both linters for syntax checking:
- [[https://github.com/ethereum/solc-js][Solc]]
- [[http://solium.readthedocs.io/en/latest/user-guide.html#installation][Solium]]

If both are enabled *Solc* is run first, then *Solium* if *Solc* catches no
errors.

** Solc
#+begin_src sh
npm install -g solc
#+end_src

** Solium
#+begin_src sh
npm install -g solium
#+end_src

By default *solium* looks for =.soliumrc.json= in the project directory, but you
can set it to your own =.soliumrc.json= with:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq flycheck-solidity-solium-soliumrcfile "~/.soliumrc.json")
#+end_src

** Formatter

Formatting is handled using the [[doom-module::editor format]] module via [[https://github.com/prettier-solidity/prettier-plugin-solidity#installation-and-usage][prettier]].

* TODO Usage
#+begin_quote
 󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* TODO Configuration
#+begin_quote
 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]

* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]

* TODO Appendix
#+begin_quote
 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote
