aboutsummaryrefslogblamecommitdiffstats
path: root/lib/tools/test/emacs_SUITE_data/terms
blob: 8bc95f2bc2efb022954eeaeefae55b0e3cdd5810 (plain) (tree)



































































































































































                                                                             
%% -*- Mode: erlang; indent-tabs-mode: nil -*-
%% Copyright Ericsson AB 2017. All Rights Reserved.

%%% indentation of terms contain builtin types

%%% Not everything in these test are set in stone
%%% better indentation rules can be added but by having
%%% these tests we can see what changes in new implementations
%%% and notice when doing unintentional changes


list(1) ->
    [a,
     b,
     c
    ];
list(2) ->
    [ a,
      b, c
    ];
list(3) ->
    [
     a,
     b, c
    ];
list(4) ->
    [ a
    , b
    , c
    ].

tuple(1) ->
    {a,
     b,c
    };
tuple(2) ->
    { a,
      b,c
    };
tuple(3) ->
    {
      a,
      b,c
    };
tuple(4) ->
    { a
    , b
    ,c
    }.

binary(1) ->
    <<1:8,
      2:8
    >>;
binary(2) ->
    <<
      1:8,
      2:8
    >>;
binary(3) ->
    << 1:8,
       2:8
    >>;
binary(4) ->
    <<
      1:8
      ,2:8
    >>.

record(1) ->
    #rec{a=1,
         b=2
        };
record(2) ->
    #rec{ a=1,
          b=2
        };
record(3) ->
    #rec{
       a=1,
       b=2
      };
record(4) ->
    #rec{a=1
        ,b=2
        }.

map(1) ->
    #{a=>1,
      b=>2
     };
map(2) ->
    #{ a=>1,
       b=>2
     };
map(3) ->
    #{
     a=>1,
     b=>2
    };
map(4) ->
    #{
      a => <<"a">>
     ,b => 2
     };
map(MapVar) ->
    MapVar = #{a :=<<"a">>
              ,b:=1}.

deep(Rec) ->
    Rec#rec{ atom = 'atom',
             map = #{ k1 => {v,
                             1},
                      k2 => [
                             1,
                             2,
                             3
                            ],
                      {key,
                       3}
                      =>
                          <<
                            123:8,
                            255:8
                          >>
                    }
           }.

%% Record indentation
some_function_with_a_very_long_name() ->
    #'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
       field1=a,
       field2=b},
    case dummy_function_with_a_very_very_long_name(x) of
        #'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
           field1=a,
           field2=b} ->
            ok;
        Var = #'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
                 field1=a,
                 field2=b} ->
            Var#'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
              field1=a,
              field2=b};
        #xyz{
           a=1,
           b=2} ->
            ok
    end.

some_function_name_xyz(xyzzy, #some_record{
                                 field1=Field1,
                                 field2=Field2}) ->
    SomeVariable = f(#'Some-long-record-name'{
                        field_a = 1,
                        'inter-xyz-parameters' =
                            #'Some-other-very-long-record-name'{
                               field2 = Field1,
                               field2 = Field2}}),
    {ok, SomeVariable}.

foo() ->
    [#foo{
        foo = foo}].