Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3

Тема: Табуляция

  1. #1
    Аватар для verteich
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2019
    Сообщений
    117
    Репутация:
    2 ±

    Табуляция

    Есть подобный код:
    1. ShowRegisterDialog(playerid, rstate)
    2. {
    3. switch(rstate)
    4. {
    5. case 1: ShowGrandRegiserDialog(playerid);
    6. case 2: ShowPlayerDialogEx(playerid,1,2,Language[33][lang],Language[34][lang],Language[6][lang],Language[7][lang]);
    7. case 3: ShowPlayerDialogEx(playerid,1,2,Language[35][lang],Language[36][lang],Language[6][lang],Language[7][lang]);
    8. case 4: ShowPlayerDialogEx(playerid,1,2,Language[37][lang],Language[38][lang],Language[6][lang],Language[7][lang]);
    9. case 5: ShowPlayerDialogEx(playerid,1,1,Language[39][lang],Language[40][lang],Language[6][lang],Language[7][lang]);
    10. default: return false;
    11. }
    12. return true;
    13. }

    Как его можно автоматически выровнить лесенкой? Пробывал TextFX, он ничего не делает с этим, к сожалению.

  2. #2
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    А тут ничего выделять лесенкой и не надо, надо просто оттабулировать все case и default в switch.
    Выделяете все case и default, нажимаете Tab (в тр), и вуаля:

    1. ShowRegisterDialog(playerid, rstate)
    2. {
    3. switch(rstate)
    4. {
    5. case 1: ShowGrandRegiserDialog(playerid);
    6. case 2: ShowPlayerDialogEx(playerid,1,2,Language[33][lang],Language[34][lang],Language[6][lang],Language[7][lang]);
    7. case 3: ShowPlayerDialogEx(playerid,1,2,Language[35][lang],Language[36][lang],Language[6][lang],Language[7][lang]);
    8. case 4: ShowPlayerDialogEx(playerid,1,2,Language[37][lang],Language[38][lang],Language[6][lang],Language[7][lang]);
    9. case 5: ShowPlayerDialogEx(playerid,1,1,Language[39][lang],Language[40][lang],Language[6][lang],Language[7][lang]);
    10. default: return false;
    11. }
    12. return true;
    13. }


    И числа в Language и ShowPlayerDialogEx - магические числа, советовал бы от них избавляться.
    Последний раз редактировалось SteveStage; 16.04.2020 в 16:21.

  3. #3
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Можно использовать uncrustify. Конфиг для allman-style:
    PHP код:
    #
    #  This program is free software; you can redistribute it and/or modify
    #  it under the terms of the GNU General Public License as published by
    #  the Free Software Foundation; either version 2, or (at your option)
    #  any later version.
    #
    #  This program is distributed in the hope that it will be useful,
    #  but WITHOUT ANY WARRANTY; without even the implied warranty of
    #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #  GNU General Public License for more details.
    #
    #  You should have received a copy of the GNU General Public License
    #  along with this program; if not, write to the Free Software
    #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    #
    #  Allman style
    #

    # indent using tabs
    output_tab_size                          4
    indent_columns                           
    output_tab_size
    indent_with_tabs                         
    1

    # indent case
    indent_switch_case                       indent_columns
    indent_case_brace                        
    0

    # newlines
    newlines                                 lf
    nl_after_semicolon                       
    true
    nl_start_of_file                         
    remove
    nl_end_of_file                           
    force
    nl_end_of_file_min                       
    1

    # spaces
    sp_return_paren                          force      # "return (1);" vs "return(1);"
    sp_sizeof_paren                          force      # "sizeof (int)" vs "sizeof(int)"
    sp_assign                                force
    sp_arith                                 
    force
    sp_bool                                  
    force
    sp_compare                               
    force
    sp_after_comma                           
    force
    sp_case_label                            
    force
    sp_else_brace                            
    force
    sp_brace_else                            
    force
    sp_func_call_paren                       
    force      # "foo (" vs "foo("
    sp_func_proto_paren                      force      # "int foo ();" vs "int foo();"
    sp_before_ptr_star                       force
    sp_after_ptr_star_qualifier              
    force      # "const char * const" vs. "const char *const"
    sp_after_ptr_star                        remove
    sp_between_ptr_star                      
    remove     # "**var" vs "* *var"
    sp_inside_paren                          remove     # "( 1 )" vs "(1)"
    sp_inside_fparen                         remove     # "( 1 )" vs "(1)" - functions
    sp_inside_sparen                         remove     # "( 1 )" vs "(1)" - if/for/etc
    sp_after_cast                            force     # "(int) a" vs "(int)a"
    sp_func_call_user_paren                  remove     # For gettext, "_()" vs. "_ ()"
    set func_call_user _ N_ C_                            # Needed for sp_after_cast
    sp_before_semi                           remove
    sp_paren_paren                           
    remove     # Space between (( and ))

    eat_blanks_before_close_brace            true
    eat_blanks_after_open_brace              
    true

    # Allman style for curly braces
    nl_assign_brace                          force
    nl_enum_brace                            
    force
    nl_union_brace                           
    force
    nl_struct_brace                          
    force
    nl_class_brace                           
    force
    nl_do_brace                              
    force
    nl_if_brace                              
    force
    nl_for_brace                             
    force
    nl_else_brace                            
    force
    nl_elseif_brace                          
    force
    nl_while_brace                           
    force
    nl_switch_brace                          
    force
    nl_before_case                           
    false
    nl_fcall_brace                           
    force
    nl_fdef_brace                            
    force
    nl_brace_else                            
    force
    nl_brace_while                           
    force
    nl_case_colon_brace                      
    force
    nl_after_brace_open                      
    true


    # Code modifying options (non-whitespace)
    mod_full_brace_do                        force
    mod_full_brace_for                       
    force
    mod_full_brace_function                  
    force
    mod_full_brace_if                        
    force
    mod_full_brace_while                     
    force
    mod_case_brace                           
    force

    # Align
    align_func_params                        true
    align_single_line_func                   
    true
    align_var_def_star_style                 
    2

    # one liners
    nl_func_leave_one_liners                 true
    nl_enum_leave_one_liners                 
    true
    nl_assign_leave_one_liners               
    true

    # Comments
    cmt_cpp_to_c                             true       # "/* */" vs. "//"
    cmt_convert_tab_to_spaces                true
    #cmt_reflow_mode                         = 2          # Full reflow (seems doesn't work quite well, it doesn't reorder the comments)
    #cmt_width                               = 80         # Line width
    cmt_star_cont                            true       # Whether to put a star on subsequent comment lines
    cmt_sp_after_star_cont                   1          # The number of spaces to insert after the star on subsequent comment lines
    cmt_c_nl_start                           false      # false/true
    cmt_c_nl_end                             true       # false/true
    # For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
    # the comment are the same length. Default=True
    cmt_multi_check_last                     false

    # Encoding
    utf8_bom                                 remove
    utf8_force                               
    true 
    Использовать так:

    PHP код:
    .\uncrustify.exe -.\cfg\allman.cfg -.\test.-o out.

    Выход от табулятора:

      Открыть/закрыть


    Последний раз редактировалось tnc; 16.04.2020 в 18:14.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •