Comments (5)
I tend to not have a separator between top-of-module and first-function, but I do have a separator between "alias, use, etc statements" and first-function. So I think my rule of thumb goes something like:
- No newline after defmodule
- No newline before first function def
- Newline after "module-level-code-blocks"
from elixir_style_guide.
@knewter sounds reasonable.
I've just done a PR with your suggestions: #37
from elixir_style_guide.
I tend to use the same style like @knewter.
defmodule Foo do
use SomethingElse
alias Another.FancyModule
def my_func do
# ...
end
def another_func(true), do: 1
def another_func(_any), do: 2
def bar do
# ...
end
end
Basically reduced down to: Add empty lines between (different) functions and function calls/keywords. Don't do put a newline in the beginning or end of a module block and the first/last statement.
I still do not put an empty line between function definitions with identical arity/signature; this is still an open issue at #31.
But this is also just what I adopted from the Ruby community and their style guide.
As both languages look pretty similar it's easy to do so.
from elixir_style_guide.
Yeah, I think my biggest problem with taking my bullet list into the guide
verbatim is it's not example-y enough yet.
On Fri, Mar 6, 2015 at 10:28 AM, Christoph Grabo [email protected]
wrote:
I tend to use the same style like @knewter https://github.com/knewter.
defmodule Foo do
use SomethingElse
alias Another.FancyModuledef my_func do # ...
enddef another_func(true), do: 1
def another_func(_any), do: 2def bar do # ...
endendBasically reduced down to: Add empty lines between (different) functions
and function calls/keywords. Don't do put a newline in the beginning or end
of a module block and the first/last statement.I still do not put an empty line between function definitions with
identical arity/signature; this is still an open issue at #31
#31.But this is also just what I adopted from the Ruby community and their
style guide.
As both languages look pretty similar it's easy to do so.โ
Reply to this email directly or view it on GitHub
#36 (comment)
.
Josh Adams
CTO | isotope|eleven http://www.isotope11.com
cell 215-3957
work 476-8671 x201
from elixir_style_guide.
I guess this issue can be closed, as the referenced PR #37 is already merged.
cc @niftyn8, @knewter
from elixir_style_guide.
Related Issues (20)
- camelCase vs PascalCase HOT 3
- Add preference for long args/`when` in methods? HOT 3
- Does the formatter make this obsolete? HOT 3
- Missing a section about maps HOT 5
- @module_attribute should be moved higher in Module attribute ordering HOT 1
- Establishing Guidelines for Maximizing Anonymous Function Readability in Reference to Escaped and Expanded Notations HOT 3
- Suggestion on Module Attribute Ordering HOT 1
- Thoughts on public/private function ordering HOT 4
- Deeply nested one-arity function calls? HOT 2
- new issue
- Placement of defguard? HOT 1
- using pipe with only 2 functions HOT 1
- Pipeline with single pipe operator for common cases like Enum.map/reduce/filter HOT 3
- Nested defmodule HOT 5
- Macro calls placement in a module HOT 1
- Naming: Modules HOT 1
- Clarification on multiline defs HOT 3
- cรณmo utilizamos?
- Racionalfor choice
- Broken Link HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elixir_style_guide.