sublime格式化外掛
阿新 • • 發佈:2018-11-19
下載
github
# 開啟擴充套件資料夾
# 安裝
git clone https://github.com/akalongman/sublimetext-codeformatter.git CodeFormatter
配置
重啟sublime
首選項Preferences -> 外掛設定Package Setting -> CodeFormatter -> Setting – User對外掛進行配置
注意php_path配置php檔案路徑
{ "codeformatter_debug": false, "codeformatter_php_options": { "syntaxes": "php", // Syntax names which must process PHP formatter "php_path": "/usr/bin/php", // Path for PHP executable, e.g. "/usr/lib/php" or "C:/Program Files/PHP/php.exe". If empty, uses command "php" from system environments "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "php55_compat": false, // PHP 5.5 compatible mode "psr1": false, // Activate PSR1 style "psr1_naming": false, // Activate PSR1 style - Section 3 and 4.3 - Class and method names case "psr2": true, // Activate PSR2 style "indent_with_space": 4, // Use spaces instead of tabs for indentation "enable_auto_align": true, // Enable auto align of = and => "visibility_order": true, // Fixes visibility order for method in classes - PSR-2 4.2 "smart_linebreak_after_curly": true, // Convert multistatement blocks into multiline blocks // Enable specific transformations. Example: ["ConvertOpenTagWithEcho", "PrettyPrintDocBlocks"] // You can list all available transformations from command palette: CodeFormatter: Show PHP Transformations "passes": [], // Disable specific transformations "excludes": [] }, "codeformatter_js_options": { "syntaxes": "javascript,json", // Syntax names which must process JS formatter "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "indent_size": 4, // indentation size "indent_char": " ", // Indent character "indent_with_tabs": false, // Indent with one tab (overrides indent_size and indent_char options) "eol": "\n", // EOL symbol "preserve_newlines": false, // whether existing line breaks should be preserved, "max_preserve_newlines": 10, // maximum number of line breaks to be preserved in one chunk "space_in_paren": false, // Add padding spaces within paren, ie. f( a, b ) "space_in_empty_paren": false, // Add padding spaces within paren if parent empty, ie. f( ) "e4x": false, // Pass E4X xml literals through untouched "jslint_happy": false, // if true, then jslint-stricter mode is enforced. Example function () vs function() "space_after_anon_function": false, // Space after anonimouse functions "brace_style": "collapse", // "collapse" | "expand" | "end-expand". put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or just put end braces on own line. "keep_array_indentation": false, // keep array indentation. "keep_function_indentation": false, // keep function indentation. "eval_code": false, // eval code "unescape_strings": false, // Decode printable characters encoded in xNN notation "wrap_line_length": 0, // Wrap lines at next opportunity after N characters "unindent_chained_methods": false, // Unindent chained method calls "break_chained_methods": false, // Break chained method calls across subsequent lines "end_with_newline": false, // Add new line at end of file "comma_first": false, // Add comma first "operator_position": "before-newline" // Operator position: before-newline, after-newline, preserve-newline }, "codeformatter_css_options": { "syntaxes": "css,less", // Syntax names which must process CSS formatter "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "indent_size": 4, // Indentation size "indent_char": " ", // Indentation character "indent_with_tabs": false, // Indent with one tab (overrides indent_size and indent_char options) "selector_separator_newline": false, // Add new lines after selector separators "end_with_newline": false, // Add new line of end in file "newline_between_rules": false, // Add new line between rules "space_around_combinator": false, // Space around combinator "eol": "\n" // EOL symbol }, "codeformatter_scss_options": { "syntaxes": "scss,sass", // Indentation size "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "indent_size": 4, // Indentation size "indent_char": " ", // Indentation character "indent_with_tabs": false, // Indent with one tab (overrides indent_size and indent_char options) "selector_separator_newline": false, // Add new lines after selector separators "end_with_newline": false, // Add new line of end in file "newline_between_rules": false, // Add new line between rules "space_around_combinator": false, // Space around combinator "eol": "\n" // EOL symbol }, "codeformatter_html_options": { "syntaxes": "html,blade,asp,xml", // Syntax names which must process HTML formatter "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "formatter_version": "bs4", // Which formatter to use. Current options are "bs4" and "regexp". If an error occurs while loading the bs4 formatter, the regexp formatter will automatically be used "indent_size": 4, // indentation size "indent_char": " ", // Indentation character "indent_with_tabs": false, // Indent with one tab (overrides indent_size and indent_char options) "exception_on_tag_mismatch": false, // If the last closing tag is not at the same indentation level as the first opening tag, there's probably a tag mismatch in the file "expand_javascript": false, // (Under construction) Expand JavaScript inside of <script> tags (also affects CSS purely by coincidence) "expand_tags": false, // Expand tag attributes onto new lines "minimum_attribute_count": 2, // Minimum number of attributes needed before tag attributes are expanded to new lines "first_attribute_on_new_line": false, // Put all attributes on separate lines from the tag (only uses 1 indentation unit as opposed to lining all attributes up with the first) "reduce_empty_tags": false, // Put closing tags on same line as opening tag if there is no content between them "reduce_whole_word_tags": false, // Put closing tags on same line as opening tag if there is whole word between them "custom_singletons": "" // Custom singleton tags for various template languages outside of the HTML5 spec }, "codeformatter_python_options": { "syntaxes": "python", // Syntax names which must process Python formatter "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "indent_size": 1, // indentation size "indent_with_tabs": true, // Indent with tabs or spaces "max_char": 80, // Width of output lines in characters. "assignment": " = ", // This is how the assignment operator is to appear. "function_param_assignment": "=", // This is how function-parameter assignment should appear. "function_param_sep": ", ", // This is how function parameters are separated. "list_sep": ", ", // This is how list items are separated. "subscript_sep": "=", // This is how subscripts are separated. "dict_colon": ": ", // This separates dictionary keys from values. "slice_colon": ":", // this separates the start:end indices of slices. "comment_prefix": "# ", // This is the sentinel that marks the beginning of a commentary string. "shebang": "#!/usr/bin/env python", // Hashbang, a line-one comment naming the Python interpreter to Unix shells. "boilerplate": "", // Standard code block (if any). This is inserted after the module doc string on output. "blank_line": "", // This is how a blank line is to appear (up to the newline character). "keep_blank_lines": true, // If true, preserve one blank where blank(s) are encountered. "add_blank_lines_around_comments": true, // If true, set off comment blocks with blanks. "add_blank_line_after_doc_string": true, // If true, add blank line after doc strings. "max_seps_func_def": 3, // Split lines containing longer function definitions. "max_seps_func_ref": 5, // Split lines containing longer function calls. "max_seps_series": 5, // Split lines containing longer lists or tuples. "max_seps_dict": 3, // Split lines containing longer dictionary definitions. "max_lines_before_split_lit": 2, // Split string literals containing more newline characters. "left_margin": "", // This is how the left margin is to appear. "normalize_doc_strings": false, // If true, normalize white space in doc strings. "leftjust_doc_strings": false, // If true, left justify doc strings. "wrap_doc_strings": false, // If true, wrap doc strings to max_char. "leftjust_comments": false, // If true, left justify comments. "wrap_comments": false, // If true, wrap comments to max_char. "double_quoted_strings": false, // If true, use quotes instead of apostrophes for string literals. "single_quoted_strings": false, // If true, use apostrophes instead of quotes for string literals. "can_split_strings": false, // If true, longer strings are split at the max_char. "doc_tab_replacement": "....", // This literal replaces tab characters in doc strings and comments. // Optionally preserve unassigned constants so that code to be tidied // may contain blocks of commented-out lines that have been no-op'ed // with leading and trailing triple quotes. Python scripts may declare // constants without assigning them to a variables, but CodeFormatter // considers this wasteful and normally elides them. "keep_unassigned_constants": false, // Optionally omit parentheses around tuples, which are superfluous // after all. Normal CodeFormatter behavior will be still to include them // as a sort of tuple display analogous to list displays, dict // displays, and yet-to-come set displays. "parenthesize_tuple_display": true, // When CodeFormatter splits longer lines because max_seps // are exceeded, the statement normally is closed before the margin is // restored. The closing bracket, brace, or parenthesis is placed at the // current indent level. This looks ugly to "C" programmers. When // java_style_list_dedent is True, the closing bracket, brace, or // parenthesis is brought back left to the indent level of the enclosing // statement. "java_style_list_dedent": false }, "codeformatter_vbscript_options": { "syntaxes": "vbscript", // Syntax names which must process VBScript formatter "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "indent_size": 1, // indentation size "indent_char": "\t", // Indentation character "indent_with_tabs": true, // Indent with one tab (overrides indent_size and indent_char options) "preserve_newlines": true, // Preserve existing line-breaks "max_preserve_newlines": 10, // Maximum number of line-breaks to be preserved in one chunk "opening_tags": "^(Function .*|Sub .*|If .* Then|For .*|Do While .*|Select Case.*)", // List of keywords which open a new block "middle_tags": "^(Else|ElseIf .* Then|Case .*)$", // List of keywords which divide a block, but neither open or close the block "closing_tags": "(End Function|End Sub|End If|Next|Loop|End Select)$" // List of keywords which close an open block }, "codeformatter_coldfusion_options": { "syntaxes": "coldfusion,cfm,cfml", // Syntax names which must process Coldfusion Markup Language formatter "format_on_save": false, // Format on save. Either a boolean (true/false) or a string regexp tested on filename. Example : "^((?!.min.|vendor).)*$" "indent_size": 2, // indentation size "indent_char": " ", // Indentation character "indent_with_tabs": false, // Indent with one tab (overrides indent_size and indent_char options) "exception_on_tag_mismatch": false, // If the last closing tag is not at the same indentation level as the first opening tag, there's probably a tag mismatch in the file "expand_javascript": false, // (Under construction) Expand JavaScript inside of <script> tags (also affects CSS purely by coincidence) "expand_tags": false, // Expand tag attributes onto new lines "minimum_attribute_count": 2, // Minimum number of attributes needed before tag attributes are expanded to new lines "first_attribute_on_new_line": false, // Put all attributes on separate lines from the tag (only uses 1 indentation unit as opposed to lining all attributes up with the first) "reduce_empty_tags": false, // Put closing tags on same line as opening tag if there is no content between them "reduce_whole_word_tags": false, // Put closing tags on same line as opening tag if there is whole word between them "custom_singletons": "" // Custom singleton tags for various template languages outside of the HTML5 spec } }
使用
# 右鍵單擊 Format Code 進行格式化