diff --git a/etc/dev/haskell/stylish-haskell/config.yaml b/etc/dev/haskell/stylish-haskell/config.yaml index 59f65f8..40c230a 100644 --- a/etc/dev/haskell/stylish-haskell/config.yaml +++ b/etc/dev/haskell/stylish-haskell/config.yaml @@ -1,59 +1,126 @@ ---- +# stylish-haskell configuration file +# ================================== +steps: + - records: + # How to format equals sign between type constructor and data constructor. + # Possible values: + # - "same_line" -- leave "=" AND data constructor on the same line as the type constructor. + # - "indent N" -- insert a new line and N spaces from the beginning of the next line. + equals: "same_line" -newline: native -cabal: true -columns: 120 + # How to format first field of each record constructor. + # Possible values: + # - "same_line" -- "{" and first field goes on the same line as the data constructor. + # - "indent N" -- insert a new line and N spaces from the beginning of the data constructor + first_field: "same_line" -steps: + # How many spaces to insert between the column with "," and the beginning of the comment in the next line. + field_comment: 2 + + # How many spaces to insert before "deriving" clause. Deriving clauses are always on separate lines. + deriving: 8 + + # How many spaces to insert before "via" clause counted from indentation of deriving clause + # Possible values: + # - "same_line" -- "via" part goes on the same line as "deriving" keyword. + # - "indent N" -- insert a new line and N spaces from the beginning of "deriving" keyword. + via: "same_line" + + # Sort typeclass names in the "deriving" list alphabetically. + sort_deriving: true + + # Wheter or not to break enums onto several lines + # + # Default: false + break_enums: false + + # Whether or not to break single constructor data types before `=` sign + # + # Default: true + break_single_constructors: true + + # Whether or not to curry constraints on function. + # + # E.g: @allValues :: Enum a => Bounded a => Proxy a -> [a]@ + # + # Instead of @allValues :: (Enum a, Bounded a) => Proxy a -> [a]@ + # + # Default: false + curried_context: false + + # Align the right hand side of some elements. This is quite conservative + # and only applies to statements where each element occupies a single + # line. + # Possible values: + # - always - Always align statements. + # - adjacent - Align statements that are on adjacent lines in groups. + # - never - Never align statements. + # All default to always. - simple_align: cases: always top_level_patterns: always records: always multi_way_if: always - - trailing_whitespace: {} - - imports: - align: global - list_align: with_alias + # There are different ways we can align names and lists. + align: group + + # The following options affect only import list alignment. + list_align: after_alias + + # Right-pad the module names to align imports in a group: pad_module_names: true + + # Long list align style takes effect when import is too long. This is + # determined by 'columns' setting. long_list_align: inline + + # Align empty list (importing instances) empty_list_align: inherit - list_padding: 4 + + # List padding determines indentation of import list on lines after import. + # This option affects 'long_list_align'. + list_padding: "module_name" + + # Separate lists option affects formatting of import list for type + # or class. The only difference is single space between type and list + # of constructors, selectors and class functions. separate_lists: true + + # Space surround option affects formatting of import lists on a single + # line. The only difference is single space after the initial + # parenthesis and a single space before the terminal parenthesis. space_surround: false - post_qualify: true + + # Enabling this argument will use the new GHC lib parse to format imports. + ghc_lib_parser: true - language_pragmas: + # We can generate different styles of language pragma lists. style: vertical + + # Align affects alignment of closing pragma brackets. align: true + remove_redundant: true language_prefix: LANGUAGE - - module_header: - indent: 4 - sort: true - separate_lists: true - break_where: inline - open_bracket: next_line - - - records: - equals: same_line - first_field: same_line - field_comment: 2 - deriving: 8 - via: same_line - sort_deriving: true - break_enums: false - break_single_constructors: true - curried_context: false - + # Replace tabs by spaces. + # Number of spaces to use for each tab. Default: 8, as specified by the + # Haskell report. - tabs: spaces: 8 + # Remove trailing whitespace + - trailing_whitespace: {} + +columns: 120 + +newline: native + language_extensions: - BangPatterns - - ImportQualifiedPost - ConstraintKinds - DataKinds - DefaultSignatures @@ -74,7 +141,6 @@ language_extensions: - MultiParamTypeClasses - MultiWayIf - NamedFieldPuns - - NoImplicitPrelude - OverloadedStrings - QuasiQuotes - RecordWildCards @@ -85,3 +151,9 @@ language_extensions: - TypeApplications - TypeFamilies - ViewPatterns + +# Attempt to find the cabal file in ancestors of the current directory, and +# parse options (currently only language extensions) from that. +# +# Default: true +cabal: true diff --git a/etc/dev/lua/luaformatter/config.yaml b/etc/dev/lua/luaformatter/config.yaml new file mode 100644 index 0000000..d9303f1 --- /dev/null +++ b/etc/dev/lua/luaformatter/config.yaml @@ -0,0 +1,42 @@ +use_tab: true +indent_width: 1 +continuation_indent_width: 4 +tab_width: 8 + +align_args: true +align_parameter: true +align_table_field: true + +break_after_functioncall_lp: false +break_after_functiondef_lp: false +break_after_operator: true +break_after_table_lb: true +break_before_functioncall_rp: false +break_before_functiondef_rp: false +break_before_table_rb: true + +chop_down_kv_table: true +chop_down_parameter: false +chop_down_table: true + +column_limit: 100 +column_table_limit: 0 + +double_quote_to_single_quote: true +extra_sep_at_table_end: false + +keep_simple_control_block_one_line: true +keep_simple_function_one_line: true + +line_breaks_after_function_body: 1 +line_separator: input + +single_quote_to_double_quote: false + +spaces_around_equals_in_field: true +spaces_before_call: 1 +spaces_inside_functioncall_parens: false +spaces_inside_functiondef_parens: false +spaces_inside_table_braces: true + +table_sep: ","