Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ffb5e4426 | ||
|
|
aa9a8beafa | ||
|
|
56ddd730d9 | ||
|
|
2ad0c5176a | ||
|
|
c3383ee125 | ||
|
|
204cf3d702 | ||
|
|
9bcfd5174e | ||
|
|
297825af4a | ||
|
|
c246d5ae46 | ||
|
|
5e85ad4283 | ||
|
|
631e24f690 | ||
|
|
df1613046f | ||
|
|
af89dfd3cb | ||
|
|
62713fe165 | ||
|
|
0add646b21 | ||
|
|
bb885d22ba | ||
|
|
3f467c58de | ||
|
|
8edb11ab09 | ||
|
|
7171c3a9ec | ||
|
|
62ed88a770 | ||
|
|
2e9fe14947 | ||
|
|
a865024320 | ||
|
|
0c3eb8ec46 | ||
|
|
785d52fa55 | ||
|
|
b637cbb6d2 | ||
|
|
9ae2751ce4 | ||
|
|
3cf316a785 | ||
|
|
a5b17494e3 | ||
|
|
6c530550af | ||
|
|
fdbae61b21 | ||
|
|
fd13fe36d5 | ||
|
|
a62e84df90 | ||
|
|
06ab3e60a1 | ||
|
|
555b106346 | ||
|
|
0d3113cfbb | ||
|
|
63973c381d | ||
|
|
9d566d77d4 | ||
|
|
f5c48f89e2 | ||
|
|
34a2afaa7e | ||
|
|
26d2c5e1d6 | ||
|
|
61621517fc | ||
|
|
010c88cbee | ||
|
|
66796b7075 | ||
|
|
ff3cf03bb3 | ||
|
|
529b93f073 | ||
|
|
caafa42ade | ||
|
|
378dda7c97 | ||
|
|
ceed0550ed | ||
|
|
85b22457a2 | ||
|
|
b439d89c9d |
+1
-1
@@ -7,4 +7,4 @@ AStyleTest/file-py/*.tmp
|
||||
AStyleTest/file-py/*.pyc
|
||||
AStyleTest/file-py/test-diff.txt
|
||||
AStyleTest/file-py/test.txt
|
||||
|
||||
AStyle/src/.idea/
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
cmake_policy(SET CMP0112 OLD)
|
||||
project(astyle CXX)
|
||||
|
||||
include( build/cmake/Options.cmake REQUIRED )
|
||||
|
||||
@@ -27,6 +27,6 @@ else()
|
||||
endif()
|
||||
install(TARGETS astyle DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
|
||||
install(FILES ${DOCS} DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/astyle/html")
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/astyle.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1)
|
||||
INSTALL(FILES ${MAN} DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man1")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -10,7 +10,7 @@ endif()
|
||||
|
||||
# Linux Soname Version
|
||||
set(MAJORVER 3)
|
||||
set(MINORVER 2)
|
||||
set(MINORVER 3)
|
||||
set(PATCHVER 0)
|
||||
set(SOLIBVER ${MAJORVER}.${MINORVER}.${PATCHVER})
|
||||
|
||||
@@ -25,6 +25,9 @@ list(APPEND DOCS
|
||||
doc/notes.html
|
||||
doc/styles.css)
|
||||
|
||||
list(APPEND MAN
|
||||
man/astyle.1)
|
||||
|
||||
# Define java as a shared library
|
||||
if(BUILD_JAVA_LIBS)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
|
||||
+279
-196
@@ -17,15 +17,16 @@
|
||||
<style type="text/css">
|
||||
hr { margin-left: -0.4in; }
|
||||
/* the following styles are for formatting code samples */
|
||||
div.code { background: #DADAFF; }
|
||||
div.code { background: #fffdda; padding: 0.5em; border: 1px gray solid; border-radius: 5px;}
|
||||
/* code */
|
||||
p.code { margin-left: 0.3in; }
|
||||
code { color: navy; }
|
||||
code.title { font-size: larger; font-weight: bold; }
|
||||
code { color: mediumblue; }
|
||||
code.title { font-size: larger; font-weight: bold; }
|
||||
/* spans */
|
||||
span.brace { color: red; }
|
||||
span.comment { color: dimgray; font-style: italic; }
|
||||
span.option { color: saddlebrown; font-weight: bold; }
|
||||
|
||||
p.contents2 > a { margin-left: 2em; display: list-item;}
|
||||
</style>
|
||||
|
||||
<!-- When the user scrolls down from the top of the document, show the button -->
|
||||
@@ -59,164 +60,168 @@
|
||||
|
||||
<button onclick="topFunction()" id="topBtn" title="Go to Contents"><b>Top</b></button>
|
||||
|
||||
<h1>Artistic Style 3.2</h1>
|
||||
<h1>Artistic Style 3.3</h1>
|
||||
|
||||
<h2>
|
||||
A Free, Fast, and Small Automatic Formatter<br />
|
||||
for C, C++, C++/CLI, Objective‑C, C#, and Java Source Code
|
||||
for C, C++, C++/CLI, Objective-C, C#, and Java Source Code
|
||||
</h2>
|
||||
|
||||
<h3 id="Contents">Contents</h3>
|
||||
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_General_Information">General Information</a></p>
|
||||
<a href="#_General_Information">General Information</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Quick_Start">Quick Start</a></p>
|
||||
<a href="#_Quick_Start">Quick Start</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Usage">Usage</a></p>
|
||||
<a href="#_Usage">Usage</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Options">Options</a></p>
|
||||
<a href="#_Options">Options</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Option_Files">Option Files</a></p>
|
||||
<a href="#_Option_Files">Option Files</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Disable_Formatting">Disable Formatting</a></p>
|
||||
<a href="#_Disable_Formatting">Disable Formatting</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Basic_Brace_Styles">Basic Brace Styles</a></p>
|
||||
<a href="#_Basic_Brace_Styles">Basic Brace Styles</a></p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Brace_Style_Options">Brace Style Options</a></p>
|
||||
<a href="#_Brace_Style_Options">Brace Style Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_default_brace_style">default brace style</a>
|
||||
<a class="contents" href="#_style=allman">style=allman</a>
|
||||
<a class="contents" href="#_style=java">style=java</a>
|
||||
<a class="contents" href="#_style=kr">style=kr</a>
|
||||
<a class="contents" href="#_style=stroustrup">style=stroustrup</a>
|
||||
<a class="contents" href="#_style=whitesmith">style=whitesmith</a>
|
||||
<a class="contents" href="#_style=vtk">style=vtk</a>
|
||||
<a class="contents" href="#_style=ratliff">style=ratliff</a>
|
||||
<a class="contents" href="#_style=gnu">style=gnu</a>
|
||||
<a class="contents" href="#_style=linux">style=linux</a>
|
||||
<a class="contents" href="#_style=horstmann">style=horstmann</a>
|
||||
<a class="contents" href="#_style=1tbs">style=1tbs</a>
|
||||
<a class="contents" href="#_style=google">style=google</a>
|
||||
<a class="contents" href="#_style=mozilla">style=mozilla</a>
|
||||
<a class="contents" href="#_style=webkit">style=webkit</a>
|
||||
<a class="contents" href="#_style=pico">style=pico</a>
|
||||
<a class="contents" href="#_style=lisp">style=lisp</a>
|
||||
<a class="contents" href="#_default_brace_style">default brace style</a>
|
||||
<a class="contents" href="#_style=allman">style=allman</a>
|
||||
<a class="contents" href="#_style=java">style=java</a>
|
||||
<a class="contents" href="#_style=kr">style=kr</a>
|
||||
<a class="contents" href="#_style=stroustrup">style=stroustrup</a>
|
||||
<a class="contents" href="#_style=whitesmith">style=whitesmith</a>
|
||||
<a class="contents" href="#_style=vtk">style=vtk</a>
|
||||
<a class="contents" href="#_style=ratliff">style=ratliff</a>
|
||||
<a class="contents" href="#_style=gnu">style=gnu</a>
|
||||
<a class="contents" href="#_style=linux">style=linux</a>
|
||||
<a class="contents" href="#_style=horstmann">style=horstmann</a>
|
||||
<a class="contents" href="#_style=1tbs">style=1tbs</a>
|
||||
<a class="contents" href="#_style=google">style=google</a>
|
||||
<a class="contents" href="#_style=mozilla">style=mozilla</a>
|
||||
<a class="contents" href="#_style=webkit">style=webkit</a>
|
||||
<a class="contents" href="#_style=pico">style=pico</a>
|
||||
<a class="contents" href="#_style=lisp">style=lisp</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Tab_Options">Tab Options</a></p>
|
||||
<a href="#_Tab_Options">Tab Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_default_indent">default indent</a>
|
||||
<a class="contents" href="#_indent=spaces">indent=spaces</a>
|
||||
<a class="contents" href="#_indent=tab">indent=tab</a>
|
||||
<a class="contents" href="#_indent=force-tab">indent=force‑tab</a>
|
||||
<a class="contents" href="#_indent=force-tab-x">--indent=force‑tab‑x</a>
|
||||
<a class="contents" href="#_default_indent">default indent</a>
|
||||
<a class="contents" href="#_indent=spaces">indent=spaces</a>
|
||||
<a class="contents" href="#_indent=tab">indent=tab</a>
|
||||
<a class="contents" href="#_indent=force-tab">indent=force-tab</a>
|
||||
<a class="contents" href="#_indent=force-tab-x">--indent=force-tab-x</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Brace_Modify_Options">Brace Modify Options</a></p>
|
||||
<a href="#_Brace_Modify_Options">Brace Modify Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_attach_namespaces">attach‑namespaces</a>
|
||||
<a class="contents" href="#_attach_classes">attach‑classes</a>
|
||||
<a class="contents" href="#_attach_inlines">attach‑inlines</a>
|
||||
<a class="contents" href="#_attach-extern-c">attach‑extern‑c</a>
|
||||
<a class="contents" href="#_attach-closing-while">attach‑closing‑while</a>
|
||||
<a class="contents" href="#_attach_namespaces">attach-namespaces</a>
|
||||
<a class="contents" href="#_attach_classes">attach-classes</a>
|
||||
<a class="contents" href="#_attach_inlines">attach-inlines</a>
|
||||
<a class="contents" href="#_attach-extern-c">attach-extern-c</a>
|
||||
<a class="contents" href="#_attach-closing-while">attach-closing-while</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Indentation_Options">Indentation Options</a></p>
|
||||
<a href="#_Indentation_Options">Indentation Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_indent-classes">indent‑classes</a>
|
||||
<a class="contents" href="#_indent-modifiers">indent‑modifiers</a>
|
||||
<a class="contents" href="#_indent-switches">indent‑switches</a>
|
||||
<a class="contents" href="#_indent-cases">indent‑cases</a>
|
||||
<a class="contents" href="#_indent-namespaces">indent‑namespaces</a>
|
||||
<a class="contents" href="#_indent-after-parens">indent‑after‑parens</a>
|
||||
<a class="contents" href="#_indent-continuation">indent‑continuation</a>
|
||||
<a class="contents" href="#_indent-labels">indent‑labels</a>
|
||||
<a class="contents" href="#_indent-preproc-block">indent‑preproc‑block</a>
|
||||
<a class="contents" href="#_indent-preproc-define">indent‑preproc‑define</a>
|
||||
<a class="contents" href="#_indent-preproc-cond">indent‑preproc‑cond</a>
|
||||
<a class="contents" href="#_indent-col1-comments">indent‑col1‑comments</a>
|
||||
<a class="contents" href="#_min-conditional-indent">min‑conditional‑indent</a>
|
||||
<a class="contents" href="#_max-continuation-indent">max‑continuation‑indent</a>
|
||||
<a class="contents" href="#_indent-classes">indent-classes</a>
|
||||
<a class="contents" href="#_indent-modifiers">indent-modifiers</a>
|
||||
<a class="contents" href="#_indent-switches">indent-switches</a>
|
||||
<a class="contents" href="#_indent-cases">indent-cases</a>
|
||||
<a class="contents" href="#_indent-namespaces">indent-namespaces</a>
|
||||
<a class="contents" href="#_indent-after-parens">indent-after-parens</a>
|
||||
<a class="contents" href="#_indent-continuation">indent-continuation</a>
|
||||
<a class="contents" href="#_indent-labels">indent-labels</a>
|
||||
<a class="contents" href="#_indent-preproc-block">indent-preproc-block</a>
|
||||
<a class="contents" href="#_indent-preproc-define">indent-preproc-define</a>
|
||||
<a class="contents" href="#_indent-preproc-cond">indent-preproc-cond</a>
|
||||
<a class="contents" href="#_indent-col1-comments">indent-col1-comments</a>
|
||||
<a class="contents" href="#_min-conditional-indent">min-conditional-indent</a>
|
||||
<a class="contents" href="#_max-continuation-indent">max-continuation-indent</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Padding_Options">Padding Options</a></p>
|
||||
<a href="#_Padding_Options">Padding Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_break-blocks">break‑blocks</a>
|
||||
<a class="contents" href="#_break-blocks=all">break‑blocks=all</a>
|
||||
<a class="contents" href="#_pad-oper">pad‑oper</a>
|
||||
<a class="contents" href="#_pad-comma">pad‑comma</a>
|
||||
<a class="contents" href="#_pad-paren">pad‑paren</a>
|
||||
<a class="contents" href="#_pad-paren-out">pad‑paren‑out</a>
|
||||
<a class="contents" href="#_pad-first-paren-out">pad‑first‑paren‑out</a>
|
||||
<a class="contents" href="#_pad-paren-in">pad‑paren‑in</a>
|
||||
<a class="contents" href="#_pad-header">pad‑header</a>
|
||||
<a class="contents" href="#_unpad-paren">unpad‑paren</a>
|
||||
<a class="contents" href="#_delete-empty-lines">delete‑empty‑lines</a>
|
||||
<a class="contents" href="#_fill-empty-lines">fill‑empty‑lines</a>
|
||||
<a class="contents" href="#_align-pointer">align‑pointer</a>
|
||||
<a class="contents" href="#_align-reference">align‑reference</a>
|
||||
<a class="contents" href="#_break-blocks">break-blocks</a>
|
||||
<a class="contents" href="#_break-blocks=all">break-blocks=all</a>
|
||||
<a class="contents" href="#_pad-oper">pad-oper</a>
|
||||
<a class="contents" href="#_pad-comma">pad-comma</a>
|
||||
<a class="contents" href="#_pad-paren">pad-paren</a>
|
||||
<a class="contents" href="#_pad-paren-out">pad-paren-out</a>
|
||||
<a class="contents" href="#_pad-first-paren-out">pad-first-paren-out</a>
|
||||
<a class="contents" href="#_pad-paren-in">pad-paren-in</a>
|
||||
<a class="contents" href="#_pad-header">pad-header</a>
|
||||
<a class="contents" href="#_unpad-paren">unpad-paren</a>
|
||||
<a class="contents" href="#_pad-brackets">pad-brackets</a>
|
||||
<a class="contents" href="#_unpad-brackets">unpad-brackets</a>
|
||||
<a class="contents" href="#_delete-empty-lines">delete-empty-lines</a>
|
||||
<a class="contents" href="#_fill-empty-lines">fill-empty-lines</a>
|
||||
<a class="contents" href="#_squeeze-ws">squeeze-ws</a>
|
||||
<a class="contents" href="#_squeeze-lines">squeeze-lines</a>
|
||||
<a class="contents" href="#_align-pointer">align-pointer</a>
|
||||
<a class="contents" href="#_align-reference">align-reference</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Formatting_Options">Formatting Options</a></p>
|
||||
<a href="#_Formatting_Options">Formatting Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_break-closing-braces">break‑closing‑braces</a>
|
||||
<a class="contents" href="#_break-elseifs">break‑elseifs</a>
|
||||
<a class="contents" href="#_break-one-line-headers">break‑one‑line‑headers</a>
|
||||
<a class="contents" href="#_add-braces">add‑braces</a>
|
||||
<a class="contents" href="#_add-one-line-braces">add‑one‑line‑braces</a>
|
||||
<a class="contents" href="#_remove-braces">remove‑braces</a>
|
||||
<a class="contents" href="#_break-return-type">break‑return‑type</a>
|
||||
<a class="contents" href="#_attach-return-type">attach‑return‑type</a>
|
||||
<a class="contents" href="#_keep-one-line-blocks">keep‑one‑line‑blocks</a>
|
||||
<a class="contents" href="#_keep-one-line-statements">keep‑one‑line‑statements</a>
|
||||
<a class="contents" href="#_convert-tabs">convert‑tabs</a>
|
||||
<a class="contents" href="#_close-templates">close‑templates</a>
|
||||
<a class="contents" href="#_remove-comment-prefix">remove‑comment‑prefix</a>
|
||||
<a class="contents" href="#_max-code-length">max‑code‑length</a>
|
||||
<a class="contents" href="#_max-code-length">break‑after‑logical</a>
|
||||
<a class="contents" href="#_mode">mode</a>
|
||||
<a class="contents" href="#_break-closing-braces">break-closing-braces</a>
|
||||
<a class="contents" href="#_break-elseifs">break-elseifs</a>
|
||||
<a class="contents" href="#_break-one-line-headers">break-one-line-headers</a>
|
||||
<a class="contents" href="#_add-braces">add-braces</a>
|
||||
<a class="contents" href="#_add-one-line-braces">add-one-line-braces</a>
|
||||
<a class="contents" href="#_remove-braces">remove-braces</a>
|
||||
<a class="contents" href="#_break-return-type">break-return-type</a>
|
||||
<a class="contents" href="#_attach-return-type">attach-return-type</a>
|
||||
<a class="contents" href="#_keep-one-line-blocks">keep-one-line-blocks</a>
|
||||
<a class="contents" href="#_keep-one-line-statements">keep-one-line-statements</a>
|
||||
<a class="contents" href="#_convert-tabs">convert-tabs</a>
|
||||
<a class="contents" href="#_close-templates">close-templates</a>
|
||||
<a class="contents" href="#_remove-comment-prefix">remove-comment-prefix</a>
|
||||
<a class="contents" href="#_max-code-length">max-code-length</a>
|
||||
<a class="contents" href="#_max-code-length">break-after-logical</a>
|
||||
<a class="contents" href="#_mode">mode</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Objective_C_Options">Objective‑C Options</a></p>
|
||||
<a href="#_Objective_C_Options">Objective-C Options</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_pad-method-prefix">pad‑method‑prefix</a>
|
||||
<a class="contents" href="#_unpad-method-prefix">unpad‑method‑prefix</a>
|
||||
<a class="contents" href="#_pad-return-type">pad‑return‑type</a>
|
||||
<a class="contents" href="#_unpad-return-type">unpad‑return‑type</a>
|
||||
<a class="contents" href="#_pad-param-type">pad‑param‑type</a>
|
||||
<a class="contents" href="#_unpad-param-type">unpad‑param‑type</a>
|
||||
<a class="contents" href="#_align-method-colon">align‑method‑colon</a>
|
||||
<a class="contents" href="#_pad-method-colon">pad‑method‑colon</a>
|
||||
<a class="contents" href="#_pad-method-prefix">pad-method-prefix</a>
|
||||
<a class="contents" href="#_unpad-method-prefix">unpad-method-prefix</a>
|
||||
<a class="contents" href="#_pad-return-type">pad-return-type</a>
|
||||
<a class="contents" href="#_unpad-return-type">unpad-return-type</a>
|
||||
<a class="contents" href="#_pad-param-type">pad-param-type</a>
|
||||
<a class="contents" href="#_unpad-param-type">unpad-param-type</a>
|
||||
<a class="contents" href="#_align-method-colon">align-method-colon</a>
|
||||
<a class="contents" href="#_pad-method-colon">pad-method-colon</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Other_Options">Other Options</a> </p>
|
||||
<a href="#_Other_Options">Other Options</a> </p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_suffix">suffix</a> <a class="contents" href="#_suffix=none">suffix=none</a>
|
||||
<a class="contents" href="#_recursive">recursive</a>
|
||||
<a class="contents" href="#_dry-run">dry-run</a>
|
||||
<a class="contents" href="#_exclude">exclude</a>
|
||||
<a class="contents" href="#_ignore-exclude-errors">ignore‑exclude‑errors</a>
|
||||
<a class="contents" href="#_ignore-exclude-errors-x">ignore‑exclude‑errors‑x</a>
|
||||
<a class="contents" href="#_errors-to-stdout">errors‑to‑stdout</a>
|
||||
<a class="contents" href="#_preserve-date">preserve‑date</a>
|
||||
<a class="contents" href="#_verbose">verbose</a>
|
||||
<a class="contents" href="#_formatted">formatted</a>
|
||||
<a class="contents" href="#_quiet">quiet</a>
|
||||
<a class="contents" href="#_lineend">lineend</a>
|
||||
<a class="contents" href="#_suffix">suffix</a> <a class="contents" href="#_suffix=none">suffix=none</a>
|
||||
<a class="contents" href="#_recursive">recursive</a>
|
||||
<a class="contents" href="#_dry-run">dry-run</a>
|
||||
<a class="contents" href="#_exclude">exclude</a>
|
||||
<a class="contents" href="#_ignore-exclude-errors">ignore-exclude-errors</a>
|
||||
<a class="contents" href="#_ignore-exclude-errors-x">ignore-exclude-errors-x</a>
|
||||
<a class="contents" href="#_errors-to-stdout">errors-to-stdout</a>
|
||||
<a class="contents" href="#_preserve-date">preserve-date</a>
|
||||
<a class="contents" href="#_verbose">verbose</a>
|
||||
<a class="contents" href="#_formatted">formatted</a>
|
||||
<a class="contents" href="#_quiet">quiet</a>
|
||||
<a class="contents" href="#_lineend">lineend</a>
|
||||
</p>
|
||||
<p class="contents1">
|
||||
<a class="contents" href="#_Command_Line_Only">Command Line Only</a></p>
|
||||
<a href="#_Command_Line_Only">Command Line Only</a></p>
|
||||
<p class="contents2">
|
||||
<a class="contents" href="#_options">options</a>
|
||||
<a class="contents" href="#_project">project</a>
|
||||
<a class="contents" href="#_ascii">ascii</a>
|
||||
<a class="contents" href="#_version">version</a>
|
||||
<a class="contents" href="#_help">help</a>
|
||||
<a class="contents" href="#_html">html</a>
|
||||
<a class="contents" href="#_html=">html=</a>
|
||||
<a class="contents" href="#_stdin=">stdin=</a>
|
||||
<a class="contents" href="#_stdout=">stdout=</a>
|
||||
<a class="contents" href="#_options">options</a>
|
||||
<a class="contents" href="#_project">project</a>
|
||||
<a class="contents" href="#_ascii">ascii</a>
|
||||
<a class="contents" href="#_version">version</a>
|
||||
<a class="contents" href="#_help">help</a>
|
||||
<a class="contents" href="#_html">html</a>
|
||||
<a class="contents" href="#_html=">html=</a>
|
||||
<a class="contents" href="#_stdin=">stdin=</a>
|
||||
<a class="contents" href="#_stdout=">stdout=</a>
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
@@ -268,11 +273,11 @@
|
||||
these settings. If no translation is available it will default to English. There is an "ascii" option to use English
|
||||
instead of the system language.</p>
|
||||
<p>
|
||||
The source code for the translations is at the end of ASLocalizer.cpp in the form of an English‑Translation
|
||||
The source code for the translations is at the end of ASLocalizer.cpp in the form of an English-Translation
|
||||
pair. If you make corrections to a translation, send the source as a bug report and it will be included in the
|
||||
next release.</p>
|
||||
<p>
|
||||
To add a new language, add a new translation class to ASLocalizer.h. Add the English‑Translation pair to
|
||||
To add a new language, add a new translation class to ASLocalizer.h. Add the English-Translation pair to
|
||||
the constructor in ASLocalizer.cpp. Update the WinLangCode array and add the language code to the function setTranslationClass().
|
||||
The ASLocalizer.cpp program contains comments that give web pages for obtaining the LCIDs and language codes.
|
||||
Send the source code as a bug report and it will be included in the next release.</p>
|
||||
@@ -283,10 +288,10 @@
|
||||
The names of special characters used in programming vary by region. The terminology used by Artistic Style,
|
||||
followed by other common names, is<strong>:</strong></p>
|
||||
<blockquote>
|
||||
braces or curly braces { } ‑ also called brackets, or curly brackets.<br />
|
||||
parens or round brackets ( ) ‑ also called parentheses, brackets, circle brackets, or soft brackets.<br />
|
||||
square brackets [ ] ‑ also called block parens, brackets, closed brackets, or hard brackets.<br />
|
||||
angle brackets < > ‑ also called brackets, pointy brackets, triangular brackets, diamond brackets, tuples,
|
||||
braces or curly braces { } - also called brackets, or curly brackets.<br />
|
||||
parens or round brackets ( ) - also called parentheses, brackets, circle brackets, or soft brackets.<br />
|
||||
square brackets [ ] - also called block parens, brackets, closed brackets, or hard brackets.<br />
|
||||
angle brackets < > - also called brackets, pointy brackets, triangular brackets, diamond brackets, tuples,
|
||||
or chevrons.
|
||||
</blockquote>
|
||||
<p>
|
||||
@@ -304,12 +309,12 @@
|
||||
hanging indent format is used. If the "exec sql" statement is indented more than the following statements, the
|
||||
SQL will be aligned in a single column.</p>
|
||||
<p>
|
||||
Unicode files encoded as UTF‑16, both big and little endian, will be formatted. The files must begin with
|
||||
a byte order mark (BOM) to be recognized. Files encoded as UTF‑32 will be rejected. Some compilers do not
|
||||
support these encodings. These files can be converted to UTF‑8 encoding with the program "iconv". There
|
||||
Unicode files encoded as UTF-16, both big and little endian, will be formatted. The files must begin with
|
||||
a byte order mark (BOM) to be recognized. Files encoded as UTF-32 will be rejected. Some compilers do not
|
||||
support these encodings. These files can be converted to UTF-8 encoding with the program "iconv". There
|
||||
are Linux and Windows versions available (the Windows version does not seem to work for all encodings). Visual
|
||||
Studio can convert the files from the "File > Advanced Save Options" menu. There are other development environments
|
||||
and text editors, such as SciTE, that can convert files to UTF‑8.</p>
|
||||
and text editors, such as SciTE, that can convert files to UTF-8.</p>
|
||||
<p>
|
||||
Embedded statements that are multiple-line and are NOT in a C-type format, such as Python, are usually mal-formatted
|
||||
(a C-type format has blocks enclosed by braces and statements terminated by a semi-colon). Macros that define
|
||||
@@ -451,7 +456,7 @@
|
||||
<p>
|
||||
Options may be set apart by new-lines, tabs, commas, or spaces. Long options in the option file may be written
|
||||
without the preceding '--'. Lines within the option file that begin with '#' are considered line-comments.
|
||||
The option files used in formatting and their location can be displayed by using the --verbose
|
||||
The option files used in formatting and their location can be displayed by using the --verbose
|
||||
option. </p>
|
||||
<ol>
|
||||
<li>The <strong>command line options</strong> have precedence. If there is a conflict between a command line option
|
||||
@@ -465,18 +470,18 @@
|
||||
<ul>
|
||||
<li>the file name indicated by the --project= command line option.</li>
|
||||
<li>the file named .astylerc or _ astylerc and the --project command line option. </li>
|
||||
<li>the file name identified by the environment variable ARTISTIC_STYLE_PROJECT_OPTIONS if it exists. The value of
|
||||
<li>the file name identified by the environment variable ARTISTIC_STYLE_PROJECT_OPTIONS if it exists. The value of
|
||||
the variable should be a file name only, no path.</li>
|
||||
<li>the file or environment variable can be disabled by specifying --project=none on the command line.</li>
|
||||
</ul>
|
||||
The file is expected to be in the top directory of the project being formatted. Only one file will be used per
|
||||
execution and all files to be formatted are assumed to be in the same project. Artistic Style will search
|
||||
execution and all files to be formatted are assumed to be in the same project. Artistic Style will search
|
||||
backward in the directory path to find the project option file. The initial directory path for the search is obtained
|
||||
from one of the following locations in the following order.
|
||||
<ul>
|
||||
<li>The first <em>SourceFilePath</em> entered on the command line.</li>
|
||||
<li>The value of "--stdin=" if it is used for redirection.</li>
|
||||
<li>The current directory if "<" is used for redirection. If the file to be formatted is not in the current
|
||||
<li>The current directory if "<" is used for redirection. If the file to be formatted is not in the current
|
||||
directory, use the "--stdin=" option instead.</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -486,11 +491,11 @@
|
||||
following order.
|
||||
<ul>
|
||||
<li>the file path indicated by the --options= command line option.</li>
|
||||
<li>the file path indicated by the environment variable ARTISTIC_STYLE_OPTIONS if it exists. The value of the
|
||||
<li>the file path indicated by the environment variable ARTISTIC_STYLE_OPTIONS if it exists. The value of the
|
||||
variable should be a path including the file name.</li>
|
||||
<li>the file named .astylerc in the directory pointed to by the HOME environment variable
|
||||
<li>the file named .astylerc in the directory pointed to by the HOME environment variable
|
||||
(e.g. "$HOME<strong>/.</strong>astylerc" on Linux); </li>
|
||||
<li>the file named astylerc in the directory pointed to by the APPDATA environment variable
|
||||
<li>the file named astylerc in the directory pointed to by the APPDATA environment variable
|
||||
(e.g. "%APPDATA%<strong>\</strong>astylerc" on Windows). </li>
|
||||
<li>the file or environment variable can be disabled by specifying --options=none on the command line.</li>
|
||||
</ul>
|
||||
@@ -655,8 +660,8 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
a function.</p>
|
||||
<p>
|
||||
Using the k&r option may cause problems because of the &. This can be resolved by enclosing the k&r
|
||||
in quotes (e.g. ‑‑style="k&r") or by using one of the alternates ‑‑style=kr or
|
||||
‑‑style=k/r.</p>
|
||||
in quotes (e.g. --style="k&r") or by using one of the alternates --style=kr or
|
||||
--style=k/r.</p>
|
||||
<div class="code">
|
||||
<pre>int Foo(bool isBar)
|
||||
<span class="brace">{</span>
|
||||
@@ -675,7 +680,7 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
Stroustrup style uses linux braces. Opening braces are broken from function definitions only. The opening braces
|
||||
are attached to everything else, including namespaces, classes, arrays, structs, enums, and statements within
|
||||
a function. The closing headers are broken from closing braces (e.g. --break-closing-headers). This style
|
||||
frequently is used with attach‑closing‑while, tabbed indents, and an indent of 5
|
||||
frequently is used with attach-closing-while, tabbed indents, and an indent of 5
|
||||
spaces. </p>
|
||||
<div class="code">
|
||||
<pre>int Foo(bool isBar)
|
||||
@@ -712,7 +717,7 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
</p>
|
||||
<p id="_style=vtk">
|
||||
<code class="title">--style=vtk / -A15</code><br />
|
||||
VTK (Visualization Toolkit) style uses broken, indented braces, except for the opening brace of classes,
|
||||
VTK (Visualization Toolkit) style uses broken, indented braces, except for the opening brace of classes,
|
||||
arrays, structs, enums, and function definitions.. Switch blocks are indented to prevent a 'hanging
|
||||
indent' with following case statements. </p>
|
||||
<div class="code">
|
||||
@@ -750,7 +755,7 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
<p id="_style=gnu">
|
||||
<code class="title">--style=gnu / -A7</code><br />
|
||||
GNU style uses broken braces. Extra indentation is added to blocks <strong>within a function</strong>
|
||||
only. The entire block is indented, not just the brace. This style frequently is used with an indent of 2
|
||||
only. The entire block is indented, not just the brace. This style frequently is used with an indent of 2
|
||||
spaces. </p>
|
||||
<div class="code">
|
||||
<pre>int Foo(bool isBar)
|
||||
@@ -814,7 +819,7 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
else, including arrays, structs, enums, and statements within a function. </p>
|
||||
<p>
|
||||
In the following example, braces have been added to the "return 0;" statement. The option
|
||||
‑‑add‑one‑line‑braces can also be used with this style.</p>
|
||||
--add-one-line-braces can also be used with this style.</p>
|
||||
<div class="code">
|
||||
<pre>int Foo(bool isBar)
|
||||
<span class="brace">{</span>
|
||||
@@ -852,7 +857,8 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
The braces are attached to everything else, including namespaces, arrays, and statements within a function. This
|
||||
style frequently is used with an indent of 2 spaces and --break-return-type.</p>
|
||||
<div class="code">
|
||||
<pre>int Foo(bool isBar)/span>
|
||||
<pre>int Foo(bool isBar)
|
||||
<span class="brace">{</span>
|
||||
if (isBar) <span class="brace">{</span>
|
||||
bar();
|
||||
return 1;
|
||||
@@ -867,7 +873,7 @@ indent-switches <span class="comment"># cannot do this on the command line</
|
||||
<code class="title">--style=webkit / -A17</code><br />
|
||||
WebKit style uses linux braces. Opening braces are broken from function definitions only. The opening braces are
|
||||
attached to everything else, including namespaces, classes, arrays, structs, enums, and statements within a function.
|
||||
This style frequently is used with attach‑closing‑while, and an indent of 4 spaces.
|
||||
This style frequently is used with attach-closing-while, and an indent of 4 spaces.
|
||||
</p>
|
||||
<div class="code">
|
||||
<pre>int Foo(bool isBar)
|
||||
@@ -1157,7 +1163,7 @@ public:
|
||||
<code class="title">--indent-modifiers / -xG</code><br />
|
||||
Indent 'class ' and 'struct' access modifiers, 'public:', 'protected:'
|
||||
and 'private:', one half indent. The rest of the class is not indented. This option is effective
|
||||
for C++ files only. If used with indent‑classes this option will be ignored.</p>
|
||||
for C++ files only. If used with indent-classes this option will be ignored.</p>
|
||||
<div class="code">
|
||||
<pre>class Foo
|
||||
<span class="brace">{</span>
|
||||
@@ -1442,7 +1448,7 @@ error:
|
||||
<p id="_indent-col1-comments">
|
||||
<code class="title">--indent-col1-comments / -Y</code><br />
|
||||
Indent C++ comments beginning in column one. By default C++ comments beginning in column one are
|
||||
assumed to be commented‑out code and not indented. This option will allow the comments to be indented with
|
||||
assumed to be commented-out code and not indented. This option will allow the comments to be indented with
|
||||
the code.</p>
|
||||
<div class="code">
|
||||
<pre>void Foo()\n"
|
||||
@@ -1671,9 +1677,9 @@ isBar = false;
|
||||
<br />
|
||||
Insert space padding around the <strong>first</strong> paren in a series on the <strong>outside</strong>
|
||||
only. Parens that are empty will not be padded. Any end of line comments will remain in the original column,
|
||||
if possible. This can be used with unpad-paren below to remove unwanted spaces. If used with pad‑paren or
|
||||
pad‑paren‑out, this option will be ignored. If used with pad‑paren‑in, the result will
|
||||
be the pad‑paren.</p>
|
||||
if possible. This can be used with unpad-paren below to remove unwanted spaces. If used with pad-paren or
|
||||
pad-paren-out, this option will be ignored. If used with pad-paren-in, the result will
|
||||
be the pad-paren.</p>
|
||||
<div class="code">
|
||||
<pre>if (isFoo((a+2), b))
|
||||
bar(a, b);
|
||||
@@ -1725,13 +1731,13 @@ isBar = false;
|
||||
<br />
|
||||
Remove extra space padding around parens on the inside and outside. Any end of line comments will remain
|
||||
in the original column, if possible. This option can be used in combination with the paren padding options
|
||||
pad‑paren, pad‑paren‑out, pad‑paren‑in,
|
||||
and pad‑header above. Only padding that has not been requested by other options will be
|
||||
pad-paren, pad-paren-out, pad-paren-in,
|
||||
and pad-header above. Only padding that has not been requested by other options will be
|
||||
removed.</p>
|
||||
<p>
|
||||
For example, if a source has parens padded on both the inside and outside, and you want inside only. You need
|
||||
to use unpad-paren to remove the outside padding, and pad‑paren‑in to
|
||||
retain the inside padding. Using only pad‑paren‑in> would not remove the outside
|
||||
to use unpad-paren to remove the outside padding, and pad-paren-in to
|
||||
retain the inside padding. Using only pad-paren-in> would not remove the outside
|
||||
padding.</p>
|
||||
<div class="code">
|
||||
<pre>if ( isFoo( ( a+2 ), b ) )
|
||||
@@ -1743,6 +1749,32 @@ isBar = false;
|
||||
bar(a, b);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<p id="_pad-brackets">
|
||||
<code class="title">--pad-brackets</code>
|
||||
<br />
|
||||
Insert space padding around square brackets on both the <strong>outside</strong> and the <strong>inside</strong>.
|
||||
</p>
|
||||
<div class="code">
|
||||
<pre>a = b[a[1]];</pre>
|
||||
<p class="code">
|
||||
becomes:</p>
|
||||
<pre>a = b [ a [ 1 ] ];</pre>
|
||||
</div>
|
||||
|
||||
<p id="_unpad-brackets">
|
||||
<code class="title">--unpad-brackets</code>
|
||||
<br />
|
||||
Remove padding around square brackets on both the <strong>outside</strong> and the <strong>inside</strong>.
|
||||
</p>
|
||||
<div class="code">
|
||||
<pre>a = b [ a [ 1 ] ];</pre>
|
||||
<p class="code">
|
||||
becomes:</p>
|
||||
<pre>a = b[a[1]];</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p id="_delete-empty-lines">
|
||||
@@ -1766,14 +1798,68 @@ isBar = false;
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
foo2 = 2;
|
||||
<span class="brace">}</span>
|
||||
</pre>
|
||||
<span class="brace">}</span></pre>
|
||||
</div>
|
||||
<p>
|
||||
</p>
|
||||
<p id="_fill-empty-lines">
|
||||
<code class="title">--fill-empty-lines / -E</code><br />
|
||||
Fill empty lines with the white space of the previous line.</p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p id="_squeeze-lines">
|
||||
<code class="title">--squeeze-lines=#</code><br />
|
||||
Remove superfluous empty lines exceeding the given number.</p>
|
||||
<div class="code">
|
||||
<pre>void Foo()
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
<span class="brace">}</span>
|
||||
|
||||
|
||||
|
||||
|
||||
void Foo2()
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
<span class="brace">}</span>
|
||||
</pre>
|
||||
<p class="code">
|
||||
becomes:</p>
|
||||
<pre>void Foo()
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
<span class="brace">}</span>
|
||||
|
||||
|
||||
void Foo2()
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
<span class="brace">}</span></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p id="_squeeze-ws">
|
||||
<code class="title">--squeeze-ws</code><br />
|
||||
Remove superfluous whitespace</p>
|
||||
<div class="code">
|
||||
<pre>void Foo ()
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
<span class="brace">}</span>
|
||||
</pre>
|
||||
<p class="code">
|
||||
becomes:</p>
|
||||
<pre>void Foo ()
|
||||
<span class="brace">{</span>
|
||||
foo1 = 1;
|
||||
<span class="brace">}</span></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p id="_align-pointer">
|
||||
@@ -1895,7 +1981,7 @@ else if (isFoo1()) <span class="brace">{</span>
|
||||
bar1();
|
||||
<span class="brace">}</span>
|
||||
else if (isFoo2()) <span class="brace">{</span>
|
||||
bar2;
|
||||
bar2();
|
||||
<span class="brace">}</span>
|
||||
</pre>
|
||||
<p class="code">
|
||||
@@ -2005,7 +2091,7 @@ else
|
||||
<p>
|
||||
</p>
|
||||
<p id="_break-return-type">
|
||||
<code class="title">--break-return-type / -xB</code><br />
|
||||
<code class="title">--break-return-type / -xB</code><br />
|
||||
<code class="title">--break-return-type-decl / -xD</code><br />
|
||||
Break the return type from the function name. The two options are for the function definitions (-xB), and the
|
||||
function declarations or signatures (-xD). If used with --attach-return-type, the result will be to break the
|
||||
@@ -2020,11 +2106,11 @@ Foo(bool isFoo);</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p id="_attach-return-type">
|
||||
<code class="title">--attach-return-type / -xf</code><br />
|
||||
<code class="title">--attach-return-type / -xf</code><br />
|
||||
<code class="title">--attach-return-type-decl / -xh</code><br />
|
||||
Attach the return type to the function name. The two options are for the function definitions (-xf), and the
|
||||
Attach the return type to the function name. The two options are for the function definitions (-xf), and the
|
||||
function declarations or signatures (-xh). They are intended to undo the --break-return-type options. If used
|
||||
with --break-return-type, the result will be to break the return type. This option has no effect on
|
||||
with --break-return-type, the result will be to break the return type. This option has no effect on
|
||||
Objective-C functions.</p>
|
||||
<div class="code">
|
||||
<pre>void
|
||||
@@ -2110,19 +2196,19 @@ Foo(bool isFoo);</pre>
|
||||
<code class="title">--max-code-length=<span class="option">#</span> / -xC<span class="option">#</span>
|
||||
<br />
|
||||
--break-after-logical / -xL</code><br />
|
||||
The option max‑code‑length will break a line if the code exceeds <span class="option">#</span>
|
||||
The option max-code-length will break a line if the code exceeds <span class="option">#</span>
|
||||
characters. The valid values are <strong>50</strong> thru <strong>200</strong>. Lines without logical conditionals
|
||||
will break on a logical conditional (||, &&, ...), comma, paren, semicolon, or space.</p>
|
||||
<p>
|
||||
Some code will not be broken, such as comments, quotes, and arrays. If used with keep‑one‑line‑blocks
|
||||
or add-one-line-braces the blocks will NOT be broken. If used with keep‑one‑line‑statements
|
||||
Some code will not be broken, such as comments, quotes, and arrays. If used with keep-one-line-blocks
|
||||
or add-one-line-braces the blocks will NOT be broken. If used with keep-one-line-statements
|
||||
the statements will be broken at a semicolon if the line goes over the maximum length. If there is no available
|
||||
break point within the max code length, the line will be broken at the first available break point after the max
|
||||
code length.</p>
|
||||
<p>
|
||||
By default logical conditionals will be placed first in the new line. The option
|
||||
<strong>break‑after‑logical</strong> will cause the logical conditionals to be placed last on the
|
||||
previous line. This option has no effect without max‑code‑length.</p>
|
||||
<strong>break-after-logical</strong> will cause the logical conditionals to be placed last on the
|
||||
previous line. This option has no effect without max-code-length.</p>
|
||||
<div class="code">
|
||||
<pre>if (thisVariable1 == thatVariable1 || thisVariable2 == thatVariable2 || thisVariable3 == thatVariable3)
|
||||
bar();</pre>
|
||||
@@ -2133,7 +2219,7 @@ Foo(bool isFoo);</pre>
|
||||
|| thisVariable3 == thatVariable3)
|
||||
bar();</pre>
|
||||
<p class="code">
|
||||
becomes (with break‑after‑logical):</p>
|
||||
becomes (with break-after-logical):</p>
|
||||
<pre>if (thisVariable1 == thatVariable1 ||
|
||||
thisVariable2 == thatVariable2 ||
|
||||
thisVariable3 == thatVariable3)
|
||||
@@ -2144,8 +2230,10 @@ Foo(bool isFoo);</pre>
|
||||
<p id="_mode">
|
||||
<code class="title">--mode=c</code><br />
|
||||
<code class="title">--mode=cs</code><br />
|
||||
<code class="title">--mode=js</code><br />
|
||||
<code class="title">--mode=java</code><br />
|
||||
Indent a C type, C#, or Java file. C type files are C, C++, C++/CLI, and Objective-C. The option is usually
|
||||
<code class="title">--mode=objc</code><br />
|
||||
Indent a C type, C#, Javascript, Java or Objective-C file. C type files are C, C++, C++/CLI. The option is usually
|
||||
set from the file extension for each file. You can override the setting with this entry. It will be used for all
|
||||
files, regardless of the file extension. It allows the formatter to identify language specific syntax such as
|
||||
C++ classes, templates, and keywords.</p>
|
||||
@@ -2155,18 +2243,18 @@ Foo(bool isFoo);</pre>
|
||||
|
||||
<!-- * * * * * * * * * * * * * Objective-C Options * * * * * * * * * * * * * -->
|
||||
|
||||
<h3 id="_Objective_C_Options">Objective‑C Options</h3>
|
||||
<h3 id="_Objective_C_Options">Objective-C Options</h3>
|
||||
|
||||
<p>
|
||||
These options are effective for Objective‑C files only. The standard paren padding options will still apply
|
||||
These options are effective for Objective-C files only. The standard paren padding options will still apply
|
||||
to the Objective-C method prefix and return type unless overridden by the following options.</p>
|
||||
<p>
|
||||
Because of the longer indents sometimes needed for Objective‑C, the option "max-continuation-indent" may
|
||||
Because of the longer indents sometimes needed for Objective-C, the option "max-continuation-indent" may
|
||||
need to be increased. If you are not getting the paren and square bracket alignment you want, try increasing
|
||||
this value. The option is described in the "Indentation Options" section.</p>
|
||||
<p id="_pad-method-prefix">
|
||||
<code class="title">--pad-method-prefix / -xQ</code><br />
|
||||
Insert space padding <strong>after</strong> the '-' or '+' Objective‑C method prefix. This will add
|
||||
Insert space padding <strong>after</strong> the '-' or '+' Objective-C method prefix. This will add
|
||||
exactly one space. Any additional spaces will be deleted.</p>
|
||||
<div class="code">
|
||||
<pre>-(void)foo1;
|
||||
@@ -2180,8 +2268,8 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_unpad-method-prefix">
|
||||
<code class="title">--unpad-method-prefix / -xR</code><br />
|
||||
Remove all space padding <strong>after</strong> the '-' or '+' Objective‑C method prefix.
|
||||
This option will be ignored if used with pad‑method‑prefix. This option takes precedence over the
|
||||
Remove all space padding <strong>after</strong> the '-' or '+' Objective-C method prefix.
|
||||
This option will be ignored if used with pad-method-prefix. This option takes precedence over the
|
||||
pad paren outside option.</p>
|
||||
<div class="code">
|
||||
<pre>- (void) foo1;
|
||||
@@ -2195,7 +2283,7 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_pad-return-type">
|
||||
<code class="title">--pad-return-type / -xq</code><br />
|
||||
Insert space padding <strong>after</strong> the Objective‑C return type. This will add exactly one
|
||||
Insert space padding <strong>after</strong> the Objective-C return type. This will add exactly one
|
||||
space. Any additional spaces will be deleted. </p>
|
||||
<div class="code">
|
||||
<pre>-(void)foo1;
|
||||
@@ -2209,8 +2297,8 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_unpad-return-type">
|
||||
<code class="title">--unpad-return-type / -xr</code><br />
|
||||
Remove all space padding <strong>after</strong> the Objective‑C return type. This option
|
||||
will be ignored if used with pad‑return‑type. This option takes precedence over the pad paren
|
||||
Remove all space padding <strong>after</strong> the Objective-C return type. This option
|
||||
will be ignored if used with pad-return-type. This option takes precedence over the pad paren
|
||||
outside option. </p>
|
||||
<div class="code">
|
||||
<pre>-(void) foo1;
|
||||
@@ -2224,7 +2312,7 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_pad-param-type">
|
||||
<code class="title">--pad-param-type / -xS</code><br />
|
||||
Insert space padding around an Objective‑C parameter type. This will add exactly
|
||||
Insert space padding around an Objective-C parameter type. This will add exactly
|
||||
one space. Any additional spaces will be deleted. This has precedence over the pad method colon option and
|
||||
will always cause space padding after a method colon.</p>
|
||||
<div class="code">
|
||||
@@ -2239,7 +2327,7 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_unpad-param-type">
|
||||
<code class="title">--unpad-param-type / -xs</code><br />
|
||||
Remove all space padding around an Objective‑C parameter type. This option takes precedence over the
|
||||
Remove all space padding around an Objective-C parameter type. This option takes precedence over the
|
||||
pad paren outside option. The pad method colon option has precedence over the <strong>opening</strong> paren.
|
||||
The closing paren will always be unpadded.</p>
|
||||
<div class="code">
|
||||
@@ -2259,7 +2347,7 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_align-method-colon">
|
||||
<code class="title">--align-method-colon / -xM</code><br />
|
||||
Align the colons in Objective‑C method declarations
|
||||
Align the colons in Objective-C method declarations
|
||||
and method calls. If this option is not declared, method definitions will be indented uniformly, and method calls
|
||||
will align with the first keyword.</p>
|
||||
<div class="code">
|
||||
@@ -2297,11 +2385,11 @@ Foo(bool isFoo);</pre>
|
||||
</p>
|
||||
<p id="_pad-method-colon">
|
||||
<code class="title">--pad-method-colon=none / -xP0<br />
|
||||
--pad-method-colon=all / -xP1<br />
|
||||
--pad-method-colon=all / -xP1<br />
|
||||
--pad-method-colon=after / -xP2<br />
|
||||
--pad-method-colon=before / -xP3
|
||||
</code><br />
|
||||
Add or remove space padding before or after the colons in an Objective‑C method call. These options will
|
||||
Add or remove space padding before or after the colons in an Objective-C method call. These options will
|
||||
pad exactly one space. Any additional spaces will be deleted. The space padding after the method colon can be
|
||||
overridden by pad-param-type.</p>
|
||||
<div class="code">
|
||||
@@ -2361,7 +2449,7 @@ Foo(bool isFoo);</pre>
|
||||
required files.</p>
|
||||
<p>
|
||||
Wildcards are NOT allowed. There may be more than one exclude statement. The file path and name may be placed
|
||||
in double quotes (e.g. ‑‑exclude="foo bar.cpp").</p>
|
||||
in double quotes (e.g. --exclude="foo bar.cpp").</p>
|
||||
<p id="_ignore-exclude-errors">
|
||||
<code class="title">--ignore-exclude-errors / -i</code><br />
|
||||
Allow processing to continue if there are errors in the "exclude=###" options.<br />
|
||||
@@ -2386,7 +2474,7 @@ Foo(bool isFoo);</pre>
|
||||
file.</p>
|
||||
<p id="_verbose">
|
||||
<code class="title">--verbose / -v</code><br />
|
||||
Verbose display mode. Display optional information, such as release number, date,
|
||||
Verbose display mode. Display optional information, such as release number, date,
|
||||
option file locations, and statistical data.</p>
|
||||
<p id="_formatted">
|
||||
<code class="title">--formatted / -Q</code><br />
|
||||
@@ -2408,7 +2496,7 @@ Foo(bool isFoo);</pre>
|
||||
will be ignored.</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr style="margin-left: -0.4in;" />
|
||||
<hr />
|
||||
|
||||
<!-- * * * * * * * * * * * * Command-Line Options * * * * * * * * * * * * -->
|
||||
|
||||
@@ -2420,7 +2508,7 @@ Foo(bool isFoo);</pre>
|
||||
<code class="title">--options=<span class="option">####</span></code><br />
|
||||
<code class="title">--options=none</code><br />
|
||||
Specify an options file #### to read and use. It must contain a file path and a file name. This will allow
|
||||
the file name to be changed from astylerc or .astylerc.</p>
|
||||
the file name to be changed from .astylerc or _astylerc.</p>
|
||||
<p>
|
||||
The "none" option will disable the default options file if one exists. Only command-line parameters will be used.
|
||||
</p>
|
||||
@@ -2430,7 +2518,7 @@ Foo(bool isFoo);</pre>
|
||||
<code class="title">--project</code><br />
|
||||
<code class="title">--project=<span class="option">####</span></code><br />
|
||||
<code class="title">--project=none</code> <br />
|
||||
The first option specifies a project option file to use. The option file
|
||||
The first option specifies a project option file to use. The option file
|
||||
should have the default name of .astylerc or _astylerc and should be in the top directory of the project
|
||||
being formatted. </p>
|
||||
<p>
|
||||
@@ -2484,19 +2572,14 @@ Foo(bool isFoo);</pre>
|
||||
Do not use this with ">" redirection.</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr style="margin-left: -0.4in;" />
|
||||
<hr />
|
||||
|
||||
<p style="margin-left: -0.4in; text-align: center;">
|
||||
<p >
|
||||
<a href="http://sourceforge.net/projects/astyle">
|
||||
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" />
|
||||
</a></p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Artistic Style Developer</title>
|
||||
<meta http-equiv="Content-Language" content="en-us" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
|
||||
<link href="../favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
||||
<link href="styles.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- body text -->
|
||||
|
||||
<h1>Artistic Style Developer Information</h1>
|
||||
|
||||
<p class="noindent">
|
||||
Artistic Style has compile options for creating a shared library (DLL) or static library for use with a Graphical
|
||||
User Interface (GUI). The shared library can be called from a C++, Objective‑C, C#, or Python program. There
|
||||
are also compile options for a Java Native Interface (JNI) that allows it to be called from a Java program. Information
|
||||
on compiling the various configurations of Artistic Style is in the Install Information.</p>
|
||||
<p class="noindent">
|
||||
The following Examples show how to call the Artistic Style shared library using the various programming languages.
|
||||
They are command line programs and do NOT contain a Graphical User Interface for the Artistic Style options.
|
||||
</p>
|
||||
<p class="noindent">
|
||||
Source code, documentation, and test files for all examples can be downloaded below or obtained from the <a href="subversion.html">source code repositories</a>.
|
||||
These projects also require the source from Artistic Style in addition to the development examples.
|
||||
</p>
|
||||
|
||||
<h3>Examples</h3>
|
||||
|
||||
<p>
|
||||
Source code from the following examples can be copied and pasted into an editor or development environment for
|
||||
compiling and running. Or the source code can be downloaded from the "Source Code Downloads" section below. The
|
||||
code highlighting for the example html pages was done with <a href="http://www.andre-simon.de/"
|
||||
target="_blank" title="open new window">Highlight</a>.
|
||||
The examples were formatted with Artistic Style using the Horstmann style.</p>
|
||||
<p>
|
||||
<a href="https://astyle.sourceforge.net/develop/cpp.html">Calling Artistic Style from a C++ Program</a> contains information on calling Artistic Style
|
||||
as a shared or static library from a C++ program. It includes a C++ sample program that can be used to test the
|
||||
Artistic Style libraries.</p>
|
||||
<p>
|
||||
<a href="https://astyle.sourceforge.net/develop/objc.html">Calling Artistic Style from an Objective-C Program</a> contains information on calling Artistic
|
||||
Style as a shared or static library from an Objective-C program. It includes an Objective-C sample program that
|
||||
can be used to test the Artistic Style shared libraries.</p>
|
||||
<p style="margin-left: 0.5in;">
|
||||
<a href="https://astyle.sourceforge.net/develop/gnustep.html">Objective‑C on Windows and Linux</a> contains information on compiling and running
|
||||
Objective-C programs using GNUstep. It has instructions for compiling the Example program on Windows or
|
||||
Linux.</p>
|
||||
<p>
|
||||
<a href="https://astyle.sourceforge.net/develop/jni.html">Calling Artistic Style as a Java Native Interface</a> contains information on calling Artistic
|
||||
Style as a shared library from a Java program using the Java Native Interface (JNI). It includes a Java sample
|
||||
program that can be used to test the shared library. The Java Development Kit (JDK) must be installed to compile
|
||||
Artistic Style.</p>
|
||||
<p>
|
||||
<a href="https://astyle.sourceforge.net/develop/sharp.html">Calling Artistic Style from a C# Program</a> contains information on calling Artistic Style
|
||||
as a shared library from a C# program. It includes a C# sample program that can be used to test the shared
|
||||
library.</p>
|
||||
<p style="margin-left: 0.5in;">
|
||||
<a href="https://astyle.sourceforge.net/develop/sharp2.html">Calling Artistic Style from a C# Program Using Explicit Linking</a> contains information
|
||||
on calling Artistic Style as a shared library from a C# program. It uses explicit linking to do a dynamic load
|
||||
of the shared library. It includes a C# sample program that can be used to test the shared library.</p>
|
||||
<p style="margin-left: 0.5in;">
|
||||
With explicit linking the shared library name can be changed at runtime, allowing the C# program to load
|
||||
either an x86 or x64 bit shared library. This provides the capability to make the program run on "Any
|
||||
CPU". The shared object can also be loaded from any directory, not just the directories searched by the
|
||||
system.</p>
|
||||
<p>
|
||||
<a href="https://astyle.sourceforge.net/develop/python.html">Calling Artistic Style from a Python Script</a> contains information on calling Artistic
|
||||
Style as a shared library from a Python script. It includes a sample Python script that can be used to test the
|
||||
shared library.</p>
|
||||
|
||||
<h3>Source Code Downloads (old examples)</h3>
|
||||
|
||||
<p>
|
||||
The downloads contain the above example source files and the test data. The test data is the same for all
|
||||
downloads.</p>
|
||||
|
||||
<h4>
|
||||
<a href="https://sourceforge.net/projects/astyle/files/OldFiles/examples/example-cpp.zip" target="_blank"
|
||||
title="open new window">C++ Example</a>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The example for C++ contains the methods to call Artistic Style from a static or shared library using a C++ program.
|
||||
Compile Artistic Style as a static or shared library using the macro ASTYLE_LIB. Copy the shared library to the
|
||||
same folder as the C++ Example executable. Compile Example.cpp as an executable and link it to the library. It
|
||||
will format files in the test‑data directory included in the download.</p>
|
||||
|
||||
<h4>
|
||||
<a href="https://sourceforge.net/projects/astyle/files/OldFiles/examples/example-objc.zip" target="_blank"
|
||||
title="open new window">Objective‑C Example</a>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The example for Objective‑C contains the methods to call Artistic Style from a static or shared library
|
||||
using an Objective‑C program. Compile Artistic Style as a static or shared library using the macro ASTYLE_LIB.
|
||||
Copy the shared library to the same folder as the Objective‑C Example executable. It will format files in
|
||||
the test‑data directory included in the download.</p>
|
||||
|
||||
<h4>
|
||||
<a href="https://sourceforge.net/projects/astyle/files/OldFiles/examples/example-java.zip" target="_blank"
|
||||
title="open new window">Java Example</a>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The example for Java includes an AStyleInterface class that calls the shared library using the Java Native Interface
|
||||
(JNI). Artistic Style must be compiled as a shared library using the macro ASTYLE_JNI. Copy the shared library
|
||||
to the same folder as the Java class files (it is loaded from the classpath directory). It will format files in
|
||||
the test‑data directory included in the download.</p>
|
||||
|
||||
<h4>
|
||||
<a href="https://sourceforge.net/projects/astyle/files/OldFiles/examples/example-sharp.zip" target="_blank"
|
||||
title="open new window">C# Example</a>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
This example for C# includes an AStyleInterface class that calls the shared library using a C# program. Compile
|
||||
Artistic Style as a shared library using the macro ASTYLE_LIB. Copy the shared library to the same folder as the
|
||||
C# class files (C# does a Windows type search for the shared library, looking first in the startup program's directory).
|
||||
It will format files in the test‑data directory included in the download.</p>
|
||||
|
||||
<h4 style="margin-left: 0.5in;">
|
||||
<a href="https://sourceforge.net/projects/astyle/files/OldFiles/examples/example-sharp2.zip" target="_blank"
|
||||
title="open new window">C# Example Using Explicit Linking</a>
|
||||
</h4>
|
||||
|
||||
<p style="margin-left: 0.5in;">
|
||||
This example for C# includes an AStyleInterface class that calls the shared library using a C# program.
|
||||
It uses explicit linking to do a dynamic load of the shared library. Compile Artistic Style as a shared library
|
||||
using the macro ASTYLE_LIB. Copy the shared library to the same folder as the C# class files. It will format files
|
||||
in the test‑data directory included in the download.</p>
|
||||
|
||||
<h4>
|
||||
<a href="https://sourceforge.net/projects/astyle/files/OldFiles/examples/example-python.zip" target="_blank"
|
||||
title="open new window">Python Examples</a>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
This download contains three Python scripts. The script ExampleExe.py calls an Artistic Style executable to format
|
||||
C++ source code. The scripts ExampleByte.py and ExampleUnicode.py call the Artistic Style shared library. The
|
||||
executable and shared library must be compiled using the macro ASTYLE_LIB. Copy the executable and shared library
|
||||
to the same folder as the Python scripts. They will format files in the test‑data directory included in
|
||||
the download.</p>
|
||||
|
||||
<p style="margin-left: -0.4in; text-align: center;">
|
||||
<a href="http://sourceforge.net/projects/astyle">
|
||||
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" />
|
||||
</a></p>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
+14
-25
@@ -18,7 +18,7 @@
|
||||
|
||||
<h2>
|
||||
A Free, Fast, and Small Automatic Formatter<br />
|
||||
for C, C++, C++/CLI, Objective‑C, C#, and Java Source Code
|
||||
for C, C++, C++/CLI, Objective C, C#, and Java Source Code
|
||||
</h2>
|
||||
|
||||
<center>
|
||||
@@ -40,9 +40,8 @@
|
||||
</table>
|
||||
</center>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p class="noindent">
|
||||
|
||||
<p class="noindent" style="margin-top: 2em">
|
||||
Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective‑C,
|
||||
C# and Java programming languages. Written in C++, it can be used from the command line or incorporated as
|
||||
a library in another program. Options can be entered from the command line or from an option file. The library
|
||||
@@ -52,7 +51,7 @@
|
||||
|
||||
<p>
|
||||
There is complete documentation for using Artistic Style. The documentation needed to install and run Artistic
|
||||
Style is included in the distribution package. It does not need an Internet connection.</p>
|
||||
Style is included in the distribution package.</p>
|
||||
|
||||
<h3><a href="news.html">News</a> and <a href="notes.html">Release Notes</a></h3>
|
||||
|
||||
@@ -77,10 +76,10 @@
|
||||
executable. Other platforms must compile the project. Follow the instructions for the appropriate platform (Linux,
|
||||
Mac, or Windows).</p>
|
||||
|
||||
<h3><a href="subversion.html">Subversion</a></h3>
|
||||
<h3><a href="subversion.html">Source Repositories</a></h3>
|
||||
|
||||
<p>
|
||||
The latest development files can be checked out from the Artistic Style repository using Subversion.</p>
|
||||
The latest development files can be checked out from the Artistic Style repository using Subversion or Git.</p>
|
||||
|
||||
<h3><a href="http://opensource.org/licenses/MIT">License</a></h3>
|
||||
|
||||
@@ -116,7 +115,7 @@
|
||||
formatting of the source code, development environments for various platforms, and other software. There
|
||||
are also links to style information and various style guides.</p>
|
||||
|
||||
<h3><a href="http://astyle.sourceforge.net/develop/">Developer Information</a></h3>
|
||||
<h3><a href="development.html">Developer Information</a></h3>
|
||||
|
||||
<p>
|
||||
Artistic Style has compile options for creating a shared library (DLL) or static library for use with a Graphical
|
||||
@@ -127,10 +126,10 @@
|
||||
<h3>Bug Reports, Change Requests, Update Notifications</h3>
|
||||
|
||||
<p>
|
||||
Bug reports and change requests should be submitted to the Artistic Style <a href="https://sourceforge.net/p/astyle/bugs/">
|
||||
bug tracker page</a>. You must be logged in to SourceForge to submit a report. Include an example that shows
|
||||
Bug reports and change requests should be submitted to the <a href="https://sourceforge.net/p/astyle/bugs/">
|
||||
Sourceforge</a> or <a href="https://gitlab.com/saalen/astyle/-/issues">Gitlab</a> bug trackers. Include an example that shows
|
||||
the problem, reduced to the minimum that still has the problem. It does not need to be functional code.</p>
|
||||
<p>
|
||||
<p><strong>Sourceforge notes:</strong><br>
|
||||
The bug report <strong>will not be indented</strong>
|
||||
after the data is submitted. You may indicate the indentation when you submit the request (e.g. replace leading
|
||||
spaces with periods). Or, you can use the "Formatting Help" button to the left of the ticket form. To
|
||||
@@ -162,27 +161,17 @@
|
||||
Arne F?rlie, Marvin Humphrey, J, Christopher Sean Morrison, Keith OHara, louis6g, Evmenov Georgiy,
|
||||
beta100100, Ruzzz, Peter A. Bigot, HyungKi Jeong, David Faure, Carl Moore, Mofi, Travis Vitek,
|
||||
Bunel Nicolas, Juan Alday, Rian Quinn, David Haney, Tamás Kurucsai
|
||||
for their patches and contributions to Artistic Style.</p>
|
||||
<p>
|
||||
Thanks to <strong><a href="http://sourceforge.net">SourceForge</a></strong> for giving Artistic Style its
|
||||
home.</p>
|
||||
<p>
|
||||
Thanks to all the dedicated beta-testers and bug notifiers!</p>
|
||||
|
||||
<!-- bottom of document -->
|
||||
for their patches and contributions to Artistic Style.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
Thanks to all the dedicated beta-testers and bug notifiers!
|
||||
</p>
|
||||
|
||||
<p style="margin-left: -0.4in; text-align: center;">
|
||||
<a href="http://sourceforge.net/projects/astyle">
|
||||
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" />
|
||||
</a></p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
+33
-21
@@ -14,10 +14,24 @@
|
||||
|
||||
<h1>Artistic Style News</h1>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<h3>Artistic Style 3.3 (ongoing)</h3>
|
||||
|
||||
<h3>Artistic Style 3.2 (January 2023. pending)</h3>
|
||||
<p>
|
||||
The source code has been refactored to no longer use the std namespace globally.
|
||||
</p>
|
||||
<p>
|
||||
Some features of "modern C++" are now supported, ie. lambda function arguments and array initializers
|
||||
with braces.
|
||||
</p>
|
||||
<p>
|
||||
Two new options to remove superfluous whitespace and empty lines were added: "squeeze-ws" and
|
||||
"squeeze-lines=#" (parameter value is the number of empty lines to keep).
|
||||
</p>
|
||||
<p>
|
||||
Two new options to add or remove whitespace around square brackets were added: "pad-brackets" and "unpad-brackets".
|
||||
</p>
|
||||
|
||||
<h3>Artistic Style 3.2 (March 2023)</h3>
|
||||
|
||||
<p>
|
||||
The Artistic Style source code has been updated to use C++11 features. It will need Visual Studio 2015 or GCC
|
||||
@@ -31,8 +45,11 @@
|
||||
<p>
|
||||
Deprecated options have been removed.
|
||||
</p>
|
||||
<p>
|
||||
Maintainer list was updated.
|
||||
</p>
|
||||
|
||||
<h3>Artistic Style 3.1 (January 2018)</h3>
|
||||
<h3>Artistic Style 3.1 (January 2018)</h3>
|
||||
|
||||
<p>
|
||||
The Windows default option file location has been changed from USERPROFILE to APPDATA. This
|
||||
@@ -55,7 +72,7 @@
|
||||
Several changes have been made to Objective-C which will improve formatting in certain cases.</p>
|
||||
<p>
|
||||
CMake can now be used to compile the AStyle builds. It is run from the top level folder instead of the
|
||||
"build" folder, and builds a Release configuration by default. The "Install Information"
|
||||
"build" folder, and builds a Release configuration by default. The "Install Information"
|
||||
contains additional information. </p>
|
||||
<p>
|
||||
When formatting files from the command line, multiple file extensions may now be used. The file
|
||||
@@ -87,7 +104,7 @@
|
||||
When making changes to more than one file in a project, it may be desirable to format an entire folder. Wildcards
|
||||
may be used in a single folder without recursive. The current directory is used if a path is not given. So,
|
||||
for example, to format all changed files in the current directory using the project options, use the command:
|
||||
"astyle --project -A9s *.cpp,*.h". This example uses the project option file .astylerc
|
||||
"astyle --project -A9s *.cpp,*.h". This example uses the project option file .astylerc
|
||||
or _astylerc and overrides the project options with the command line -A9s options.</p>
|
||||
<p>
|
||||
Language translations have been added for the new project option file. A few of the other messages were changed
|
||||
@@ -112,7 +129,7 @@
|
||||
<p>
|
||||
Thanks to Rian Quinn, David Haney, and Tamás Kurucsai for their contributions.</p>
|
||||
|
||||
<h3>Artistic Style 3.0 (April 2017)</h3>
|
||||
<h3>Artistic Style 3.0 (April 2017)</h3>
|
||||
|
||||
<p>
|
||||
Release 3.0.1 (May 2017) is a maintenance release and no new features were added. A list of changes is in
|
||||
@@ -290,7 +307,7 @@
|
||||
method for finding the style options.
|
||||
</p>
|
||||
|
||||
<h3>Artistic Style 2.06 (December 2016)</h3>
|
||||
<h3>Artistic Style 2.06 (December 2016)</h3>
|
||||
|
||||
<p>
|
||||
A new bracket style option, "style=mozilla", has been added. It uses linux brackets with
|
||||
@@ -372,7 +389,7 @@
|
||||
|
||||
<p>
|
||||
In order to be used on both Linux and Windows, the ASLocalizer.cpp UTF-8 file in Artistic Style does not
|
||||
contain a Byte Order Mark (BOM). With Visual Studio 2015 there has been a change in how UTF-8 files
|
||||
contain a Byte Order Mark (BOM). With Visual Studio 2015 there has been a change in how UTF-8 files
|
||||
without a BOM are processed. The new procedure is described
|
||||
<a href="https://blogs.msdn.microsoft.com/vcblog/2016/02/22/new-options-for-managing-character-sets-in-the-microsoft-cc-compiler/"
|
||||
target="_blank" title="open new window">here</a>. It affects only the language translations in the ".exe"
|
||||
@@ -462,7 +479,7 @@
|
||||
To compile using XP there may need to be additional include and library directories added. If the compile gets
|
||||
errors add the appropriate directories to the project properties.</p>
|
||||
|
||||
<h3>Artistic Style 2.05 (November 2014)</h3>
|
||||
<h3>Artistic Style 2.05 (November 2014)</h3>
|
||||
|
||||
<p>
|
||||
Release 2.05.1 (December 2014) is a maintenance release and no new features were added. A list of changes is in
|
||||
@@ -517,13 +534,13 @@
|
||||
More information is in the "Command Line Only" section of the documentation.</p>
|
||||
<p>
|
||||
The "html" option on Linux uses the script "xdg-open" from the install package "xdg-utils" to find the default
|
||||
browser. This should be available on most systems. If it is not available on your system you can file a
|
||||
browser. This should be available on most systems. If it is not available on your system you can file a
|
||||
bug report requesting a change. It would be helpful if you could determine how it is done before filing the report.
|
||||
You can also file a bug report if the documentation is not installed to the above "default" directories. The HTML
|
||||
documentation takes quite a bit of effort to maintain and I would like to make it easily available.</p>
|
||||
<p>
|
||||
The "help" option has been changed to send the output to stdout instead of stderr. This will allow piping and
|
||||
redirection of the output. A common way to use the option on Linux is "astyle --help | less", which
|
||||
redirection of the output. A common way to use the option on Linux is "astyle --help | less", which
|
||||
will page the display. The "version" option has also been changed to stdout.</p>
|
||||
<p>
|
||||
A shared library error handler argument has been changed from "char*" to "const char*". In
|
||||
@@ -560,20 +577,15 @@
|
||||
<p>
|
||||
Thanks to Peter A. Bigot, HyungKi Jeong, David Faure, and Carl Moore for their contributions.</p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<strong>Previous releases are available in the
|
||||
<a href="http://astyle.sourceforge.net/newsArchives.html">News Archives</a>.</strong></p>
|
||||
<p>
|
||||
</p>
|
||||
<a href="http://astyle.sourceforge.net/newsArchives.html">News Archives</a>.</strong>
|
||||
</p>
|
||||
|
||||
<p style="margin-left: -0.4in; text-align: center;">
|
||||
<a href="http://sourceforge.net/projects/astyle">
|
||||
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" /></a></p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" /></a>
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
+31
-7
@@ -14,7 +14,26 @@
|
||||
|
||||
<h1>Artistic Style Release Notes</h1>
|
||||
|
||||
<h3>Artistic Style 3.2 (pending; February 2023)</h3>
|
||||
<h3>Artistic Style 3.3 (May 2023)</h3>
|
||||
|
||||
<ul>
|
||||
<li>added new option "--squeeze-ws" to remove superfluous whitespace (experimental)</li>
|
||||
<li>added new option "--squeeze-lines" to remove superfluous empty lines (experimental, #19, #22, #43, #72, #84, #93, #105, #517)</li>
|
||||
<li>added new options "--pad-brackets" and "--unpad-brackets" to add or remove whitespace around square brackets (experimental)</li>
|
||||
<li>fixed indent of lambda bodies in fct calls (#121)</li>
|
||||
<li>fixed indent of struct names including "struct" (#526)</li>
|
||||
<li>fixed indent of C++11 initializer lists (#516)</li>
|
||||
<li>fixed padding of pointers separated by comma (#537)</li>
|
||||
<li>refactored namespace std usage</li>
|
||||
</ul>
|
||||
|
||||
<h3>Artistic Style 3.2.1 (March 2023)</h3>
|
||||
|
||||
<ul>
|
||||
<li>fixed struct recognition related to SF #534 (https://gitlab.com/saalen/astyle/-/issues/1)</li>
|
||||
</ul>
|
||||
|
||||
<h3>Artistic Style 3.2 (March 2023)</h3>
|
||||
|
||||
<ul>
|
||||
<li>Add new option "style=webkit" for the WebKit brace style.</li>
|
||||
@@ -30,10 +49,12 @@
|
||||
<li>Changes from clang-tidy to modernize code.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>created man page</li>
|
||||
<li>added man page</li>
|
||||
<li>removed deprecated options</li>
|
||||
<li>added shell completion scripts</li>
|
||||
<li>added "--mode=js" option</li>
|
||||
<li>removed upper limit of max-continuation-indent</li>
|
||||
<li>added INVALID_TYPE constant</li>
|
||||
<li>removed upper limit of "max-continuation-indent"</li>
|
||||
<li>fixed raw string parsing (#535)</li>
|
||||
<li>fixed recognition of rvalue operator as reference (#543)</li>
|
||||
<li>fixed reverting effect of AttachReturnType option (#527)</li>
|
||||
@@ -43,12 +64,15 @@
|
||||
<li>fixed space deletion when aligning ref value name (#546)</li>
|
||||
<li>fixed reverting effect of maxCodeLength and AttachReturnType options (#545)</li>
|
||||
<li>fixed break of continued preprocessor strings with colon (#533)</li>
|
||||
<li>fixed struct bitfield indentation (534)</li>
|
||||
<li>replace PATH_MAX by realpath (549)</li>
|
||||
<li>fixed struct bitfield indentation (#534)</li>
|
||||
<li>replace PATH_MAX by realpath (#549)</li>
|
||||
<li>fixed negative integer literal breaks initializer list (#485)</li>
|
||||
<li>fixed documentation of --delete-empty-lines short option (508)</li>
|
||||
<li>fixed documentation of --delete-empty-lines short option (#508)</li>
|
||||
<li>fixed project file search (#541)</li>
|
||||
<li>#1 fixed project file search with wildcard input paths</li>
|
||||
<li>fixed indent of ObjectiveC statements (#525)</li>
|
||||
<li>fixed parsing of C# interpolation strings (#483)</li>
|
||||
<li>fixed break-blocks format after struct (#518)</li>
|
||||
<li>fixed project file search with wildcard input paths (https://gitlab.com/saalen/astyle/-/issues/1)</li>
|
||||
<li>https://sourceforge.net/p/astyle/tickets/130/ better description for stat errors</li>
|
||||
<li>https://sourceforge.net/p/astyle/tickets/129/ applied IT localization patch</li>
|
||||
<li>improved DE localization</li>
|
||||
|
||||
+7
-10
@@ -14,18 +14,15 @@
|
||||
|
||||
/* margin: [top] [right] [bottom] [left] */
|
||||
|
||||
body { background-color: white; margin: 0.5in 0.8in 0.5in 1.3in; }
|
||||
body { background-color: white; margin: 5em 15em 5em 2em; font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; }
|
||||
|
||||
h1 { color: mediumblue; text-align: center; font-style: italic; margin-top: 0.4in; margin-left: -0.5in; }
|
||||
h2 { color: mediumblue; text-align: center; font-size: larger; margin-top: 0.4in; margin-left: -0.5in; }
|
||||
h3 { color: mediumblue; margin-top: 0.4in; margin-left: -0.4in; }
|
||||
h4 { color: mediumblue; margin-top: 0.3in; }
|
||||
h1 { color: mediumblue; font-style: italic; margin-top: 3em; }
|
||||
h2 { color: mediumblue; font-size: larger; margin-top: 2em; }
|
||||
h3 { color: mediumblue; margin-top: 2em; }
|
||||
h4 { color: mediumblue; margin-top: 2em; }
|
||||
h5 { text-transform: uppercase }
|
||||
|
||||
/* paragraph classes */
|
||||
.noindent { margin-left: -0.4in; }
|
||||
.contents1 { font-size: 105%; margin: 0; }
|
||||
.contents2 { margin: 0 0.4in 0 0.4in; }
|
||||
p { line-height: 1.2em;}
|
||||
|
||||
a.contents:link, a.contents:visited { color: mediumblue; text-decoration: none; }
|
||||
a.contents:hover { color: red; text-decoration: none; }
|
||||
@@ -34,7 +31,7 @@ a:hover { color: red; text-decoration: underline; }
|
||||
|
||||
img { border: none; }
|
||||
|
||||
pre { margin-left: 0.3in; color: mediumblue; font-weight: bold; }
|
||||
pre { color: mediumblue; font-family: 'Courier New', Courier, monospace; background-color: #fffdda; padding: 1em;}
|
||||
|
||||
/*- the following styles are for the 'top' button
|
||||
the corresponding javascript is in the html document from
|
||||
|
||||
+19
-58
@@ -12,41 +12,41 @@
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Artistic Style Subversion Repository</h1>
|
||||
<h1>Artistic Style Source Repositories</h1>
|
||||
|
||||
<h2>Git</h2>
|
||||
<p>
|
||||
The <a href="https://gitlab.com/saalen/astyle/-/tree/master">Git repository</a> is located at Gitlab. This repo is used for day to day development. The SVN repo mentioned below is kept up to date regularly.
|
||||
</p>
|
||||
|
||||
<h2>Subversion</h2>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
|
||||
<h3>Artistic Style</h3>
|
||||
|
||||
<p>
|
||||
The latest development source is in the Artistic Style repository at SourceForge. It can be checked out using
|
||||
Subversion. The source code is under development and some changes take several weeks to complete. The intermediate
|
||||
The <a href="https://svn.code.sf.net/p/astyle/code/">SVN repository</a> is located at SourceForge. The intermediate
|
||||
source files have not been through the extensive system tests that are done before each release. Use reasonable
|
||||
precautions when using source code from the repository.</p>
|
||||
<p>
|
||||
The current version is in the "trunk/AStyle" branch of the repository. The file and directory names are case
|
||||
sensitive.</p>
|
||||
The current version is in the "trunk/AStyle" branch of the repository. The file and directory names are case
|
||||
sensitive.
|
||||
</p>
|
||||
<p>
|
||||
A sample checkout is:<br />
|
||||
<strong>svn checkout "https://svn.code.sf.net/p/astyle/code/trunk/AStyle"
|
||||
<strong>svn checkout "https://svn.code.sf.net/p/astyle/code/trunk/AStyle"
|
||||
"$HOME/astyle"</strong></p>
|
||||
<p>
|
||||
You can also <a href="https://sourceforge.net/p/astyle/code/HEAD/tree/" target="_blank" title="open new window">browse
|
||||
the subversion repository</a>. The current development release is in the "trunk" directory. This gives you
|
||||
a view into the current status of the project's code without actually checking-out the files.</p>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
<h3>Other Projects</h3>
|
||||
|
||||
<p>
|
||||
Two additional Artistic Style projects are available in the repository. They are not maintained for the general
|
||||
public, but are available if you want them. You may have to create your own project files and scripts to use
|
||||
public, but are available if you want them. You may have to create your own project files and scripts to use
|
||||
them.</p>
|
||||
<p>
|
||||
All projects, and any additional source required, should be installed in the same top level folder. A sample file
|
||||
directory containing ALL the projects should look as follows. The project dependencies are described
|
||||
directory containing ALL the projects should look as follows. The project dependencies are described
|
||||
below.</p>
|
||||
<pre> Projects
|
||||
AStyle
|
||||
@@ -54,8 +54,7 @@
|
||||
AStyleTest
|
||||
AStyleWx
|
||||
AStyleWxTest
|
||||
googlemock
|
||||
googletest</pre>
|
||||
</pre>
|
||||
|
||||
<h4>AStyleDev</h4>
|
||||
|
||||
@@ -78,7 +77,7 @@
|
||||
This project requires the Artistic Style project to compile.
|
||||
In addition, the test program requires Google Mock and Google Test described below.</p>
|
||||
<p>
|
||||
The main test project, AStyleTest, can be run in Visual Studio using the graphical Visual Studio Test
|
||||
The main test project, AStyleTest, can be run in Visual Studio using the graphical Visual Studio Test
|
||||
Explorer. The procedure is described below.</p>
|
||||
<p>
|
||||
A sample checkout is:<br />
|
||||
@@ -90,8 +89,8 @@
|
||||
<p>
|
||||
AStyleWx contains a GUI test program for Artistic Style that uses the wxWidgets C++ library.</p>
|
||||
<p>
|
||||
This project requires the Artistic Style project to compile.
|
||||
Files for download are made available in the
|
||||
This project requires the Artistic Style project to compile.
|
||||
Files for download are made available in the
|
||||
<a href="https://sourceforge.net/projects/astylewx.astyle.p/" target="_blank" title="open new window">Artistic Style
|
||||
Wx</a> subproject. The download contains all files needed to compile the project. The subproject can be accessed
|
||||
from the Artistic Style SourceForge pages.</p>
|
||||
@@ -112,43 +111,6 @@
|
||||
<strong>svn checkout "https://svn.code.sf.net/p/astyle/code/trunk/AStyleWxTest" "$HOME/astylewxtest"
|
||||
</strong></p>
|
||||
|
||||
<h4>Google Mock and Google Test</h4>
|
||||
|
||||
<p>
|
||||
Google Test and Google Mock is the Google multi-platform framework for writing C++ unit tests.
|
||||
It is available on <a href="https://github.com/google/googletest" target="_blank" title="open new window">GitHub</a>
|
||||
and can be downloaded as a zip file by pressing the green "clone or download" button and selecting
|
||||
"Download ZIP". The default is to download the master development branch. The latest stable release
|
||||
can be obtained by using the drop-down box labeled "Branch: master", selecting the "tags"
|
||||
tab, and then selecting the latest release. The selected release can then be downloaded using the "clone
|
||||
or download" button. Download the latest release for googletest and googlemock from the repository.</p>
|
||||
<p>
|
||||
The Artistic Style project files are set up to use googletest and googlemock installed in the top level folder
|
||||
as indicated above. The library compile for googlemock includes googletest. The library compile for googletest
|
||||
includes only googletest. The AStyle test programs have their own project files for compiling the test platform.
|
||||
There are also compile project files in the downloaded google modules if you want to use them. They create a static
|
||||
library file that is linked to the test program. The google downloads contain instructions for using the
|
||||
package. </p>
|
||||
|
||||
<h4>Visual Studio Test Explorer</h4>
|
||||
|
||||
<p>
|
||||
Some of the test projects can be run in Visual Studio Community using Visual Studio Test Explorer.
|
||||
If there is a <strong>.gta.runsettings</strong> file in the solution directory for a test project,
|
||||
the test will run in the Test Explorer.</p>
|
||||
<p>
|
||||
The "Google Test Adapter" extension must be installed from the Tools > "Extensions
|
||||
and Updates" menu. After restarting Visual Studio the test window is activated from the Test
|
||||
> Window > "Test Explorer" menu option. After compiling, the tests will appear in
|
||||
the test window. Then they may be run from the "Test Explorer" window or from the Test menu
|
||||
options.</p>
|
||||
<p>
|
||||
Test Explorer may be used for other test projects. The tests can also be run as a command line program by using
|
||||
the standard debug or run button on the menu or toolbar.</p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
|
||||
<p style="margin-left: -0.4in; text-align: center;">
|
||||
<a href="http://sourceforge.net/projects/astyle">
|
||||
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" /></a></p>
|
||||
@@ -159,4 +121,3 @@
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
+123
-107
@@ -1,4 +1,4 @@
|
||||
.TH astyle 1 "2023-01-16" "Andre Simon" "user documentation"
|
||||
.TH astyle 1 "2023-04-18" "Andre Simon" "user documentation"
|
||||
|
||||
.SH NAME
|
||||
astyle - C syntax indenter and formatter
|
||||
@@ -30,70 +30,70 @@ and NO formatting options.
|
||||
If no brace style is requested, the opening braces will not be
|
||||
changed and closing braces will be broken from the preceding line.
|
||||
|
||||
.IP "--style=allman OR --style=bsd OR --style=break OR -A1"
|
||||
.IP "--style=allman OR --style=bsd OR --style=break OR -A1"
|
||||
Allman style formatting/indenting.
|
||||
Broken braces.
|
||||
|
||||
.IP "--style=java OR --style=attach OR -A2"
|
||||
.IP "--style=java OR --style=attach OR -A2"
|
||||
Java style formatting/indenting.
|
||||
Attached braces.
|
||||
|
||||
.IP "--style=kr OR --style=k&r OR --style=k/r OR -A3"
|
||||
.IP "--style=kr OR --style=k&r OR --style=k/r OR -A3"
|
||||
Kernighan & Ritchie style formatting/indenting.
|
||||
Linux braces.
|
||||
|
||||
.IP "--style=stroustrup OR -A4"
|
||||
.IP "--style=stroustrup OR -A4"
|
||||
Stroustrup style formatting/indenting.
|
||||
Linux braces, with broken closing headers.
|
||||
|
||||
.IP "--style=whitesmith OR -A5"
|
||||
.IP "--style=whitesmith OR -A5"
|
||||
Whitesmith style formatting/indenting.
|
||||
Broken, indented braces.
|
||||
Indented class blocks and switch blocks.
|
||||
|
||||
.IP "--style=vtk OR -A15"
|
||||
.IP "--style=vtk OR -A15"
|
||||
VTK style formatting/indenting.
|
||||
Broken, indented braces except for the opening braces.
|
||||
|
||||
.IP "--style=ratliff OR --style=banner OR -A6"
|
||||
.IP "--style=ratliff OR --style=banner OR -A6"
|
||||
Ratliff style formatting/indenting.
|
||||
Attached, indented braces.
|
||||
|
||||
.IP "--style=gnu OR -A7"
|
||||
.IP "--style=gnu OR -A7"
|
||||
GNU style formatting/indenting.
|
||||
Broken braces, indented blocks.
|
||||
|
||||
.IP "--style=linux OR --style=knf OR -A8"
|
||||
.IP "--style=linux OR --style=knf OR -A8"
|
||||
Linux style formatting/indenting.
|
||||
Linux braces, minimum conditional indent is one-half indent.
|
||||
|
||||
.IP "--style=horstmann OR --style=run-in OR -A9"
|
||||
.IP "--style=horstmann OR --style=run-in OR -A9"
|
||||
Horstmann style formatting/indenting.
|
||||
Run-in braces, indented switches.
|
||||
|
||||
.IP "--style=1tbs OR --style=otbs OR -A10"
|
||||
.IP "--style=1tbs OR --style=otbs OR -A10"
|
||||
One True Brace Style formatting/indenting.
|
||||
Linux braces, add braces to all conditionals.
|
||||
|
||||
.IP "--style=google OR -A14"
|
||||
.IP "--style=google OR -A14"
|
||||
Google style formatting/indenting.
|
||||
Attached braces, indented class modifiers.
|
||||
|
||||
.IP "--style=mozilla OR -A16"
|
||||
.IP "--style=mozilla OR -A16"
|
||||
Mozilla style formatting/indenting.
|
||||
Linux braces, with broken braces for structs and enums,
|
||||
and attached braces for namespaces.
|
||||
|
||||
.IP "--style=webkit OR -A17"
|
||||
.IP "--style=webkit OR -A17"
|
||||
WebKit style formatting/indenting.
|
||||
Linux braces, with attached closing headers.
|
||||
|
||||
.IP "--style=pico OR -A11"
|
||||
.IP "--style=pico OR -A11"
|
||||
Pico style formatting/indenting.
|
||||
Run-in opening braces and attached closing braces.
|
||||
Uses keep one line blocks and keep one line statements.
|
||||
|
||||
.IP "--style=lisp OR -A12"
|
||||
.IP "--style=lisp OR -A12"
|
||||
Lisp style formatting/indenting.
|
||||
Attached opening braces and attached closing braces.
|
||||
Uses keep one line statements.
|
||||
@@ -103,92 +103,92 @@ Uses keep one line statements.
|
||||
If no indentation option is set, the default
|
||||
option of 4 spaces per indent will be used.
|
||||
|
||||
.IP "--indent=spaces=# OR -s#"
|
||||
.IP "--indent=spaces=# OR -s#"
|
||||
Indent using # spaces per indent. Not specifying #
|
||||
will result in a default of 4 spaces per indent.
|
||||
|
||||
.IP "--indent=tab OR --indent=tab=# OR -t OR -t#"
|
||||
.IP "--indent=tab OR --indent=tab=# OR -t OR -t#"
|
||||
Indent using tab characters, assuming that each
|
||||
indent is # spaces long. Not specifying # will result
|
||||
in a default assumption of 4 spaces per indent.
|
||||
|
||||
.IP "--indent=force-tab=# OR -T#"
|
||||
.IP "--indent=force-tab=# OR -T#"
|
||||
Indent using tab characters, assuming that each
|
||||
indent is # spaces long. Force tabs to be used in areas
|
||||
AStyle would prefer to use spaces.
|
||||
|
||||
.IP "--indent=force-tab-x=# OR -xT#"
|
||||
.IP "--indent=force-tab-x=# OR -xT#"
|
||||
Allows the tab length to be set to a length that is different
|
||||
from the indent length. This may cause the indentation to be
|
||||
a mix of both spaces and tabs. This option sets the tab length.
|
||||
|
||||
.SH Brace Modify Options:
|
||||
|
||||
.IP "--attach-namespaces OR -xn"
|
||||
.IP "--attach-namespaces OR -xn"
|
||||
Attach braces to a namespace statement.
|
||||
|
||||
.IP "--attach-classes OR -xc"
|
||||
.IP "--attach-classes OR -xc"
|
||||
Attach braces to a class statement.
|
||||
|
||||
.IP "--attach-inlines OR -xl"
|
||||
.IP "--attach-inlines OR -xl"
|
||||
Attach braces to class inline function definitions.
|
||||
|
||||
.IP "--attach-extern-c OR -xk"
|
||||
.IP "--attach-extern-c OR -xk"
|
||||
Attach braces to an extern "C" statement.
|
||||
|
||||
.IP "--attach-closing-while OR -xV"
|
||||
.IP "--attach-closing-while OR -xV"
|
||||
Attach closing while of do-while to the closing brace.
|
||||
|
||||
.SH Indentation Options:
|
||||
|
||||
.IP "--indent-classes OR -C"
|
||||
.IP "--indent-classes OR -C"
|
||||
Indent 'class' blocks so that the entire block is indented.
|
||||
|
||||
.IP "--indent-modifiers OR -xG"
|
||||
.IP "--indent-modifiers OR -xG"
|
||||
Indent 'class' access modifiers, 'public:', 'protected:' or
|
||||
'private:', one half indent. The rest of the class is not
|
||||
indented.
|
||||
|
||||
.IP "--indent-switches OR -S"
|
||||
.IP "--indent-switches OR -S"
|
||||
Indent 'switch' blocks, so that the inner 'case XXX:'
|
||||
headers are indented in relation to the switch block.
|
||||
|
||||
.IP "--indent-cases OR -K"
|
||||
.IP "--indent-cases OR -K"
|
||||
Indent case blocks from the 'case XXX:' headers.
|
||||
Case statements not enclosed in blocks are NOT indented.
|
||||
|
||||
.IP "--indent-namespaces OR -N"
|
||||
.IP "--indent-namespaces OR -N"
|
||||
Indent the contents of namespace blocks.
|
||||
|
||||
.IP "--indent-after-parens OR -xU"
|
||||
.IP "--indent-after-parens OR -xU"
|
||||
Indent, instead of align, continuation lines following lines
|
||||
that contain an opening paren '(' or an assignment '='.
|
||||
|
||||
.IP "--indent-continuation=# OR -xt#"
|
||||
.IP "--indent-continuation=# OR -xt#"
|
||||
Indent continuation lines an additional # indents.
|
||||
The valid values are 0 thru 4 indents.
|
||||
The default value is 1 indent.
|
||||
|
||||
.IP "--indent-labels OR -L"
|
||||
.IP "--indent-labels OR -L"
|
||||
Indent labels so that they appear one indent less than
|
||||
the current indentation level, rather than being
|
||||
flushed completely to the left (which is the default).
|
||||
|
||||
.IP "--indent-preproc-block OR -xW"
|
||||
.IP "--indent-preproc-block OR -xW"
|
||||
Indent preprocessor blocks at brace level 0.
|
||||
Without this option the preprocessor block is not indented.
|
||||
|
||||
.IP "--indent-preproc-cond OR -xw"
|
||||
.IP "--indent-preproc-cond OR -xw"
|
||||
Indent preprocessor conditional statements #if/#else/#endif
|
||||
to the same level as the source code.
|
||||
|
||||
.IP "--indent-preproc-define OR -w"
|
||||
.IP "--indent-preproc-define OR -w"
|
||||
Indent multi-line preprocessor #define statements.
|
||||
|
||||
.IP "--indent-col1-comments OR -Y"
|
||||
.IP "--indent-col1-comments OR -Y"
|
||||
Indent line comments that start in column one.
|
||||
|
||||
.IP "--min-conditional-indent=# OR -m#"
|
||||
.IP "--min-conditional-indent=# OR -m#"
|
||||
Indent a minimal # spaces in a continuous conditional
|
||||
belonging to a conditional header.
|
||||
The valid values are:
|
||||
@@ -198,122 +198,135 @@ The valid values are:
|
||||
3 - indent at least one-half an additional indent.
|
||||
The default value is 2, two additional indents.
|
||||
|
||||
.IP "--max-continuation-indent=# OR -M#"
|
||||
.IP "--max-continuation-indent=# OR -M#"
|
||||
Indent a maximal # spaces in a continuation line,
|
||||
relative to the previous line.
|
||||
The minimum and default value is 40.
|
||||
|
||||
.SH Padding Options
|
||||
|
||||
.IP "--break-blocks OR -f"
|
||||
.IP "--break-blocks OR -f"
|
||||
Insert empty lines around unrelated blocks, labels, classes, ...
|
||||
|
||||
.IP "--break-blocks=all OR -F"
|
||||
.IP "--break-blocks=all OR -F"
|
||||
Like --break-blocks, except also insert empty lines
|
||||
around closing headers (e.g. 'else', 'catch', ...).
|
||||
|
||||
.IP "--pad-oper OR -p"
|
||||
.IP "--pad-oper OR -p"
|
||||
Insert space padding around operators.
|
||||
|
||||
.IP "--pad-comma OR -xg"
|
||||
.IP "--pad-comma OR -xg"
|
||||
Insert space padding after commas.
|
||||
|
||||
.IP "--pad-paren OR -P"
|
||||
.IP "--pad-paren OR -P"
|
||||
Insert space padding around parenthesis on both the outside
|
||||
and the inside.
|
||||
|
||||
.IP "--pad-paren-out OR -d"
|
||||
.IP "--pad-paren-out OR -d"
|
||||
Insert space padding around parenthesis on the outside only.
|
||||
|
||||
.IP "--pad-first-paren-out OR -xd"
|
||||
.IP "--pad-first-paren-out OR -xd"
|
||||
Insert space padding around first parenthesis in a series on
|
||||
the outside only.
|
||||
|
||||
.IP "--pad-paren-in OR -D"
|
||||
.IP "--pad-paren-in OR -D"
|
||||
Insert space padding around parenthesis on the inside only.
|
||||
|
||||
.IP "--pad-header OR -H"
|
||||
.IP "--pad-header OR -H"
|
||||
Insert space padding after paren headers (e.g. 'if', 'for'...).
|
||||
|
||||
.IP "--unpad-paren OR -U"
|
||||
.IP "--unpad-paren OR -U"
|
||||
Remove unnecessary space padding around parenthesis. This
|
||||
can be used in combination with the 'pad' options above.
|
||||
|
||||
.IP "--delete-empty-lines OR -xe"
|
||||
.IP "--pad-brackets"
|
||||
Insert space padding around square brackets on both the outside
|
||||
and the inside (experimental).
|
||||
|
||||
.IP "--unpad-brackets"
|
||||
Remove unnecessary space padding around square brackets (experimental).
|
||||
|
||||
.IP "--delete-empty-lines OR -xe"
|
||||
Delete empty lines within a function or method.
|
||||
It will NOT delete lines added by the break-blocks options.
|
||||
|
||||
.IP "--fill-empty-lines OR -E"
|
||||
.IP "--fill-empty-lines OR -E"
|
||||
Fill empty lines with the white space of their
|
||||
previous lines.
|
||||
|
||||
.IP "--align-pointer=type OR -k1"
|
||||
.IP "--align-pointer=middle OR -k2"
|
||||
.IP "--align-pointer=name OR -k3"
|
||||
.IP "--align-pointer=type OR -k1"
|
||||
.IP "--align-pointer=middle OR -k2"
|
||||
.IP "--align-pointer=name OR -k3"
|
||||
Attach a pointer or reference operator (*, &, or ^) to either
|
||||
the operator type (left), middle, or operator name (right).
|
||||
To align the reference separately use --align-reference.
|
||||
|
||||
.IP "--align-reference=none OR -W0"
|
||||
.IP "--align-reference=type OR -W1"
|
||||
.IP "--align-reference=middle OR -W2"
|
||||
.IP "--align-reference=name OR -W3"
|
||||
.IP "--align-reference=none OR -W0"
|
||||
.IP "--align-reference=type OR -W1"
|
||||
.IP "--align-reference=middle OR -W2"
|
||||
.IP "--align-reference=name OR -W3"
|
||||
Attach a reference operator (&) to either
|
||||
the operator type (left), middle, or operator name (right).
|
||||
If not set, follow pointer alignment.
|
||||
|
||||
.IP "--squeeze-lines=#"
|
||||
Remove superfluous empty lines exceeding the given number (experimental).
|
||||
|
||||
.IP "--squeeze-ws"
|
||||
Remove superfluous whitespace (experimental).
|
||||
|
||||
.SH Formatting Options
|
||||
|
||||
.IP "--break-closing-braces OR -y"
|
||||
.IP "--break-closing-braces OR -y"
|
||||
Break braces before closing headers (e.g. 'else', 'catch', ...).
|
||||
Use with --style=java, --style=kr, --style=stroustrup, --style=linux, or --style=1tbs."
|
||||
|
||||
.IP "--break-elseifs OR -e"
|
||||
.IP "--break-elseifs OR -e"
|
||||
Break 'else if()' statements into two different lines.
|
||||
|
||||
.IP "--break-one-line-headers OR -xb"
|
||||
.IP "--break-one-line-headers OR -xb"
|
||||
Break one line headers (e.g. 'if', 'while', 'else', ...) from a
|
||||
statement residing on the same line.
|
||||
|
||||
.IP "--add-braces OR -j"
|
||||
.IP "--add-braces OR -j"
|
||||
Add braces to unbraced one line conditional statements.
|
||||
|
||||
.IP "--add-one-line-braces OR -J"
|
||||
.IP "--add-one-line-braces OR -J"
|
||||
Add one line braces to unbraced one line conditional
|
||||
statements.
|
||||
|
||||
.IP "--remove-braces OR -xj"
|
||||
.IP "--remove-braces OR -xj"
|
||||
Remove braces from a braced one line conditional statements.
|
||||
|
||||
.IP "--break-return-type OR -xB"
|
||||
.IP "--break-return-type-decl OR -xD"
|
||||
.IP "--break-return-type OR -xB"
|
||||
.IP "--break-return-type-decl OR -xD"
|
||||
Break the return type from the function name. Options are
|
||||
for the function definitions and the function declarations.
|
||||
|
||||
.IP "--attach-return-type OR -xf"
|
||||
.IP "--attach-return-type-decl OR -xh"
|
||||
.IP "--attach-return-type OR -xf"
|
||||
.IP "--attach-return-type-decl OR -xh"
|
||||
Attach the return type to the function name. Options are
|
||||
for the function definitions and the function declarations.
|
||||
|
||||
.IP "--keep-one-line-blocks OR -O"
|
||||
.IP "--keep-one-line-blocks OR -O"
|
||||
Don't break blocks residing completely on one line.
|
||||
|
||||
.IP "--keep-one-line-statements OR -o"
|
||||
.IP "--keep-one-line-statements OR -o"
|
||||
Don't break lines containing multiple statements into
|
||||
multiple single-statement lines.
|
||||
|
||||
.IP "--convert-tabs OR -c"
|
||||
.IP "--convert-tabs OR -c"
|
||||
Convert tabs to the appropriate number of spaces.
|
||||
|
||||
.IP "--close-templates OR -xy"
|
||||
.IP "--close-templates OR -xy"
|
||||
Close ending angle brackets on template definitions.
|
||||
|
||||
.IP "--remove-comment-prefix OR -xp"
|
||||
.IP "--remove-comment-prefix OR -xp"
|
||||
Remove the leading '*' prefix on multi-line comments and
|
||||
indent the comment text one indent.
|
||||
|
||||
.IP "--max-code-length=# OR -xC#"
|
||||
.IP "--break-after-logical OR -xL"
|
||||
.IP "--max-code-length=# OR -xC#"
|
||||
.IP "--break-after-logical OR -xL"
|
||||
max-code-length=# will break the line if it exceeds more than
|
||||
# characters. The valid values are 50 thru 200.
|
||||
If the line contains logical conditionals they will be placed
|
||||
@@ -330,38 +343,41 @@ Indent a Java source file.
|
||||
.IP "--mode=cs"
|
||||
Indent a C# source file.
|
||||
|
||||
.IP "--mode=objc"
|
||||
Indent an Objective-C source file.
|
||||
|
||||
.IP "--mode=js"
|
||||
Indent a JavaScript source file (experimental).
|
||||
|
||||
.SH Objective-C Options
|
||||
|
||||
.IP "--pad-method-prefix OR -xQ"
|
||||
.IP "--pad-method-prefix OR -xQ"
|
||||
Insert space padding after the '-' or '+' Objective-C
|
||||
method prefix.
|
||||
|
||||
.IP "--unpad-method-prefix OR -xR"
|
||||
.IP "--unpad-method-prefix OR -xR"
|
||||
Remove all space padding after the '-' or '+' Objective-C
|
||||
method prefix.
|
||||
|
||||
.IP "--pad-return-type OR -xq"
|
||||
.IP "--pad-return-type OR -xq"
|
||||
Insert space padding after the Objective-C return type.
|
||||
|
||||
.IP "--unpad-return-type OR -xr"
|
||||
.IP "--unpad-return-type OR -xr"
|
||||
Remove all space padding after the Objective-C return type.
|
||||
|
||||
.IP "--pad-param-type OR -xS"
|
||||
Insert space padding after the Objective-C return type.
|
||||
.IP "--pad-param-type OR -xS"
|
||||
Insert space padding after the Objective-C param type.
|
||||
|
||||
.IP "--unpad-param-type OR -xs"
|
||||
Remove all space padding after the Objective-C return type.
|
||||
.IP "--unpad-param-type OR -xs"
|
||||
Remove all space padding after the Objective-C param type.
|
||||
|
||||
.IP "--align-method-colon OR -xM"
|
||||
.IP "--align-method-colon OR -xM"
|
||||
Align the colons in an Objective-C method definition.
|
||||
|
||||
.IP "--pad-method-colon=none OR -xP"
|
||||
.IP "--pad-method-colon=all OR -xP1"
|
||||
.IP "--pad-method-colon=after OR -xP2"
|
||||
.IP "--pad-method-colon=before OR -xP3"
|
||||
.IP "--pad-method-colon=none OR -xP"
|
||||
.IP "--pad-method-colon=all OR -xP1"
|
||||
.IP "--pad-method-colon=after OR -xP2"
|
||||
.IP "--pad-method-colon=before OR -xP3"
|
||||
Add or remove space padding before or after the colons in an
|
||||
Objective-C method call.
|
||||
|
||||
@@ -370,10 +386,10 @@ Objective-C method call.
|
||||
.IP "--suffix=####"
|
||||
Append the suffix #### instead of '.orig' to original filename.
|
||||
|
||||
.IP "--suffix=none OR -n"
|
||||
.IP "--suffix=none OR -n"
|
||||
Do not retain a backup of the original file.
|
||||
|
||||
.IP "--recursive OR -r OR -R"
|
||||
.IP "--recursive OR -r OR -R"
|
||||
Process subdirectories recursively.
|
||||
|
||||
.IP "--dry-run"
|
||||
@@ -382,35 +398,35 @@ Perform a trial run with no changes made to check for formatting.
|
||||
.IP "--exclude=####"
|
||||
Specify a file or directory #### to be excluded from processing.
|
||||
|
||||
.IP "--ignore-exclude-errors OR -i"
|
||||
.IP "--ignore-exclude-errors OR -i"
|
||||
Allow processing to continue if there are errors in the exclude=####
|
||||
options. It will display the unmatched excludes.
|
||||
|
||||
.IP "--ignore-exclude-errors-x OR -xi"
|
||||
.IP "--ignore-exclude-errors-x OR -xi"
|
||||
Allow processing to continue if there are errors in the exclude=####
|
||||
options. It will NOT display the unmatched excludes.
|
||||
|
||||
.IP "--errors-to-stdout OR -X"
|
||||
.IP "--errors-to-stdout OR -X"
|
||||
Print errors and help information to standard-output rather than
|
||||
to standard-error.
|
||||
|
||||
.IP "--preserve-date OR -Z"
|
||||
.IP "--preserve-date OR -Z"
|
||||
Preserve the original file's date and time modified. The time
|
||||
modified will be changed a few micro seconds to force a compile.
|
||||
|
||||
.IP "--verbose OR -v"
|
||||
.IP "--verbose OR -v"
|
||||
Verbose mode. Extra informational messages will be displayed.
|
||||
|
||||
.IP "--formatted OR -Q"
|
||||
.IP "--formatted OR -Q"
|
||||
Formatted display mode. Display only the files that have been
|
||||
formatted.
|
||||
|
||||
.IP "--quiet OR -q"
|
||||
.IP "--quiet OR -q"
|
||||
Quiet mode. Suppress all output except error messages.
|
||||
|
||||
.IP "--lineend=windows OR -z1"
|
||||
.IP "--lineend=linux OR -z2"
|
||||
.IP "--lineend=macold OR -z3"
|
||||
.IP "--lineend=windows OR -z1"
|
||||
.IP "--lineend=linux OR -z2"
|
||||
.IP "--lineend=macold OR -z3"
|
||||
Force use of the specified line end style. Valid options
|
||||
are windows (CRLF), linux (LF), and macold (CR).
|
||||
|
||||
@@ -431,16 +447,16 @@ The file should be included in the project top-level directory.
|
||||
The default file name is .astylerc or _astylerc.
|
||||
'none' disables the project or environment variable file.
|
||||
|
||||
.IP "--ascii OR -I"
|
||||
.IP "--ascii OR -I"
|
||||
The displayed output will be ascii characters only.
|
||||
|
||||
.IP "--version OR -V"
|
||||
.IP "--version OR -V"
|
||||
Print version number.
|
||||
|
||||
.IP "--help OR -h OR -?"
|
||||
.IP "--help OR -h OR -?"
|
||||
Print this help message.
|
||||
|
||||
.IP "--html OR -!"
|
||||
.IP "--html OR -!"
|
||||
Open the HTML help file "astyle.html" in the default browser.
|
||||
The documentation must be installed in the standard install path.
|
||||
|
||||
@@ -482,7 +498,7 @@ Long options within the option files may be written without '--'.
|
||||
.PP
|
||||
Line-end comments begin with a '#'.
|
||||
|
||||
.SH Disable Formatting
|
||||
.SH Disable Formatting
|
||||
|
||||
Blocks of code can be disabled with the comment tags *INDENT-OFF*
|
||||
and *INDENT-ON*. It must be contained in a one-line comment.
|
||||
@@ -503,4 +519,4 @@ astyle --style=allman < OriginalSourceFile > BeautifiedSourceFile
|
||||
.SH AUTHORS
|
||||
Andre Simon <a.simon@mailbox.org>
|
||||
.SH SEE ALSO
|
||||
More information at https://sourceforge.net/p/astyle/.
|
||||
More information at https://sourceforge.net/p/astyle/.
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
_astyle() {
|
||||
local IFS=$' \t\n'
|
||||
local args cur prev cmd opts arg
|
||||
args=("${COMP_WORDS[@]}")
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
opts="--style --indent --attach-namespaces --attach-classes --attach-inlines --attach-extern-c --attach-closing-while --indent-classes --indent-modifiers --indent-switches --indent-cases --indent-namespaces --indent-after-parens --indent-continuation --indent-labels --indent-preproc-block --indent-preproc-cond --indent-preproc-define --indent-col1-comments --min-conditional-indent --max-continuation-indent --break-blocks --pad-oper --pad-comma --pad-paren --pad-paren-out --pad-first-paren-out --pad-paren-in --pad-header --unpad-paren --pad-brackets --unpad-brackets --delete-empty-lines --fill-empty-lines --align-pointer --align-reference --break-closing-braces --break-elseifs --break-one-line-headers --add-braces --add-one-line-braces --remove-braces --break-return-type --attach-return-type-decl --keep-one-line-blocks --keep-one-line-statements --convert-tabs --close-templates --remove-comment-prefix --max-code-length --break-after-logical mode --pad-method-prefix --unpad-method-prefix --pad-return-type --unpad-return-type --pad-param-type --unpad-param-type --align-method-colon --pad-method-colon --suffix --recursive --dry-run --exclude --ignore-exclude-errors --ignore-exclude-errors-x --errors-to-stdout --preserve-date --verbose --formatted --quiet --lineend --options --project --ascii --version --help --html --stdin --stdout --squeeze-lines --squeeze-ws"
|
||||
|
||||
case "$prev" in
|
||||
--style)
|
||||
COMPREPLY=($(compgen -W "allman java kr stroustrup whitesmith vtk ratliff gnu linux horstmann 1tbs google mozilla webkit pico lisp" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--indent)
|
||||
COMPREPLY=($(compgen -W "spaces tab force-tab force-tab-x" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--indent-continuation)
|
||||
COMPREPLY=($(compgen -W "0 1 2 3 4" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--min-conditional-indent)
|
||||
COMPREPLY=($(compgen -W "0 1 2 3" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--max-continuation-indent)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--break-blocks)
|
||||
COMPREPLY=($(compgen -W "all" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--align-pointer)
|
||||
COMPREPLY=($(compgen -W "type middle name" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--align-reference)
|
||||
COMPREPLY=($(compgen -W "none type middle name" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--max-code-length)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
mode)
|
||||
COMPREPLY=($(compgen -W "c java cs objc js" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--pad-method-colon)
|
||||
COMPREPLY=($(compgen -W "none all after before" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--suffix)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--exclude)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--lineend)
|
||||
COMPREPLY=($(compgen -W "windows linux macold" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--options)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--project)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--stdin)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--stdout)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--squeeze-lines)
|
||||
COMPREPLY=($(compgen -f -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cur" = -* ]]; then
|
||||
COMPREPLY=($(compgen -W "$opts" -- "$cur"))
|
||||
fi
|
||||
}
|
||||
|
||||
complete -F _astyle -o bashdefault -o default astyle
|
||||
@@ -0,0 +1,83 @@
|
||||
|
||||
complete -c astyle -l style -xa 'allman java kr stroustrup whitesmith vtk ratliff gnu linux horstmann 1tbs google mozilla webkit pico lisp' -d 'Set a formatting and indenting style'
|
||||
complete -c astyle -l indent -xa 'spaces tab force-tab force-tab-x' -d 'Set indentation option'
|
||||
complete -c astyle -l attach-namespaces -d 'Attach braces to a namespace statement'
|
||||
complete -c astyle -l attach-classes -d 'Attach braces to a class statement'
|
||||
complete -c astyle -l attach-inlines -d 'Attach braces to class inline function definitions'
|
||||
complete -c astyle -l attach-extern-c -d 'Attach braces to an extern C statement'
|
||||
complete -c astyle -l attach-closing-while -d 'Attach closing while of do-while to the closing brace'
|
||||
complete -c astyle -l indent-classes -d 'Indent \'class\' blocks so that the entire block is indented'
|
||||
complete -c astyle -l indent-modifiers -d 'Indent \'class\' access modifiers, \'public:\', \'protected:\' or \'private:\', one half indent'
|
||||
complete -c astyle -l indent-switches -d 'Indent \'switch\' blocks, so that the inner \'case XXX:\' headers are indented in relation to the switch block'
|
||||
complete -c astyle -l indent-cases -d 'Indent case blocks from the \'case XXX:\' headers'
|
||||
complete -c astyle -l indent-namespaces -d 'Indent the contents of namespace blocks'
|
||||
complete -c astyle -l indent-after-parens -d 'Indent, instead of align, continuation lines following lines that contain an opening paren \'(\' or an assignment \'=\''
|
||||
complete -c astyle -l indent-continuation -xa '0 1 2 3 4' -d 'Indent continuation lines an additional indents'
|
||||
complete -c astyle -l indent-labels -d 'Indent labels so that they appear one indent less than the current indentation level, rather than being flushed completely to the left'
|
||||
complete -c astyle -l indent-preproc-block -d 'Indent preprocessor blocks at brace level 0'
|
||||
complete -c astyle -l indent-preproc-cond -d 'Indent preprocessor conditional statements #if/#else/#endif to the same level as the source code'
|
||||
complete -c astyle -l indent-preproc-define -d 'Indent multi-line preprocessor #define statements'
|
||||
complete -c astyle -l indent-col1-comments -d 'Indent line comments that start in column one'
|
||||
complete -c astyle -l min-conditional-indent -xa '0 1 2 3' -d 'Indent a minimal # spaces in a continuous conditional belonging to a conditional header'
|
||||
complete -c astyle -l max-continuation-indent -r -d 'Indent a maximal # spaces in a continuation line, relative to the previous line'
|
||||
complete -c astyle -l break-blocks -xa 'all' -d 'Insert empty lines around unrelated blocks, labels, classes, ..'
|
||||
complete -c astyle -l pad-oper -d 'Insert space padding around operators'
|
||||
complete -c astyle -l pad-comma -d 'Insert space padding after commas'
|
||||
complete -c astyle -l pad-paren -d 'Insert space padding around parenthesis on both the outside and the inside'
|
||||
complete -c astyle -l pad-paren-out -d 'Insert space padding around parenthesis on the outside only'
|
||||
complete -c astyle -l pad-first-paren-out -d 'Insert space padding around first parenthesis in a series on the outside only'
|
||||
complete -c astyle -l pad-paren-in -d 'Insert space padding around parenthesis on the inside only'
|
||||
complete -c astyle -l pad-header -d 'Insert space padding after paren headers (e.g'
|
||||
complete -c astyle -l unpad-paren -d 'Remove unnecessary space padding around parenthesis'
|
||||
complete -c astyle -l pad-brackets -d 'Insert space padding around square brackets on both the outside and the inside (experimental)'
|
||||
complete -c astyle -l unpad-brackets -d 'Remove unnecessary space padding around square brackets (experimental)'
|
||||
complete -c astyle -l delete-empty-lines -d 'Delete empty lines within a function or method'
|
||||
complete -c astyle -l fill-empty-lines -d 'Fill empty lines with the white space of their previous lines'
|
||||
complete -c astyle -l align-pointer -xa 'type middle name' -d 'Attach a pointer or reference operator (*, &, or ^) to either the operator type (left), middle, or operator name (right)'
|
||||
complete -c astyle -l align-reference -xa 'none type middle name' -d 'Attach a reference operator (&) to either the operator type (left), middle, or operator name (right)'
|
||||
complete -c astyle -l break-closing-braces -d 'Break braces before closing headers (e.g'
|
||||
complete -c astyle -l break-elseifs -d 'Break \'else if()\' statements into two different lines'
|
||||
complete -c astyle -l break-one-line-headers -d 'Break one line headers (e.g'
|
||||
complete -c astyle -l add-braces -d 'Add braces to unbraced one line conditional statements'
|
||||
complete -c astyle -l add-one-line-braces -d 'Add one line braces to unbraced one line conditional statements'
|
||||
complete -c astyle -l remove-braces -d 'Remove braces from a braced one line conditional statements'
|
||||
complete -c astyle -l break-return-type -d 'Break the return type from the function name definitions'
|
||||
complete -c astyle -l attach-return-type-decl -d 'Break the return type from the function name declarations'
|
||||
complete -c astyle -l keep-one-line-blocks -d 'Don\'t break blocks residing completely on one line'
|
||||
complete -c astyle -l keep-one-line-statements -d 'Don\'t break lines containing multiple statements into multiple single-statement lines'
|
||||
complete -c astyle -l convert-tabs -d 'Convert tabs to the appropriate number of spaces'
|
||||
complete -c astyle -l close-templates -d 'Close ending angle brackets on template definitions'
|
||||
complete -c astyle -l remove-comment-prefix -d 'Remove the leading \'*\' prefix on multi-line comments and indent the comment text one indent'
|
||||
complete -c astyle -l max-code-length -r -d 'Break the line if it exceeds more than # characters'
|
||||
complete -c astyle -l break-after-logical -d 'After break line using --max-code-length, place logical conditional last on the previous line'
|
||||
complete -c astyle -xa 'c java cs objc js' -d 'Set input syntax mode'
|
||||
complete -c astyle -l pad-method-prefix -d 'Insert space padding after the \'-\' or \'+\' Objective-C method prefix'
|
||||
complete -c astyle -l unpad-method-prefix -d 'Remove all space padding after the \'-\' or \'+\' Objective-C method prefix'
|
||||
complete -c astyle -l pad-return-type -d 'Insert space padding after the Objective-C return type'
|
||||
complete -c astyle -l unpad-return-type -d 'Remove all space padding after the Objective-C return type'
|
||||
complete -c astyle -l pad-param-type -d 'Insert space padding after the Objective-C param type'
|
||||
complete -c astyle -l unpad-param-type -d 'Remove all space padding after the Objective-C param type'
|
||||
complete -c astyle -l align-method-colon -d 'Align the colons in an Objective-C method definition'
|
||||
complete -c astyle -l pad-method-colon -xa 'none all after before' -d 'Add or remove space padding before or after the colons in an Objective-C method call'
|
||||
complete -c astyle -l suffix -r -d 'Append the suffix #### instead of \'.orig\' to original filename or do not retain a backup of the original file if set to none'
|
||||
complete -c astyle -l recursive -d 'Process subdirectories recursively'
|
||||
complete -c astyle -l dry-run -d 'Perform a trial run with no changes made to check for formatting'
|
||||
complete -c astyle -l exclude -r -d 'Specify a file or directory #### to be excluded from processing'
|
||||
complete -c astyle -l ignore-exclude-errors -d 'Allow processing to continue if there are errors in the --exclude options'
|
||||
complete -c astyle -l ignore-exclude-errors-x -d 'Allow processing to continue if there are errors in the --exclude options'
|
||||
complete -c astyle -l errors-to-stdout -d 'Print errors and help information to standard-output rather than to standard-error'
|
||||
complete -c astyle -l preserve-date -d 'Preserve the original file\'s date and time modified'
|
||||
complete -c astyle -l verbose -d 'Extra informational messages will be displayed'
|
||||
complete -c astyle -l formatted -d 'Display only the files that have been formatted'
|
||||
complete -c astyle -l quiet -d 'Suppress all output except error messages'
|
||||
complete -c astyle -l lineend -xa 'windows linux macold' -d 'Force use of the specified line end style'
|
||||
complete -c astyle -l options -r -d 'Specify a default option file to read and use'
|
||||
complete -c astyle -l project -r -d 'Specify a project option file to read and use'
|
||||
complete -c astyle -l ascii -d 'The displayed output will be ASCII characters only'
|
||||
complete -c astyle -l version -d 'Print version number'
|
||||
complete -c astyle -l help -d 'Print help message'
|
||||
complete -c astyle -l html -d 'Open the HTML help file astyle.html in the default browser'
|
||||
complete -c astyle -l stdin -r -d 'Use the file path as input to single file formatting'
|
||||
complete -c astyle -l stdout -r -d 'Use the file path as output from single file formatting'
|
||||
complete -c astyle -l squeeze-lines -r -d 'Remove superfluous empty lines exceeding the given number'
|
||||
complete -c astyle -l squeeze-ws -d 'Remove superfluous whitespace'
|
||||
@@ -0,0 +1,96 @@
|
||||
#compdef astyle
|
||||
|
||||
_astyle() {
|
||||
local -a options=(
|
||||
"--style[Set a formatting and indenting style]: :(allman java kr stroustrup whitesmith vtk ratliff gnu linux horstmann 1tbs google mozilla webkit pico lisp)"
|
||||
"--indent[Set indentation option]: :(spaces tab force-tab force-tab-x)"
|
||||
"--attach-namespaces[Attach braces to a namespace statement]"
|
||||
"--attach-classes[Attach braces to a class statement]"
|
||||
"--attach-inlines[Attach braces to class inline function definitions]"
|
||||
"--attach-extern-c[Attach braces to an extern C statement]"
|
||||
"--attach-closing-while[Attach closing while of do-while to the closing brace]"
|
||||
"--indent-classes[Indent 'class' blocks so that the entire block is indented]"
|
||||
"--indent-modifiers[Indent 'class' access modifiers, 'public\:', 'protected\:' or 'private\:', one half indent]"
|
||||
"--indent-switches[Indent 'switch' blocks, so that the inner 'case XXX\:' headers are indented in relation to the switch block]"
|
||||
"--indent-cases[Indent case blocks from the 'case XXX\:' headers]"
|
||||
"--indent-namespaces[Indent the contents of namespace blocks]"
|
||||
"--indent-after-parens[Indent, instead of align, continuation lines following lines that contain an opening paren '(' or an assignment '=']"
|
||||
"--indent-continuation[Indent continuation lines an additional indents]: :(0 1 2 3 4)"
|
||||
"--indent-labels[Indent labels so that they appear one indent less than the current indentation level, rather than being flushed completely to the left]"
|
||||
"--indent-preproc-block[Indent preprocessor blocks at brace level 0]"
|
||||
"--indent-preproc-cond[Indent preprocessor conditional statements #if/#else/#endif to the same level as the source code]"
|
||||
"--indent-preproc-define[Indent multi-line preprocessor #define statements]"
|
||||
"--indent-col1-comments[Indent line comments that start in column one]"
|
||||
"--min-conditional-indent[Indent a minimal # spaces in a continuous conditional belonging to a conditional header]: :(0 1 2 3)"
|
||||
"--max-continuation-indent[Indent a maximal # spaces in a continuation line, relative to the previous line]: :_files"
|
||||
"--break-blocks[Insert empty lines around unrelated blocks, labels, classes, ..]: :(all)"
|
||||
"--pad-oper[Insert space padding around operators]"
|
||||
"--pad-comma[Insert space padding after commas]"
|
||||
"--pad-paren[Insert space padding around parenthesis on both the outside and the inside]"
|
||||
"--pad-paren-out[Insert space padding around parenthesis on the outside only]"
|
||||
"--pad-first-paren-out[Insert space padding around first parenthesis in a series on the outside only]"
|
||||
"--pad-paren-in[Insert space padding around parenthesis on the inside only]"
|
||||
"--pad-header[Insert space padding after paren headers (e.g]"
|
||||
"--unpad-paren[Remove unnecessary space padding around parenthesis]"
|
||||
"--pad-brackets[Insert space padding around square brackets on both the outside and the inside (experimental)]"
|
||||
"--unpad-brackets[Remove unnecessary space padding around square brackets (experimental)]"
|
||||
"--delete-empty-lines[Delete empty lines within a function or method]"
|
||||
"--fill-empty-lines[Fill empty lines with the white space of their previous lines]"
|
||||
"--align-pointer[Attach a pointer or reference operator (*, &, or ^) to either the operator type (left), middle, or operator name (right)]: :(type middle name)"
|
||||
"--align-reference[Attach a reference operator (&) to either the operator type (left), middle, or operator name (right)]: :(none type middle name)"
|
||||
"--break-closing-braces[Break braces before closing headers (e.g]"
|
||||
"--break-elseifs[Break 'else if()' statements into two different lines]"
|
||||
"--break-one-line-headers[Break one line headers (e.g]"
|
||||
"--add-braces[Add braces to unbraced one line conditional statements]"
|
||||
"--add-one-line-braces[Add one line braces to unbraced one line conditional statements]"
|
||||
"--remove-braces[Remove braces from a braced one line conditional statements]"
|
||||
"--break-return-type[Break the return type from the function name definitions]"
|
||||
"--attach-return-type-decl[Break the return type from the function name declarations]"
|
||||
"--keep-one-line-blocks[Don't break blocks residing completely on one line]"
|
||||
"--keep-one-line-statements[Don't break lines containing multiple statements into multiple single-statement lines]"
|
||||
"--convert-tabs[Convert tabs to the appropriate number of spaces]"
|
||||
"--close-templates[Close ending angle brackets on template definitions]"
|
||||
"--remove-comment-prefix[Remove the leading '*' prefix on multi-line comments and indent the comment text one indent]"
|
||||
"--max-code-length[Break the line if it exceeds more than # characters]: :_files"
|
||||
"--break-after-logical[After break line using --max-code-length, place logical conditional last on the previous line]"
|
||||
"mode[Set input syntax mode]: :(c java cs objc js)"
|
||||
"--pad-method-prefix[Insert space padding after the '-' or '+' Objective-C method prefix]"
|
||||
"--unpad-method-prefix[Remove all space padding after the '-' or '+' Objective-C method prefix]"
|
||||
"--pad-return-type[Insert space padding after the Objective-C return type]"
|
||||
"--unpad-return-type[Remove all space padding after the Objective-C return type]"
|
||||
"--pad-param-type[Insert space padding after the Objective-C param type]"
|
||||
"--unpad-param-type[Remove all space padding after the Objective-C param type]"
|
||||
"--align-method-colon[Align the colons in an Objective-C method definition]"
|
||||
"--pad-method-colon[Add or remove space padding before or after the colons in an Objective-C method call]: :(none all after before)"
|
||||
"--suffix[Append the suffix #### instead of '.orig' to original filename or do not retain a backup of the original file if set to none]: :_files"
|
||||
"--recursive[Process subdirectories recursively]"
|
||||
"--dry-run[Perform a trial run with no changes made to check for formatting]"
|
||||
"--exclude[Specify a file or directory #### to be excluded from processing]: :_files"
|
||||
"--ignore-exclude-errors[Allow processing to continue if there are errors in the --exclude options]"
|
||||
"--ignore-exclude-errors-x[Allow processing to continue if there are errors in the --exclude options]"
|
||||
"--errors-to-stdout[Print errors and help information to standard-output rather than to standard-error]"
|
||||
"--preserve-date[Preserve the original file's date and time modified]"
|
||||
"--verbose[Extra informational messages will be displayed]"
|
||||
"--formatted[Display only the files that have been formatted]"
|
||||
"--quiet[Suppress all output except error messages]"
|
||||
"--lineend[Force use of the specified line end style]: :(windows linux macold)"
|
||||
"--options[Specify a default option file to read and use]: :_files"
|
||||
"--project[Specify a project option file to read and use]: :_files"
|
||||
"--ascii[The displayed output will be ASCII characters only]"
|
||||
"--version[Print version number]"
|
||||
"--help[Print help message]"
|
||||
"--html[Open the HTML help file astyle.html in the default browser]"
|
||||
"--stdin[Use the file path as input to single file formatting]: :_files"
|
||||
"--stdout[Use the file path as output from single file formatting]: :_files"
|
||||
"--squeeze-lines[Remove superfluous empty lines exceeding the given number]: :_files"
|
||||
"--squeeze-ws[Remove superfluous whitespace]"
|
||||
)
|
||||
_arguments -s -S \
|
||||
$options \
|
||||
"*: :_files" \
|
||||
&& return 0
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
_astyle
|
||||
Executable
+283
@@ -0,0 +1,283 @@
|
||||
#!/usr/bin/env lua
|
||||
|
||||
-- Based on the generator script written by Paul Ouellette for highlight:
|
||||
-- https://gitlab.com/saalen/highlight/-/merge_requests/137
|
||||
|
||||
local argparse = require "argparse"
|
||||
|
||||
local parser = argparse "astyle"
|
||||
:add_help(false)
|
||||
|
||||
parser:argument "file"
|
||||
:args "*"
|
||||
|
||||
parser:option "--style"
|
||||
:description "Set a formatting and indenting style"
|
||||
:choices {"allman", "java", "kr", "stroustrup", "whitesmith", "vtk", "ratliff", "gnu", "linux", "horstmann", "1tbs", "google", "mozilla", "webkit", "pico", "lisp"}
|
||||
|
||||
parser:option "--indent"
|
||||
:description "Set indentation option"
|
||||
:choices {"spaces", "tab", "force-tab", "force-tab-x"}
|
||||
|
||||
parser:flag "--attach-namespaces"
|
||||
:description "Attach braces to a namespace statement"
|
||||
|
||||
parser:flag "--attach-classes"
|
||||
:description "Attach braces to a class statement"
|
||||
|
||||
parser:flag "--attach-inlines"
|
||||
:description "Attach braces to class inline function definitions"
|
||||
|
||||
parser:flag "--attach-extern-c"
|
||||
:description "Attach braces to an extern C statement"
|
||||
|
||||
parser:flag "--attach-closing-while"
|
||||
:description "Attach closing while of do-while to the closing brace"
|
||||
|
||||
parser:flag "--indent-classes"
|
||||
:description "Indent 'class' blocks so that the entire block is indented"
|
||||
|
||||
parser:flag "--indent-modifiers"
|
||||
:description "Indent 'class' access modifiers, 'public:', 'protected:' or 'private:', one half indent."
|
||||
|
||||
parser:flag "--indent-switches"
|
||||
:description "Indent 'switch' blocks, so that the inner 'case XXX:' headers are indented in relation to the switch block"
|
||||
|
||||
parser:flag "--indent-cases"
|
||||
:description "Indent case blocks from the 'case XXX:' headers"
|
||||
|
||||
parser:flag "--indent-namespaces"
|
||||
:description "Indent the contents of namespace blocks"
|
||||
|
||||
parser:flag "--indent-after-parens"
|
||||
:description "Indent, instead of align, continuation lines following lines that contain an opening paren '(' or an assignment '='"
|
||||
|
||||
parser:option "--indent-continuation"
|
||||
:description "Indent continuation lines an additional indents"
|
||||
:choices {"0", "1", "2", "3", "4"}
|
||||
|
||||
parser:flag "--indent-labels"
|
||||
:description "Indent labels so that they appear one indent less than the current indentation level, rather than being flushed completely to the left"
|
||||
|
||||
parser:flag "--indent-preproc-block"
|
||||
:description "Indent preprocessor blocks at brace level 0. Without this option the preprocessor block is not indented"
|
||||
|
||||
parser:flag "--indent-preproc-cond"
|
||||
:description "Indent preprocessor conditional statements #if/#else/#endif to the same level as the source code"
|
||||
|
||||
parser:flag "--indent-preproc-define"
|
||||
:description "Indent multi-line preprocessor #define statements"
|
||||
|
||||
parser:flag "--indent-col1-comments"
|
||||
:description "Indent line comments that start in column one"
|
||||
|
||||
parser:option "--min-conditional-indent"
|
||||
:description "Indent a minimal # spaces in a continuous conditional belonging to a conditional header"
|
||||
:choices {"0", "1", "2", "3"}
|
||||
|
||||
parser:option "--max-continuation-indent"
|
||||
:description "Indent a maximal # spaces in a continuation line, relative to the previous line"
|
||||
|
||||
parser:option "--break-blocks"
|
||||
:description "Insert empty lines around unrelated blocks, labels, classes, ..."
|
||||
:args "?"
|
||||
:choices {"all"}
|
||||
|
||||
parser:flag "--pad-oper"
|
||||
:description "Insert space padding around operators"
|
||||
|
||||
parser:flag "--pad-comma"
|
||||
:description "Insert space padding after commas"
|
||||
|
||||
parser:flag "--pad-paren"
|
||||
:description "Insert space padding around parenthesis on both the outside and the inside"
|
||||
|
||||
parser:flag "--pad-paren-out"
|
||||
:description "Insert space padding around parenthesis on the outside only"
|
||||
|
||||
parser:flag "--pad-first-paren-out"
|
||||
:description "Insert space padding around first parenthesis in a series on the outside only"
|
||||
|
||||
parser:flag "--pad-paren-in"
|
||||
:description "Insert space padding around parenthesis on the inside only"
|
||||
|
||||
parser:flag "--pad-header"
|
||||
:description "Insert space padding after paren headers (e.g. 'if', 'for'...)"
|
||||
|
||||
parser:flag "--unpad-paren"
|
||||
:description "Remove unnecessary space padding around parenthesis"
|
||||
|
||||
parser:flag "--pad-brackets"
|
||||
:description "Insert space padding around square brackets on both the outside and the inside (experimental)."
|
||||
|
||||
parser:flag "--unpad-brackets"
|
||||
:description "Remove unnecessary space padding around square brackets (experimental)."
|
||||
|
||||
parser:flag "--delete-empty-lines"
|
||||
:description "Delete empty lines within a function or method"
|
||||
|
||||
parser:flag "--fill-empty-lines"
|
||||
:description "Fill empty lines with the white space of their previous lines"
|
||||
|
||||
parser:option "--align-pointer"
|
||||
:description "Attach a pointer or reference operator (*, &, or ^) to either the operator type (left), middle, or operator name (right)"
|
||||
:choices {"type", "middle", "name"}
|
||||
|
||||
parser:option "--align-reference"
|
||||
:description "Attach a reference operator (&) to either the operator type (left), middle, or operator name (right). If not set, follow pointer alignment"
|
||||
:choices {"none", "type", "middle", "name"}
|
||||
|
||||
parser:flag "--break-closing-braces"
|
||||
:description "Break braces before closing headers (e.g. 'else', 'catch', ...)"
|
||||
|
||||
parser:flag "--break-elseifs"
|
||||
:description "Break 'else if()' statements into two different lines"
|
||||
|
||||
parser:flag "--break-one-line-headers"
|
||||
:description "Break one line headers (e.g. 'if', 'while', 'else', ...) from a statement residing on the same line"
|
||||
|
||||
parser:flag "--add-braces"
|
||||
:description "Add braces to unbraced one line conditional statements"
|
||||
|
||||
parser:flag "--add-one-line-braces"
|
||||
:description "Add one line braces to unbraced one line conditional statements"
|
||||
|
||||
parser:flag "--remove-braces"
|
||||
:description "Remove braces from a braced one line conditional statements"
|
||||
|
||||
parser:flag "--break-return-type"
|
||||
:description "Break the return type from the function name definitions"
|
||||
|
||||
parser:flag "--attach-return-type-decl"
|
||||
:description "Break the return type from the function name declarations"
|
||||
|
||||
parser:flag "--keep-one-line-blocks"
|
||||
:description "Don't break blocks residing completely on one line"
|
||||
|
||||
parser:flag "--keep-one-line-statements"
|
||||
:description "Don't break lines containing multiple statements into multiple single-statement lines"
|
||||
|
||||
parser:flag "--convert-tabs"
|
||||
:description "Convert tabs to the appropriate number of spaces"
|
||||
|
||||
parser:flag "--close-templates"
|
||||
:description "Close ending angle brackets on template definitions"
|
||||
|
||||
parser:flag "--remove-comment-prefix"
|
||||
:description "Remove the leading '*' prefix on multi-line comments and indent the comment text one indent"
|
||||
|
||||
parser:option "--max-code-length"
|
||||
:description "Break the line if it exceeds more than # characters"
|
||||
|
||||
parser:flag "--break-after-logical"
|
||||
:description "After break line using --max-code-length, place logical conditional last on the previous line"
|
||||
|
||||
parser:option "mode"
|
||||
:description "Set input syntax mode"
|
||||
:choices {"c", "java", "cs", "objc", "js"}
|
||||
|
||||
parser:flag "--pad-method-prefix"
|
||||
:description "Insert space padding after the '-' or '+' Objective-C method prefix"
|
||||
|
||||
parser:flag "--unpad-method-prefix"
|
||||
:description "Remove all space padding after the '-' or '+' Objective-C method prefix"
|
||||
|
||||
parser:flag "--pad-return-type"
|
||||
:description "Insert space padding after the Objective-C return type"
|
||||
|
||||
parser:flag "--unpad-return-type"
|
||||
:description "Remove all space padding after the Objective-C return type"
|
||||
|
||||
parser:flag "--pad-param-type"
|
||||
:description "Insert space padding after the Objective-C param type"
|
||||
|
||||
parser:flag "--unpad-param-type"
|
||||
:description "Remove all space padding after the Objective-C param type"
|
||||
|
||||
parser:flag "--align-method-colon"
|
||||
:description "Align the colons in an Objective-C method definition."
|
||||
|
||||
parser:option "--pad-method-colon"
|
||||
:description "Add or remove space padding before or after the colons in an Objective-C method call"
|
||||
:choices {"none", "all", "after", "before"}
|
||||
|
||||
parser:option "--suffix"
|
||||
:description "Append the suffix #### instead of '.orig' to original filename or do not retain a backup of the original file if set to none"
|
||||
|
||||
parser:flag "--recursive"
|
||||
:description "Process subdirectories recursively"
|
||||
|
||||
parser:flag "--dry-run"
|
||||
:description "Perform a trial run with no changes made to check for formatting"
|
||||
|
||||
parser:option "--exclude"
|
||||
:description "Specify a file or directory #### to be excluded from processing"
|
||||
|
||||
parser:flag "--ignore-exclude-errors"
|
||||
:description "Allow processing to continue if there are errors in the --exclude options. It will display the unmatched excludes"
|
||||
|
||||
parser:flag "--ignore-exclude-errors-x"
|
||||
:description "Allow processing to continue if there are errors in the --exclude options. It will NOT display the unmatched excludes"
|
||||
|
||||
parser:flag "--errors-to-stdout"
|
||||
:description "Print errors and help information to standard-output rather than to standard-error"
|
||||
|
||||
parser:flag "--preserve-date"
|
||||
:description "Preserve the original file's date and time modified"
|
||||
|
||||
parser:flag "--verbose"
|
||||
:description "Extra informational messages will be displayed"
|
||||
|
||||
parser:flag "--formatted"
|
||||
:description "Display only the files that have been formatted"
|
||||
|
||||
parser:flag "--quiet"
|
||||
:description "Suppress all output except error messages"
|
||||
|
||||
parser:option "--lineend"
|
||||
:description "Force use of the specified line end style"
|
||||
:choices {"windows", "linux", "macold"}
|
||||
|
||||
parser:option "--options"
|
||||
:description "Specify a default option file to read and use."
|
||||
|
||||
parser:option "--project"
|
||||
:description "Specify a project option file to read and use"
|
||||
|
||||
parser:flag "--ascii"
|
||||
:description "The displayed output will be ASCII characters only"
|
||||
|
||||
parser:flag "--version"
|
||||
:description "Print version number"
|
||||
|
||||
parser:flag "--help"
|
||||
:description "Print help message"
|
||||
|
||||
parser:flag "--html"
|
||||
:description "Open the HTML help file astyle.html in the default browser"
|
||||
|
||||
parser:option "--stdin"
|
||||
:description "Use the file path as input to single file formatting"
|
||||
|
||||
parser:option "--stdout"
|
||||
:description "Use the file path as output from single file formatting"
|
||||
|
||||
parser:option "--squeeze-lines"
|
||||
:description "Remove superfluous empty lines exceeding the given number"
|
||||
|
||||
parser:flag "--squeeze-ws"
|
||||
:description "Remove superfluous whitespace"
|
||||
|
||||
local p = argparse "gen-completions"
|
||||
p:argument "shell"
|
||||
:choices {"bash", "zsh", "fish"}
|
||||
|
||||
local shell = p:parse().shell
|
||||
|
||||
if shell == "bash" then
|
||||
io.write(parser:get_bash_complete())
|
||||
elseif shell == "zsh" then
|
||||
io.write(parser:get_zsh_complete())
|
||||
else
|
||||
io.write(parser:get_fish_complete())
|
||||
end
|
||||
+233
-178
File diff suppressed because it is too large
Load Diff
+24
-24
@@ -34,7 +34,7 @@ void ASEnhancer::init(int _fileType,
|
||||
bool _preprocBlockIndent,
|
||||
bool _preprocDefineIndent,
|
||||
bool _emptyLineFill,
|
||||
vector<const pair<const string, const string>* >* _indentableMacros)
|
||||
std::vector<const std::pair<const std::string, const std::string>* >* _indentableMacros)
|
||||
{
|
||||
// formatting variables from ASFormatter and ASBeautifier
|
||||
ASBase::init(_fileType);
|
||||
@@ -84,7 +84,7 @@ void ASEnhancer::init(int _fileType,
|
||||
*
|
||||
* @param line the original formatted line will be updated if necessary.
|
||||
*/
|
||||
void ASEnhancer::enhance(string& line, bool isInNamespace, bool isInPreprocessor, bool isInSQL)
|
||||
void ASEnhancer::enhance(std::string& line, bool isInNamespace, bool isInPreprocessor, bool isInSQL)
|
||||
{
|
||||
shouldUnindentLine = true;
|
||||
shouldUnindentComment = false;
|
||||
@@ -125,7 +125,7 @@ void ASEnhancer::enhance(string& line, bool isInNamespace, bool isInPreprocessor
|
||||
if (isInDeclareSection)
|
||||
{
|
||||
size_t firstText = line.find_first_not_of(" \t");
|
||||
if (firstText == string::npos || line[firstText] != '#')
|
||||
if (firstText == std::string::npos || line[firstText] != '#')
|
||||
indentLine(line, 1);
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ void ASEnhancer::enhance(string& line, bool isInNamespace, bool isInPreprocessor
|
||||
|| (namespaceIndent && isInNamespace)))
|
||||
{
|
||||
size_t firstText = line.find_first_not_of(" \t");
|
||||
if (firstText == string::npos || line[firstText] != '#')
|
||||
if (firstText == std::string::npos || line[firstText] != '#')
|
||||
indentLine(line, 1);
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ void ASEnhancer::enhance(string& line, bool isInNamespace, bool isInPreprocessor
|
||||
*
|
||||
* @param line a reference to the line that will be converted.
|
||||
*/
|
||||
void ASEnhancer::convertForceTabIndentToSpaces(string& line) const
|
||||
void ASEnhancer::convertForceTabIndentToSpaces(std::string& line) const
|
||||
{
|
||||
// replace tab indents with spaces
|
||||
for (size_t i = 0; i < line.length(); i++)
|
||||
@@ -171,7 +171,7 @@ void ASEnhancer::convertForceTabIndentToSpaces(string& line) const
|
||||
*
|
||||
* @param line a reference to the line that will be converted.
|
||||
*/
|
||||
void ASEnhancer::convertSpaceIndentToForceTab(string& line) const
|
||||
void ASEnhancer::convertSpaceIndentToForceTab(std::string& line) const
|
||||
{
|
||||
assert(tabLength > 0);
|
||||
|
||||
@@ -188,7 +188,7 @@ void ASEnhancer::convertSpaceIndentToForceTab(string& line) const
|
||||
* @param caseIndex the line index of the case statement.
|
||||
* @return the line index of the colon.
|
||||
*/
|
||||
size_t ASEnhancer::findCaseColon(const string& line, size_t caseIndex) const
|
||||
size_t ASEnhancer::findCaseColon(const std::string& line, size_t caseIndex) const
|
||||
{
|
||||
size_t i = caseIndex;
|
||||
bool isInQuote_ = false;
|
||||
@@ -236,7 +236,7 @@ size_t ASEnhancer::findCaseColon(const string& line, size_t caseIndex) const
|
||||
* @param indent the number of tabsets to insert.
|
||||
* @return the number of characters inserted.
|
||||
*/
|
||||
int ASEnhancer::indentLine(string& line, int indent) const
|
||||
int ASEnhancer::indentLine(std::string& line, int indent) const
|
||||
{
|
||||
if (line.length() == 0
|
||||
&& !emptyLineFill)
|
||||
@@ -276,15 +276,15 @@ int ASEnhancer::indentLine(string& line, int indent) const
|
||||
* @param index the current line index.
|
||||
* @return true if a hit.
|
||||
*/
|
||||
bool ASEnhancer::isBeginDeclareSectionSQL(const string& line, size_t index) const
|
||||
bool ASEnhancer::isBeginDeclareSectionSQL(const std::string& line, size_t index) const
|
||||
{
|
||||
string word;
|
||||
std::string word;
|
||||
size_t hits = 0;
|
||||
size_t i;
|
||||
for (i = index; i < line.length(); i++)
|
||||
{
|
||||
i = line.find_first_not_of(" \t", i);
|
||||
if (i == string::npos)
|
||||
if (i == std::string::npos)
|
||||
return false;
|
||||
if (line[i] == ';')
|
||||
break;
|
||||
@@ -325,15 +325,15 @@ bool ASEnhancer::isBeginDeclareSectionSQL(const string& line, size_t index) cons
|
||||
* @param index the current line index.
|
||||
* @return true if a hit.
|
||||
*/
|
||||
bool ASEnhancer::isEndDeclareSectionSQL(const string& line, size_t index) const
|
||||
bool ASEnhancer::isEndDeclareSectionSQL(const std::string& line, size_t index) const
|
||||
{
|
||||
string word;
|
||||
std::string word;
|
||||
size_t hits = 0;
|
||||
size_t i;
|
||||
for (i = index; i < line.length(); i++)
|
||||
{
|
||||
i = line.find_first_not_of(" \t", i);
|
||||
if (i == string::npos)
|
||||
if (i == std::string::npos)
|
||||
return false;
|
||||
if (line[i] == ';')
|
||||
break;
|
||||
@@ -374,7 +374,7 @@ bool ASEnhancer::isEndDeclareSectionSQL(const string& line, size_t index) const
|
||||
* @return false = one-line brace has not been reached.
|
||||
* true = one-line brace has been reached.
|
||||
*/
|
||||
bool ASEnhancer::isOneLineBlockReached(const string& line, int startChar) const
|
||||
bool ASEnhancer::isOneLineBlockReached(const std::string& line, int startChar) const
|
||||
{
|
||||
assert(line[startChar] == '{');
|
||||
|
||||
@@ -446,7 +446,7 @@ bool ASEnhancer::isOneLineBlockReached(const string& line, int startChar) const
|
||||
* parse characters in the current line to determine if an indent
|
||||
* or unindent is needed.
|
||||
*/
|
||||
void ASEnhancer::parseCurrentLine(string& line, bool isInPreprocessor, bool isInSQL)
|
||||
void ASEnhancer::parseCurrentLine(std::string& line, bool isInPreprocessor, bool isInSQL)
|
||||
{
|
||||
bool isSpecialChar = false; // is a backslash escape character
|
||||
|
||||
@@ -516,7 +516,7 @@ void ASEnhancer::parseCurrentLine(string& line, bool isInPreprocessor, bool isIn
|
||||
shouldUnindentComment = true;
|
||||
isInComment = true;
|
||||
size_t commentEnd = line.find("*/", i);
|
||||
if (commentEnd == string::npos)
|
||||
if (commentEnd == std::string::npos)
|
||||
i = line.length() - 1;
|
||||
else
|
||||
i = commentEnd - 1;
|
||||
@@ -537,7 +537,7 @@ void ASEnhancer::parseCurrentLine(string& line, bool isInPreprocessor, bool isIn
|
||||
if (sw.switchBraceCount == 1 && sw.unindentCase)
|
||||
shouldUnindentComment = true;
|
||||
size_t commentEnd = line.find("*/", i);
|
||||
if (commentEnd == string::npos)
|
||||
if (commentEnd == std::string::npos)
|
||||
i = line.length() - 1;
|
||||
else
|
||||
i = commentEnd - 1;
|
||||
@@ -555,7 +555,7 @@ void ASEnhancer::parseCurrentLine(string& line, bool isInPreprocessor, bool isIn
|
||||
// check for preprocessor within an event table
|
||||
if (isInEventTable && line[i] == '#' && preprocBlockIndent)
|
||||
{
|
||||
string preproc;
|
||||
std::string preproc;
|
||||
preproc = line.substr(i + 1);
|
||||
if (preproc.substr(0, 2) == "if") // #if, #ifdef, #ifndef)
|
||||
eventPreprocDepth += 1;
|
||||
@@ -619,7 +619,7 @@ void ASEnhancer::parseCurrentLine(string& line, bool isInPreprocessor, bool isIn
|
||||
// bypass the entire word
|
||||
if (isPotentialKeyword)
|
||||
{
|
||||
string name = getCurrentWord(line, i);
|
||||
std::string name = getCurrentWord(line, i);
|
||||
i += name.length() - 1;
|
||||
}
|
||||
continue;
|
||||
@@ -637,7 +637,7 @@ void ASEnhancer::parseCurrentLine(string& line, bool isInPreprocessor, bool isIn
|
||||
* @param index the current line index.
|
||||
* @return the new line index.
|
||||
*/
|
||||
size_t ASEnhancer::processSwitchBlock(string& line, size_t index)
|
||||
size_t ASEnhancer::processSwitchBlock(std::string& line, size_t index)
|
||||
{
|
||||
size_t i = index;
|
||||
bool isPotentialKeyword = isCharPotentialHeader(line, i);
|
||||
@@ -712,7 +712,7 @@ size_t ASEnhancer::processSwitchBlock(string& line, size_t index)
|
||||
}
|
||||
if (isPotentialKeyword)
|
||||
{
|
||||
string name = getCurrentWord(line, i); // bypass the entire name
|
||||
std::string name = getCurrentWord(line, i); // bypass the entire name
|
||||
i += name.length() - 1;
|
||||
}
|
||||
return i;
|
||||
@@ -726,11 +726,11 @@ size_t ASEnhancer::processSwitchBlock(string& line, size_t index)
|
||||
* @param unindent the number of tabsets to erase.
|
||||
* @return the number of characters erased.
|
||||
*/
|
||||
int ASEnhancer::unindentLine(string& line, int unindent) const
|
||||
int ASEnhancer::unindentLine(std::string& line, int unindent) const
|
||||
{
|
||||
size_t whitespace = line.find_first_not_of(" \t");
|
||||
|
||||
if (whitespace == string::npos) // if line is blank
|
||||
if (whitespace == std::string::npos) // if line is blank
|
||||
whitespace = line.length(); // must remove padding, if any
|
||||
|
||||
if (whitespace == 0)
|
||||
|
||||
+419
-341
File diff suppressed because it is too large
Load Diff
+16
-16
@@ -183,7 +183,7 @@ void ASLocalizer::setLanguageFromLCID(size_t lcid)
|
||||
|
||||
#endif // _WIN32
|
||||
|
||||
string ASLocalizer::getLanguageID() const
|
||||
std::string ASLocalizer::getLanguageID() const
|
||||
// Returns the language ID in m_langID.
|
||||
{
|
||||
return m_langID;
|
||||
@@ -217,13 +217,13 @@ void ASLocalizer::setLanguageFromName(const char* langID)
|
||||
// de_DE.iso88591@euro
|
||||
{
|
||||
// the constants describing the format of lang_LANG locale string
|
||||
string langStr = langID;
|
||||
std::string langStr = langID;
|
||||
m_langID = langStr.substr(0, 2);
|
||||
|
||||
// need the sublang for chinese
|
||||
if (m_langID == "zh" && langStr[2] == '_')
|
||||
{
|
||||
string subLang = langStr.substr(3, 2);
|
||||
std::string subLang = langStr.substr(3, 2);
|
||||
if (subLang == "CN" || subLang == "SG")
|
||||
m_subLangID = "CHS";
|
||||
else
|
||||
@@ -236,7 +236,7 @@ const char* ASLocalizer::settext(const char* textIn) const
|
||||
// Call the settext class and return the value.
|
||||
{
|
||||
assert(m_translationClass);
|
||||
const string stringIn = textIn;
|
||||
const std::string stringIn = textIn;
|
||||
return m_translationClass->translate(stringIn).c_str();
|
||||
}
|
||||
|
||||
@@ -311,22 +311,22 @@ Translation::Translation()
|
||||
m_translationVector.reserve(translationElements);
|
||||
}
|
||||
|
||||
void Translation::addPair(const string& english, const wstring& translated)
|
||||
void Translation::addPair(const std::string& english, const std::wstring& translated)
|
||||
// Add a string pair to the translation vector.
|
||||
{
|
||||
pair<string, wstring> entry(english, translated);
|
||||
std::pair<std::string, std::wstring> entry(english, translated);
|
||||
m_translationVector.emplace_back(entry);
|
||||
assert(m_translationVector.size() <= translationElements);
|
||||
}
|
||||
|
||||
string Translation::convertToMultiByte(const wstring& wideStr) const
|
||||
std::string Translation::convertToMultiByte(const std::wstring& wideStr) const
|
||||
// Convert wchar_t to a multibyte string using the currently assigned locale.
|
||||
// Return an empty string if an error occurs.
|
||||
{
|
||||
static bool msgDisplayed = false;
|
||||
// get length of the output excluding the nullptr and validate the parameters
|
||||
size_t mbLen = wcstombs(nullptr, wideStr.c_str(), 0);
|
||||
if (mbLen == string::npos)
|
||||
if (mbLen == std::string::npos)
|
||||
{
|
||||
if (!msgDisplayed)
|
||||
{
|
||||
@@ -336,7 +336,7 @@ string Translation::convertToMultiByte(const wstring& wideStr) const
|
||||
return "";
|
||||
}
|
||||
// convert the characters
|
||||
char* mbStr = new (nothrow) char[mbLen + 1];
|
||||
char* mbStr = new (std::nothrow) char[mbLen + 1];
|
||||
if (mbStr == nullptr)
|
||||
{
|
||||
if (!msgDisplayed)
|
||||
@@ -348,16 +348,16 @@ string Translation::convertToMultiByte(const wstring& wideStr) const
|
||||
}
|
||||
wcstombs(mbStr, wideStr.c_str(), mbLen + 1);
|
||||
// return the string
|
||||
string mbTranslation = mbStr;
|
||||
std::string mbTranslation = mbStr;
|
||||
delete[] mbStr;
|
||||
return mbTranslation;
|
||||
}
|
||||
|
||||
string Translation::getTranslationString(size_t i) const
|
||||
std::string Translation::getTranslationString(size_t i) const
|
||||
// Return the translation ascii value. Used for testing.
|
||||
{
|
||||
if (i >= m_translationVector.size())
|
||||
return string();
|
||||
return std::string();
|
||||
return m_translationVector[i].first;
|
||||
}
|
||||
|
||||
@@ -367,10 +367,10 @@ size_t Translation::getTranslationVectorSize() const
|
||||
return m_translationVector.size();
|
||||
}
|
||||
|
||||
bool Translation::getWideTranslation(const string& stringIn, wstring& wideOut) const
|
||||
bool Translation::getWideTranslation(const std::string& stringIn, std::wstring& wideOut) const
|
||||
// Get the wide translation string. Used for testing.
|
||||
{
|
||||
for (const pair<string, wstring>& translation : m_translationVector)
|
||||
for (const std::pair<std::string, std::wstring>& translation : m_translationVector)
|
||||
{
|
||||
if (translation.first == stringIn)
|
||||
{
|
||||
@@ -383,13 +383,13 @@ bool Translation::getWideTranslation(const string& stringIn, wstring& wideOut) c
|
||||
return false;
|
||||
}
|
||||
|
||||
string& Translation::translate(const string& stringIn) const
|
||||
std::string& Translation::translate(const std::string& stringIn) const
|
||||
// Translate a string.
|
||||
// Return a mutable string so the method can have a "const" designation.
|
||||
// This allows "settext" to be called from a "const" method.
|
||||
{
|
||||
m_mbTranslation.clear();
|
||||
for (const pair<string, wstring>& translation : m_translationVector)
|
||||
for (const std::pair<std::string, std::wstring>& translation : m_translationVector)
|
||||
{
|
||||
if (translation.first == stringIn)
|
||||
{
|
||||
|
||||
+14
-16
@@ -19,8 +19,6 @@
|
||||
|
||||
namespace astyle {
|
||||
|
||||
using namespace std;
|
||||
|
||||
#ifndef ASTYLE_LIB
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -35,7 +33,7 @@ class ASLocalizer
|
||||
public: // functions
|
||||
ASLocalizer();
|
||||
virtual ~ASLocalizer();
|
||||
string getLanguageID() const;
|
||||
std::string getLanguageID() const;
|
||||
const Translation* getTranslationClass() const;
|
||||
#ifdef _WIN32
|
||||
void setLanguageFromLCID(size_t lcid);
|
||||
@@ -48,8 +46,8 @@ private: // functions
|
||||
|
||||
private: // variables
|
||||
Translation* m_translationClass;// pointer to a polymorphic Translation class
|
||||
string m_langID; // language identifier from the locale
|
||||
string m_subLangID; // sub language identifier, if needed
|
||||
std::string m_langID; // language identifier from the locale
|
||||
std::string m_subLangID; // sub language identifier, if needed
|
||||
#ifdef _WIN32
|
||||
size_t m_lcid; // LCID of the user locale (Windows only)
|
||||
size_t m_codepage; // active codepage, 65001 = utf-8
|
||||
@@ -63,36 +61,36 @@ private: // variables
|
||||
class Translation
|
||||
// This base class is inherited by the language translation classes.
|
||||
// Polymorphism is used to call the correct language translator.
|
||||
// This class contains the translation vector and settext translation method.
|
||||
// The language vector is built by the language sub classes.
|
||||
// This class contains the translation std::vector and settext translation method.
|
||||
// The language std::vector is built by the language sub classes.
|
||||
// NOTE: This class must have virtual methods for typeid() to work.
|
||||
// typeid() is used by AStyleTestI18n_Localizer.cpp.
|
||||
{
|
||||
public:
|
||||
Translation();
|
||||
virtual ~Translation() = default;
|
||||
string convertToMultiByte(const wstring& wideStr) const;
|
||||
string getTranslationString(size_t i) const;
|
||||
std::string convertToMultiByte(const std::wstring& wideStr) const;
|
||||
std::string getTranslationString(size_t i) const;
|
||||
size_t getTranslationVectorSize() const;
|
||||
bool getWideTranslation(const string& stringIn, wstring& wideOut) const;
|
||||
string& translate(const string& stringIn) const;
|
||||
bool getWideTranslation(const std::string& stringIn, std::wstring& wideOut) const;
|
||||
std::string& translate(const std::string& stringIn) const;
|
||||
|
||||
protected:
|
||||
void addPair(const string& english, const wstring& translated);
|
||||
void addPair(const std::string& english, const std::wstring& translated);
|
||||
// variables
|
||||
vector<pair<string, wstring> > m_translationVector;
|
||||
std::vector<std::pair<std::string, std::wstring> > m_translationVector;
|
||||
|
||||
private:
|
||||
// the number of translation pairs added a constructor
|
||||
static const size_t translationElements = 30; // need static for vs2013
|
||||
// the translated string
|
||||
mutable string m_mbTranslation;
|
||||
// the translated std::string
|
||||
mutable std::string m_mbTranslation;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Translation classes
|
||||
// One class for each language.
|
||||
// These classes have only a constructor which builds the language vector.
|
||||
// These classes have only a constructor which builds the language std::vector.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
class Bulgarian : public Translation
|
||||
|
||||
+182
-172
@@ -16,159 +16,159 @@
|
||||
|
||||
namespace astyle {
|
||||
//
|
||||
const string ASResource::_AS_EXCEPT = string("__except");
|
||||
const string ASResource::_AS_FINALLY = string("__finally");
|
||||
const string ASResource::_AS_TRY = string("__try");
|
||||
const string ASResource::AS_ADD = string("add");
|
||||
const string ASResource::AS_AUTO = string("auto");
|
||||
const string ASResource::AS_AUTORELEASEPOOL = string("autoreleasepool");
|
||||
const string ASResource::AS_CASE = string("case");
|
||||
const string ASResource::AS_CATCH = string("catch");
|
||||
const string ASResource::AS_CLASS = string("class");
|
||||
const string ASResource::AS_CONST = string("const");
|
||||
const string ASResource::AS_CONST_CAST = string("const_cast");
|
||||
const string ASResource::AS_DEFAULT = string("default");
|
||||
const string ASResource::AS_DELEGATE = string("delegate");
|
||||
const string ASResource::AS_DELETE = string("delete");
|
||||
const string ASResource::AS_DO = string("do");
|
||||
const string ASResource::AS_DYNAMIC_CAST = string("dynamic_cast");
|
||||
const string ASResource::AS_ELSE = string("else");
|
||||
const string ASResource::AS_END = string("end");
|
||||
const string ASResource::AS_ENUM = string("enum");
|
||||
const string ASResource::AS_EXTERN = string("extern");
|
||||
const string ASResource::AS_FINAL = string("final");
|
||||
const string ASResource::AS_FINALLY = string("finally");
|
||||
const string ASResource::AS_FIXED = string("fixed");
|
||||
const string ASResource::AS_FOR = string("for");
|
||||
const string ASResource::AS_FOREACH = string("foreach");
|
||||
const string ASResource::AS_FOREVER = string("forever");
|
||||
const string ASResource::AS_GET = string("get");
|
||||
const string ASResource::AS_IF = string("if");
|
||||
const string ASResource::AS_INTERFACE = string("interface");
|
||||
const string ASResource::AS_INTERRUPT = string("interrupt");
|
||||
const string ASResource::AS_LET = string("let");
|
||||
const string ASResource::AS_LOCK = string("lock");
|
||||
const string ASResource::AS_MODULE = string("module"); // CORBA IDL module definition
|
||||
const string ASResource::AS_NAMESPACE = string("namespace");
|
||||
const string ASResource::AS_NEW = string("new");
|
||||
const string ASResource::AS_NOEXCEPT = string("noexcept");
|
||||
const string ASResource::AS_NS_DURING = string("NS_DURING");
|
||||
const string ASResource::AS_NS_HANDLER = string("NS_HANDLER");
|
||||
const string ASResource::AS_OPERATOR = string("operator");
|
||||
const string ASResource::AS_OVERRIDE = string("override");
|
||||
const string ASResource::AS_PRIVATE = string("private");
|
||||
const string ASResource::AS_PROTECTED = string("protected");
|
||||
const string ASResource::AS_PUBLIC = string("public");
|
||||
const string ASResource::AS_QFOREACH = string("Q_FOREACH");
|
||||
const string ASResource::AS_QFOREVER = string("Q_FOREVER");
|
||||
const string ASResource::AS_REINTERPRET_CAST = string("reinterpret_cast");
|
||||
const string ASResource::AS_REMOVE = string("remove");
|
||||
const string ASResource::AS_SEALED = string("sealed");
|
||||
const string ASResource::AS_SELECTOR = string("selector");
|
||||
const string ASResource::AS_SET = string("set");
|
||||
const string ASResource::AS_STATIC = string("static");
|
||||
const string ASResource::AS_STATIC_CAST = string("static_cast");
|
||||
const string ASResource::AS_STRUCT = string("struct");
|
||||
const string ASResource::AS_TYPEDEF_STRUCT = string("typedef struct");
|
||||
const string ASResource::AS_SWITCH = string("switch");
|
||||
const string ASResource::AS_SYNCHRONIZED = string("synchronized");
|
||||
const string ASResource::AS_TEMPLATE = string("template");
|
||||
const string ASResource::AS_THROW = string("throw");
|
||||
const string ASResource::AS_THROWS = string("throws");
|
||||
const string ASResource::AS_TRY = string("try");
|
||||
const string ASResource::AS_UNCHECKED = string("unchecked");
|
||||
const string ASResource::AS_UNION = string("union");
|
||||
const string ASResource::AS_UNSAFE = string("unsafe");
|
||||
const string ASResource::AS_USING = string("using");
|
||||
const string ASResource::AS_VOLATILE = string("volatile");
|
||||
const string ASResource::AS_WHERE = string("where");
|
||||
const string ASResource::AS_WHILE = string("while");
|
||||
const std::string ASResource::_AS_EXCEPT = std::string("__except");
|
||||
const std::string ASResource::_AS_FINALLY = std::string("__finally");
|
||||
const std::string ASResource::_AS_TRY = std::string("__try");
|
||||
const std::string ASResource::AS_ADD = std::string("add");
|
||||
const std::string ASResource::AS_AUTO = std::string("auto");
|
||||
const std::string ASResource::AS_AUTORELEASEPOOL = std::string("autoreleasepool");
|
||||
const std::string ASResource::AS_CASE = std::string("case");
|
||||
const std::string ASResource::AS_CATCH = std::string("catch");
|
||||
const std::string ASResource::AS_CLASS = std::string("class");
|
||||
const std::string ASResource::AS_CONST = std::string("const");
|
||||
const std::string ASResource::AS_CONST_CAST = std::string("const_cast");
|
||||
const std::string ASResource::AS_DEFAULT = std::string("default");
|
||||
const std::string ASResource::AS_DELEGATE = std::string("delegate");
|
||||
const std::string ASResource::AS_DELETE = std::string("delete");
|
||||
const std::string ASResource::AS_DO = std::string("do");
|
||||
const std::string ASResource::AS_DYNAMIC_CAST = std::string("dynamic_cast");
|
||||
const std::string ASResource::AS_ELSE = std::string("else");
|
||||
const std::string ASResource::AS_END = std::string("end");
|
||||
const std::string ASResource::AS_ENUM = std::string("enum");
|
||||
const std::string ASResource::AS_EXTERN = std::string("extern");
|
||||
const std::string ASResource::AS_FINAL = std::string("final");
|
||||
const std::string ASResource::AS_FINALLY = std::string("finally");
|
||||
const std::string ASResource::AS_FIXED = std::string("fixed");
|
||||
const std::string ASResource::AS_FOR = std::string("for");
|
||||
const std::string ASResource::AS_FOREACH = std::string("foreach");
|
||||
const std::string ASResource::AS_FOREVER = std::string("forever");
|
||||
const std::string ASResource::AS_GET = std::string("get");
|
||||
const std::string ASResource::AS_IF = std::string("if");
|
||||
const std::string ASResource::AS_INTERFACE = std::string("interface");
|
||||
const std::string ASResource::AS_INTERRUPT = std::string("interrupt");
|
||||
const std::string ASResource::AS_LET = std::string("let");
|
||||
const std::string ASResource::AS_LOCK = std::string("lock");
|
||||
const std::string ASResource::AS_MODULE = std::string("module"); // CORBA IDL module definition
|
||||
const std::string ASResource::AS_NAMESPACE = std::string("namespace");
|
||||
const std::string ASResource::AS_NEW = std::string("new");
|
||||
const std::string ASResource::AS_NOEXCEPT = std::string("noexcept");
|
||||
const std::string ASResource::AS_NS_DURING = std::string("NS_DURING");
|
||||
const std::string ASResource::AS_NS_HANDLER = std::string("NS_HANDLER");
|
||||
const std::string ASResource::AS_OPERATOR = std::string("operator");
|
||||
const std::string ASResource::AS_OVERRIDE = std::string("override");
|
||||
const std::string ASResource::AS_PRIVATE = std::string("private");
|
||||
const std::string ASResource::AS_PROTECTED = std::string("protected");
|
||||
const std::string ASResource::AS_PUBLIC = std::string("public");
|
||||
const std::string ASResource::AS_QFOREACH = std::string("Q_FOREACH");
|
||||
const std::string ASResource::AS_QFOREVER = std::string("Q_FOREVER");
|
||||
const std::string ASResource::AS_REINTERPRET_CAST = std::string("reinterpret_cast");
|
||||
const std::string ASResource::AS_REMOVE = std::string("remove");
|
||||
const std::string ASResource::AS_SEALED = std::string("sealed");
|
||||
const std::string ASResource::AS_SELECTOR = std::string("selector");
|
||||
const std::string ASResource::AS_SET = std::string("set");
|
||||
const std::string ASResource::AS_STATIC = std::string("static");
|
||||
const std::string ASResource::AS_STATIC_CAST = std::string("static_cast");
|
||||
const std::string ASResource::AS_STRUCT = std::string("struct");
|
||||
const std::string ASResource::AS_TYPEDEF_STRUCT = std::string("typedef struct");
|
||||
const std::string ASResource::AS_SWITCH = std::string("switch");
|
||||
const std::string ASResource::AS_SYNCHRONIZED = std::string("synchronized");
|
||||
const std::string ASResource::AS_TEMPLATE = std::string("template");
|
||||
const std::string ASResource::AS_THROW = std::string("throw");
|
||||
const std::string ASResource::AS_THROWS = std::string("throws");
|
||||
const std::string ASResource::AS_TRY = std::string("try");
|
||||
const std::string ASResource::AS_UNCHECKED = std::string("unchecked");
|
||||
const std::string ASResource::AS_UNION = std::string("union");
|
||||
const std::string ASResource::AS_UNSAFE = std::string("unsafe");
|
||||
const std::string ASResource::AS_USING = std::string("using");
|
||||
const std::string ASResource::AS_VOLATILE = std::string("volatile");
|
||||
const std::string ASResource::AS_WHERE = std::string("where");
|
||||
const std::string ASResource::AS_WHILE = std::string("while");
|
||||
|
||||
const string ASResource::AS_ASM = string("asm");
|
||||
const string ASResource::AS__ASM__ = string("__asm__");
|
||||
const string ASResource::AS_MS_ASM = string("_asm");
|
||||
const string ASResource::AS_MS__ASM = string("__asm");
|
||||
const std::string ASResource::AS_ASM = std::string("asm");
|
||||
const std::string ASResource::AS__ASM__ = std::string("__asm__");
|
||||
const std::string ASResource::AS_MS_ASM = std::string("_asm");
|
||||
const std::string ASResource::AS_MS__ASM = std::string("__asm");
|
||||
|
||||
const string ASResource::AS_BAR_DEFINE = string("#define");
|
||||
const string ASResource::AS_BAR_INCLUDE = string("#include");
|
||||
const string ASResource::AS_BAR_IF = string("#if");
|
||||
const string ASResource::AS_BAR_EL = string("#el");
|
||||
const string ASResource::AS_BAR_ENDIF = string("#endif");
|
||||
const std::string ASResource::AS_BAR_DEFINE = std::string("#define");
|
||||
const std::string ASResource::AS_BAR_INCLUDE = std::string("#include");
|
||||
const std::string ASResource::AS_BAR_IF = std::string("#if");
|
||||
const std::string ASResource::AS_BAR_EL = std::string("#el");
|
||||
const std::string ASResource::AS_BAR_ENDIF = std::string("#endif");
|
||||
|
||||
const string ASResource::AS_OPEN_PAREN = string("(");
|
||||
const string ASResource::AS_CLOSE_PAREN = string(")");
|
||||
const string ASResource::AS_OPEN_BRACE = string("{");
|
||||
const string ASResource::AS_CLOSE_BRACE = string("}");
|
||||
const string ASResource::AS_OPEN_LINE_COMMENT = string("//");
|
||||
const string ASResource::AS_OPEN_COMMENT = string("/*");
|
||||
const string ASResource::AS_CLOSE_COMMENT = string("*/");
|
||||
const std::string ASResource::AS_OPEN_PAREN = std::string("(");
|
||||
const std::string ASResource::AS_CLOSE_PAREN = std::string(")");
|
||||
const std::string ASResource::AS_OPEN_BRACE = std::string("{");
|
||||
const std::string ASResource::AS_CLOSE_BRACE = std::string("}");
|
||||
const std::string ASResource::AS_OPEN_LINE_COMMENT = std::string("//");
|
||||
const std::string ASResource::AS_OPEN_COMMENT = std::string("/*");
|
||||
const std::string ASResource::AS_CLOSE_COMMENT = std::string("*/");
|
||||
|
||||
const string ASResource::AS_ASSIGN = string("=");
|
||||
const string ASResource::AS_PLUS_ASSIGN = string("+=");
|
||||
const string ASResource::AS_MINUS_ASSIGN = string("-=");
|
||||
const string ASResource::AS_MULT_ASSIGN = string("*=");
|
||||
const string ASResource::AS_DIV_ASSIGN = string("/=");
|
||||
const string ASResource::AS_MOD_ASSIGN = string("%=");
|
||||
const string ASResource::AS_OR_ASSIGN = string("|=");
|
||||
const string ASResource::AS_AND_ASSIGN = string("&=");
|
||||
const string ASResource::AS_XOR_ASSIGN = string("^=");
|
||||
const string ASResource::AS_GR_GR_ASSIGN = string(">>=");
|
||||
const string ASResource::AS_LS_LS_ASSIGN = string("<<=");
|
||||
const string ASResource::AS_GR_GR_GR_ASSIGN = string(">>>=");
|
||||
const string ASResource::AS_LS_LS_LS_ASSIGN = string("<<<=");
|
||||
const string ASResource::AS_GCC_MIN_ASSIGN = string("<?");
|
||||
const string ASResource::AS_GCC_MAX_ASSIGN = string(">?");
|
||||
const std::string ASResource::AS_ASSIGN = std::string("=");
|
||||
const std::string ASResource::AS_PLUS_ASSIGN = std::string("+=");
|
||||
const std::string ASResource::AS_MINUS_ASSIGN = std::string("-=");
|
||||
const std::string ASResource::AS_MULT_ASSIGN = std::string("*=");
|
||||
const std::string ASResource::AS_DIV_ASSIGN = std::string("/=");
|
||||
const std::string ASResource::AS_MOD_ASSIGN = std::string("%=");
|
||||
const std::string ASResource::AS_OR_ASSIGN = std::string("|=");
|
||||
const std::string ASResource::AS_AND_ASSIGN = std::string("&=");
|
||||
const std::string ASResource::AS_XOR_ASSIGN = std::string("^=");
|
||||
const std::string ASResource::AS_GR_GR_ASSIGN = std::string(">>=");
|
||||
const std::string ASResource::AS_LS_LS_ASSIGN = std::string("<<=");
|
||||
const std::string ASResource::AS_GR_GR_GR_ASSIGN = std::string(">>>=");
|
||||
const std::string ASResource::AS_LS_LS_LS_ASSIGN = std::string("<<<=");
|
||||
const std::string ASResource::AS_GCC_MIN_ASSIGN = std::string("<?");
|
||||
const std::string ASResource::AS_GCC_MAX_ASSIGN = std::string(">?");
|
||||
|
||||
const string ASResource::AS_RETURN = string("return");
|
||||
const string ASResource::AS_CIN = string("cin");
|
||||
const string ASResource::AS_COUT = string("cout");
|
||||
const string ASResource::AS_CERR = string("cerr");
|
||||
const std::string ASResource::AS_RETURN = std::string("return");
|
||||
const std::string ASResource::AS_CIN = std::string("cin");
|
||||
const std::string ASResource::AS_COUT = std::string("cout");
|
||||
const std::string ASResource::AS_CERR = std::string("cerr");
|
||||
|
||||
const string ASResource::AS_EQUAL = string("==");
|
||||
const string ASResource::AS_PLUS_PLUS = string("++");
|
||||
const string ASResource::AS_MINUS_MINUS = string("--");
|
||||
const string ASResource::AS_NOT_EQUAL = string("!=");
|
||||
const string ASResource::AS_GR_EQUAL = string(">=");
|
||||
const string ASResource::AS_GR_GR = string(">>");
|
||||
const string ASResource::AS_GR_GR_GR = string(">>>");
|
||||
const string ASResource::AS_LS_EQUAL = string("<=");
|
||||
const string ASResource::AS_LS_LS = string("<<");
|
||||
const string ASResource::AS_LS_LS_LS = string("<<<");
|
||||
const string ASResource::AS_QUESTION_QUESTION = string("??");
|
||||
const string ASResource::AS_LAMBDA = string("=>"); // C# lambda expression arrow
|
||||
const string ASResource::AS_ARROW = string("->");
|
||||
const string ASResource::AS_AND = string("&&");
|
||||
const string ASResource::AS_OR = string("||");
|
||||
const string ASResource::AS_SCOPE_RESOLUTION = string("::");
|
||||
const string ASResource::AS_SPACESHIP = string("<=>");
|
||||
const string ASResource::AS_EQUAL_JS = string("===");
|
||||
const std::string ASResource::AS_EQUAL = std::string("==");
|
||||
const std::string ASResource::AS_PLUS_PLUS = std::string("++");
|
||||
const std::string ASResource::AS_MINUS_MINUS = std::string("--");
|
||||
const std::string ASResource::AS_NOT_EQUAL = std::string("!=");
|
||||
const std::string ASResource::AS_GR_EQUAL = std::string(">=");
|
||||
const std::string ASResource::AS_GR_GR = std::string(">>");
|
||||
const std::string ASResource::AS_GR_GR_GR = std::string(">>>");
|
||||
const std::string ASResource::AS_LS_EQUAL = std::string("<=");
|
||||
const std::string ASResource::AS_LS_LS = std::string("<<");
|
||||
const std::string ASResource::AS_LS_LS_LS = std::string("<<<");
|
||||
const std::string ASResource::AS_QUESTION_QUESTION = std::string("??");
|
||||
const std::string ASResource::AS_LAMBDA = std::string("=>"); // C# lambda expression arrow
|
||||
const std::string ASResource::AS_ARROW = std::string("->");
|
||||
const std::string ASResource::AS_AND = std::string("&&");
|
||||
const std::string ASResource::AS_OR = std::string("||");
|
||||
const std::string ASResource::AS_SCOPE_RESOLUTION = std::string("::");
|
||||
const std::string ASResource::AS_SPACESHIP = std::string("<=>");
|
||||
const std::string ASResource::AS_EQUAL_JS = std::string("===");
|
||||
|
||||
const string ASResource::AS_PLUS = string("+");
|
||||
const string ASResource::AS_MINUS = string("-");
|
||||
const string ASResource::AS_MULT = string("*");
|
||||
const string ASResource::AS_DIV = string("/");
|
||||
const string ASResource::AS_MOD = string("%");
|
||||
const string ASResource::AS_GR = string(">");
|
||||
const string ASResource::AS_LS = string("<");
|
||||
const string ASResource::AS_NOT = string("!");
|
||||
const string ASResource::AS_BIT_OR = string("|");
|
||||
const string ASResource::AS_BIT_AND = string("&");
|
||||
const string ASResource::AS_BIT_NOT = string("~");
|
||||
const string ASResource::AS_BIT_XOR = string("^");
|
||||
const string ASResource::AS_QUESTION = string("?");
|
||||
const string ASResource::AS_COLON = string(":");
|
||||
const string ASResource::AS_COMMA = string(",");
|
||||
const string ASResource::AS_SEMICOLON = string(";");
|
||||
const std::string ASResource::AS_PLUS = std::string("+");
|
||||
const std::string ASResource::AS_MINUS = std::string("-");
|
||||
const std::string ASResource::AS_MULT = std::string("*");
|
||||
const std::string ASResource::AS_DIV = std::string("/");
|
||||
const std::string ASResource::AS_MOD = std::string("%");
|
||||
const std::string ASResource::AS_GR = std::string(">");
|
||||
const std::string ASResource::AS_LS = std::string("<");
|
||||
const std::string ASResource::AS_NOT = std::string("!");
|
||||
const std::string ASResource::AS_BIT_OR = std::string("|");
|
||||
const std::string ASResource::AS_BIT_AND = std::string("&");
|
||||
const std::string ASResource::AS_BIT_NOT = std::string("~");
|
||||
const std::string ASResource::AS_BIT_XOR = std::string("^");
|
||||
const std::string ASResource::AS_QUESTION = std::string("?");
|
||||
const std::string ASResource::AS_COLON = std::string(":");
|
||||
const std::string ASResource::AS_COMMA = std::string(",");
|
||||
const std::string ASResource::AS_SEMICOLON = std::string(";");
|
||||
|
||||
|
||||
/**
|
||||
* Sort comparison function.
|
||||
* Compares the length of the value of pointers in the vectors.
|
||||
* The LONGEST strings will be first in the vector.
|
||||
* The LONGEST std::strings will be first in the vector.
|
||||
*
|
||||
* @param a and b, the string pointers to be compared.
|
||||
* @param a and b, the std::string pointers to be compared.
|
||||
*/
|
||||
bool sortOnLength(const string* a, const string* b)
|
||||
bool sortOnLength(const std::string* a, const std::string* b)
|
||||
{
|
||||
return (*a).length() > (*b).length();
|
||||
}
|
||||
@@ -177,9 +177,9 @@ bool sortOnLength(const string* a, const string* b)
|
||||
* Sort comparison function.
|
||||
* Compares the value of pointers in the vectors.
|
||||
*
|
||||
* @param a and b, the string pointers to be compared.
|
||||
* @param a and b, the std::string pointers to be compared.
|
||||
*/
|
||||
bool sortOnName(const string* a, const string* b)
|
||||
bool sortOnName(const std::string* a, const std::string* b)
|
||||
{
|
||||
return *a < *b;
|
||||
}
|
||||
@@ -190,7 +190,7 @@ bool sortOnName(const string* a, const string* b)
|
||||
*
|
||||
* @param assignmentOperators a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildAssignmentOperators(vector<const string*>* assignmentOperators)
|
||||
void ASResource::buildAssignmentOperators(std::vector<const std::string*>* assignmentOperators)
|
||||
{
|
||||
const size_t elements = 15;
|
||||
assignmentOperators->reserve(elements);
|
||||
@@ -223,7 +223,7 @@ void ASResource::buildAssignmentOperators(vector<const string*>* assignmentOpera
|
||||
*
|
||||
* @param castOperators a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildCastOperators(vector<const string*>* castOperators)
|
||||
void ASResource::buildCastOperators(std::vector<const std::string*>* castOperators)
|
||||
{
|
||||
const size_t elements = 5;
|
||||
castOperators->reserve(elements);
|
||||
@@ -243,7 +243,7 @@ void ASResource::buildCastOperators(vector<const string*>* castOperators)
|
||||
*
|
||||
* @param headers a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildHeaders(vector<const string*>* headers, int fileType, bool beautifier)
|
||||
void ASResource::buildHeaders(std::vector<const std::string*>* headers, int fileType, bool beautifier)
|
||||
{
|
||||
const size_t elements = 25;
|
||||
headers->reserve(elements);
|
||||
@@ -263,7 +263,7 @@ void ASResource::buildHeaders(vector<const string*>* headers, int fileType, bool
|
||||
headers->emplace_back(&AS_FOREACH); // QT & C#
|
||||
headers->emplace_back(&AS_FOREVER); // Qt & Boost
|
||||
|
||||
if (fileType == C_TYPE)
|
||||
if (fileType == C_TYPE || fileType == OBJC_TYPE)
|
||||
{
|
||||
headers->emplace_back(&_AS_TRY); // __try
|
||||
headers->emplace_back(&_AS_FINALLY); // __finally
|
||||
@@ -289,7 +289,7 @@ void ASResource::buildHeaders(vector<const string*>* headers, int fileType, bool
|
||||
|
||||
if (beautifier)
|
||||
{
|
||||
if (fileType == C_TYPE)
|
||||
if (fileType == C_TYPE || fileType == OBJC_TYPE)
|
||||
{
|
||||
headers->emplace_back(&AS_TEMPLATE);
|
||||
}
|
||||
@@ -310,7 +310,7 @@ void ASResource::buildHeaders(vector<const string*>* headers, int fileType, bool
|
||||
*
|
||||
* @param indentableHeaders a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildIndentableHeaders(vector<const string*>* indentableHeaders)
|
||||
void ASResource::buildIndentableHeaders(std::vector<const std::string*>* indentableHeaders)
|
||||
{
|
||||
indentableHeaders->emplace_back(&AS_RETURN);
|
||||
|
||||
@@ -323,13 +323,13 @@ void ASResource::buildIndentableHeaders(vector<const string*>* indentableHeaders
|
||||
*
|
||||
* @param indentableMacros a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildIndentableMacros(vector<const pair<const string, const string>* >* indentableMacros)
|
||||
void ASResource::buildIndentableMacros(std::vector<const std::pair<const std::string, const std::string>* >* indentableMacros)
|
||||
{
|
||||
const size_t elements = 10;
|
||||
indentableMacros->reserve(elements);
|
||||
|
||||
// the pairs must be retained in memory because of pair pointers
|
||||
using macro_pair = pair<const string, const string>;
|
||||
using macro_pair = std::pair<const std::string, const std::string>;
|
||||
static const macro_pair macros[] =
|
||||
{
|
||||
// wxWidgets
|
||||
@@ -354,7 +354,7 @@ void ASResource::buildIndentableMacros(vector<const pair<const string, const str
|
||||
*
|
||||
* @param nonAssignmentOperators a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildNonAssignmentOperators(vector<const string*>* nonAssignmentOperators)
|
||||
void ASResource::buildNonAssignmentOperators(std::vector<const std::string*>* nonAssignmentOperators)
|
||||
{
|
||||
const size_t elements = 15;
|
||||
nonAssignmentOperators->reserve(elements);
|
||||
@@ -383,9 +383,9 @@ void ASResource::buildNonAssignmentOperators(vector<const string*>* nonAssignmen
|
||||
* Used by BOTH ASFormatter.cpp and ASBeautifier.cpp.
|
||||
* NOTE: Non-paren headers should also be included in the headers vector.
|
||||
*
|
||||
* @param nonParenHeaders a reference to the vector to be built.
|
||||
* @param nonParenHeaders a reference to the std::vector to be built.
|
||||
*/
|
||||
void ASResource::buildNonParenHeaders(vector<const string*>* nonParenHeaders, int fileType, bool beautifier)
|
||||
void ASResource::buildNonParenHeaders(std::vector<const std::string*>* nonParenHeaders, int fileType, bool beautifier)
|
||||
{
|
||||
const size_t elements = 20;
|
||||
nonParenHeaders->reserve(elements);
|
||||
@@ -399,7 +399,7 @@ void ASResource::buildNonParenHeaders(vector<const string*>* nonParenHeaders, in
|
||||
nonParenHeaders->emplace_back(&AS_QFOREVER); // QT
|
||||
nonParenHeaders->emplace_back(&AS_FOREVER); // Boost
|
||||
|
||||
if (fileType == C_TYPE)
|
||||
if (fileType == C_TYPE || fileType == OBJC_TYPE)
|
||||
{
|
||||
nonParenHeaders->emplace_back(&_AS_TRY); // __try
|
||||
nonParenHeaders->emplace_back(&_AS_FINALLY); // __finally
|
||||
@@ -440,7 +440,7 @@ void ASResource::buildNonParenHeaders(vector<const string*>* nonParenHeaders, in
|
||||
*
|
||||
* @param operators a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildOperators(vector<const string*>* operators, int fileType)
|
||||
void ASResource::buildOperators(std::vector<const std::string*>* operators, int fileType)
|
||||
{
|
||||
const size_t elements = 50;
|
||||
operators->reserve(elements);
|
||||
@@ -509,13 +509,13 @@ void ASResource::buildOperators(vector<const string*>* operators, int fileType)
|
||||
*
|
||||
* @param preBlockStatements a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildPreBlockStatements(vector<const string*>* preBlockStatements, int fileType)
|
||||
void ASResource::buildPreBlockStatements(std::vector<const std::string*>* preBlockStatements, int fileType)
|
||||
{
|
||||
const size_t elements = 10;
|
||||
preBlockStatements->reserve(elements);
|
||||
|
||||
preBlockStatements->emplace_back(&AS_CLASS);
|
||||
if (fileType == C_TYPE)
|
||||
if (fileType == C_TYPE || fileType == OBJC_TYPE)
|
||||
{
|
||||
preBlockStatements->emplace_back(&AS_STRUCT);
|
||||
preBlockStatements->emplace_back(&AS_UNION);
|
||||
@@ -549,12 +549,12 @@ void ASResource::buildPreBlockStatements(vector<const string*>* preBlockStatemen
|
||||
* the closing paren and the opening brace.
|
||||
* e.g. in "void foo() const {}", "const" is a preCommandHeader.
|
||||
*/
|
||||
void ASResource::buildPreCommandHeaders(vector<const string*>* preCommandHeaders, int fileType)
|
||||
void ASResource::buildPreCommandHeaders(std::vector<const std::string*>* preCommandHeaders, int fileType)
|
||||
{
|
||||
const size_t elements = 10;
|
||||
preCommandHeaders->reserve(elements);
|
||||
|
||||
if (fileType == C_TYPE)
|
||||
if (fileType == C_TYPE || fileType == OBJC_TYPE)
|
||||
{
|
||||
preCommandHeaders->emplace_back(&AS_CONST);
|
||||
preCommandHeaders->emplace_back(&AS_FINAL);
|
||||
@@ -563,6 +563,10 @@ void ASResource::buildPreCommandHeaders(vector<const string*>* preCommandHeaders
|
||||
preCommandHeaders->emplace_back(&AS_OVERRIDE);
|
||||
preCommandHeaders->emplace_back(&AS_VOLATILE);
|
||||
preCommandHeaders->emplace_back(&AS_SEALED); // Visual C only
|
||||
}
|
||||
|
||||
if (fileType == OBJC_TYPE)
|
||||
{
|
||||
preCommandHeaders->emplace_back(&AS_AUTORELEASEPOOL); // Obj-C only
|
||||
}
|
||||
|
||||
@@ -588,13 +592,13 @@ void ASResource::buildPreCommandHeaders(vector<const string*>* preCommandHeaders
|
||||
*
|
||||
* @param preDefinitionHeaders a reference to the vector to be built.
|
||||
*/
|
||||
void ASResource::buildPreDefinitionHeaders(vector<const string*>* preDefinitionHeaders, int fileType)
|
||||
void ASResource::buildPreDefinitionHeaders(std::vector<const std::string*>* preDefinitionHeaders, int fileType)
|
||||
{
|
||||
const size_t elements = 10;
|
||||
preDefinitionHeaders->reserve(elements);
|
||||
|
||||
preDefinitionHeaders->emplace_back(&AS_CLASS);
|
||||
if (fileType == C_TYPE)
|
||||
if (fileType == C_TYPE || fileType == OBJC_TYPE)
|
||||
{
|
||||
preDefinitionHeaders->emplace_back(&AS_STRUCT);
|
||||
preDefinitionHeaders->emplace_back(&AS_UNION);
|
||||
@@ -622,15 +626,15 @@ void ASResource::buildPreDefinitionHeaders(vector<const string*>* preDefinitionH
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// check if a specific line position contains a header.
|
||||
const string* ASBase::findHeader(const string& line, int i,
|
||||
const vector<const string*>* possibleHeaders) const
|
||||
const std::string* ASBase::findHeader(const std::string& line, int i,
|
||||
const std::vector<const std::string*>* possibleHeaders) const
|
||||
{
|
||||
assert(isCharPotentialHeader(line, i));
|
||||
// check the word
|
||||
size_t maxHeaders = possibleHeaders->size();
|
||||
for (size_t p = 0; p < maxHeaders; p++)
|
||||
{
|
||||
const string* header = (*possibleHeaders)[p];
|
||||
const std::string* header = (*possibleHeaders)[p];
|
||||
const size_t wordEnd = i + header->length();
|
||||
if (wordEnd > line.length())
|
||||
continue;
|
||||
@@ -662,8 +666,9 @@ const string* ASBase::findHeader(const string& line, int i,
|
||||
}
|
||||
|
||||
// check if a specific line position contains a keyword.
|
||||
bool ASBase::findKeyword(const string& line, int i, const string& keyword) const
|
||||
bool ASBase::findKeyword(const std::string& line, int i, const std::string& keyword) const
|
||||
{
|
||||
//std::cerr << "findKeyword "<< i << " "<< line << " -< "<< keyword << "\n";
|
||||
assert(isCharPotentialHeader(line, i));
|
||||
// check the word
|
||||
const size_t keywordLength = keyword.length();
|
||||
@@ -673,20 +678,25 @@ bool ASBase::findKeyword(const string& line, int i, const string& keyword) const
|
||||
if (line.compare(i, keywordLength, keyword) != 0)
|
||||
return false;
|
||||
// check that this is not part of a longer word
|
||||
if (wordEnd == line.length())
|
||||
if (wordEnd == line.length()) {
|
||||
//std::cerr << "findKeyword t1 \n";
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isLegalNameChar(line[wordEnd]))
|
||||
return false;
|
||||
// is not a keyword if part of a definition
|
||||
const char peekChar = peekNextChar(line, (int) wordEnd - 1);
|
||||
if (peekChar == ',' || peekChar == ')')
|
||||
return false;
|
||||
|
||||
//std::cerr << "findKeyword t2 \n";
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if a specific line position contains an operator.
|
||||
const string* ASBase::findOperator(const string& line, int i,
|
||||
const vector<const string*>* possibleOperators) const
|
||||
const std::string* ASBase::findOperator(const std::string& line, int i,
|
||||
const std::vector<const std::string*>* possibleOperators) const
|
||||
{
|
||||
assert(isCharPotentialOperator(line[i]));
|
||||
// find the operator in the vector
|
||||
@@ -706,7 +716,7 @@ const string* ASBase::findOperator(const string& line, int i,
|
||||
|
||||
// get the current word on a line
|
||||
// index must point to the beginning of the word
|
||||
string ASBase::getCurrentWord(const string& line, size_t index) const
|
||||
std::string ASBase::getCurrentWord(const std::string& line, size_t index) const
|
||||
{
|
||||
assert(isCharPotentialHeader(line, index));
|
||||
size_t lineLength = line.length();
|
||||
@@ -733,7 +743,7 @@ bool ASBase::isLegalNameChar(char ch) const
|
||||
}
|
||||
|
||||
// check if a specific character can be part of a header
|
||||
bool ASBase::isCharPotentialHeader(const string& line, size_t i) const
|
||||
bool ASBase::isCharPotentialHeader(const std::string& line, size_t i) const
|
||||
{
|
||||
assert(!isWhiteSpace(line[i]));
|
||||
char prevCh = ' ';
|
||||
@@ -769,7 +779,7 @@ bool ASBase::isDigit(char ch) const
|
||||
}
|
||||
|
||||
// check if a specific character is a digit separator
|
||||
bool ASBase::isDigitSeparator(const string& line, int i) const
|
||||
bool ASBase::isDigitSeparator(const std::string& line, int i) const
|
||||
{
|
||||
assert(line[i] == '\'');
|
||||
// casting to (unsigned char) eliminates negative characters
|
||||
@@ -782,11 +792,11 @@ bool ASBase::isDigitSeparator(const string& line, int i) const
|
||||
}
|
||||
|
||||
// peek at the next unread character.
|
||||
char ASBase::peekNextChar(const string& line, int i) const
|
||||
char ASBase::peekNextChar(const std::string& line, int i) const
|
||||
{
|
||||
char ch = ' ';
|
||||
size_t peekNum = line.find_first_not_of(" \t", i + 1);
|
||||
if (peekNum == string::npos)
|
||||
if (peekNum == std::string::npos)
|
||||
return ch;
|
||||
ch = line[peekNum];
|
||||
return ch;
|
||||
|
||||
+218
-201
@@ -57,14 +57,12 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace astyle {
|
||||
//
|
||||
using namespace std;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// definitions
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
enum FileType { C_TYPE = 0, JAVA_TYPE = 1, SHARP_TYPE = 2, JS_TYPE = 3 };
|
||||
enum FileType { C_TYPE = 0, JAVA_TYPE = 1, SHARP_TYPE = 2, JS_TYPE = 3, OBJC_TYPE = 4, INVALID_TYPE = -1 };
|
||||
|
||||
/* The enums below are not recognized by 'vectors' in Microsoft Visual C++
|
||||
V5 when they are part of a namespace!!! Use Visual C++ V6 or higher.
|
||||
@@ -188,13 +186,13 @@ class ASSourceIterator
|
||||
public:
|
||||
ASSourceIterator() = default;
|
||||
virtual ~ASSourceIterator() = default;
|
||||
virtual streamoff getPeekStart() const = 0;
|
||||
virtual std::streamoff getPeekStart() const = 0;
|
||||
virtual int getStreamLength() const = 0;
|
||||
virtual bool hasMoreLines() const = 0;
|
||||
virtual string nextLine(bool emptyLineWasDeleted) = 0;
|
||||
virtual string peekNextLine() = 0;
|
||||
virtual std::string nextLine(bool emptyLineWasDeleted) = 0;
|
||||
virtual std::string peekNextLine() = 0;
|
||||
virtual void peekReset() = 0;
|
||||
virtual streamoff tellg() = 0;
|
||||
virtual std::streamoff tellg() = 0;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -220,7 +218,7 @@ public:
|
||||
bool hasMoreLines() const
|
||||
{ return sourceIterator->hasMoreLines(); }
|
||||
|
||||
string peekNextLine()
|
||||
std::string peekNextLine()
|
||||
{ needReset = true; return sourceIterator->peekNextLine(); }
|
||||
};
|
||||
|
||||
@@ -232,61 +230,61 @@ public:
|
||||
class ASResource
|
||||
{
|
||||
public:
|
||||
void buildAssignmentOperators(vector<const string*>* assignmentOperators);
|
||||
void buildCastOperators(vector<const string*>* castOperators);
|
||||
void buildHeaders(vector<const string*>* headers, int fileType, bool beautifier = false);
|
||||
void buildIndentableMacros(vector<const pair<const string, const string>* >* indentableMacros);
|
||||
void buildIndentableHeaders(vector<const string*>* indentableHeaders);
|
||||
void buildNonAssignmentOperators(vector<const string*>* nonAssignmentOperators);
|
||||
void buildNonParenHeaders(vector<const string*>* nonParenHeaders, int fileType, bool beautifier = false);
|
||||
void buildOperators(vector<const string*>* operators, int fileType);
|
||||
void buildPreBlockStatements(vector<const string*>* preBlockStatements, int fileType);
|
||||
void buildPreCommandHeaders(vector<const string*>* preCommandHeaders, int fileType);
|
||||
void buildPreDefinitionHeaders(vector<const string*>* preDefinitionHeaders, int fileType);
|
||||
void buildAssignmentOperators(std::vector<const std::string*>* assignmentOperators);
|
||||
void buildCastOperators(std::vector<const std::string*>* castOperators);
|
||||
void buildHeaders(std::vector<const std::string*>* headers, int fileType, bool beautifier = false);
|
||||
void buildIndentableMacros(std::vector<const std::pair<const std::string, const std::string>* >* indentableMacros);
|
||||
void buildIndentableHeaders(std::vector<const std::string*>* indentableHeaders);
|
||||
void buildNonAssignmentOperators(std::vector<const std::string*>* nonAssignmentOperators);
|
||||
void buildNonParenHeaders(std::vector<const std::string*>* nonParenHeaders, int fileType, bool beautifier = false);
|
||||
void buildOperators(std::vector<const std::string*>* operators, int fileType);
|
||||
void buildPreBlockStatements(std::vector<const std::string*>* preBlockStatements, int fileType);
|
||||
void buildPreCommandHeaders(std::vector<const std::string*>* preCommandHeaders, int fileType);
|
||||
void buildPreDefinitionHeaders(std::vector<const std::string*>* preDefinitionHeaders, int fileType);
|
||||
|
||||
public:
|
||||
static const string AS_IF, AS_ELSE;
|
||||
static const string AS_DO, AS_WHILE;
|
||||
static const string AS_FOR;
|
||||
static const string AS_SWITCH, AS_CASE, AS_DEFAULT;
|
||||
static const string AS_TRY, AS_CATCH, AS_THROW, AS_THROWS, AS_FINALLY, AS_USING;
|
||||
static const string _AS_TRY, _AS_FINALLY, _AS_EXCEPT;
|
||||
static const string AS_PUBLIC, AS_PROTECTED, AS_PRIVATE;
|
||||
static const string AS_CLASS, AS_STRUCT, AS_TYPEDEF_STRUCT, AS_UNION, AS_INTERFACE, AS_NAMESPACE;
|
||||
static const string AS_MODULE;
|
||||
static const string AS_END;
|
||||
static const string AS_SELECTOR;
|
||||
static const string AS_EXTERN, AS_ENUM;
|
||||
static const string AS_FINAL, AS_OVERRIDE;
|
||||
static const string AS_STATIC, AS_CONST, AS_SEALED, AS_VOLATILE, AS_NEW, AS_DELETE;
|
||||
static const string AS_NOEXCEPT, AS_INTERRUPT, AS_AUTORELEASEPOOL;
|
||||
static const string AS_WHERE, AS_LET, AS_SYNCHRONIZED;
|
||||
static const string AS_OPERATOR, AS_TEMPLATE;
|
||||
static const string AS_OPEN_PAREN, AS_CLOSE_PAREN;
|
||||
static const string AS_OPEN_BRACE, AS_CLOSE_BRACE;
|
||||
static const string AS_OPEN_LINE_COMMENT, AS_OPEN_COMMENT, AS_CLOSE_COMMENT;
|
||||
static const string AS_BAR_DEFINE, AS_BAR_INCLUDE, AS_BAR_IF, AS_BAR_EL, AS_BAR_ENDIF;
|
||||
static const string AS_AUTO, AS_RETURN;
|
||||
static const string AS_CIN, AS_COUT, AS_CERR;
|
||||
static const string AS_ASSIGN, AS_PLUS_ASSIGN, AS_MINUS_ASSIGN, AS_MULT_ASSIGN;
|
||||
static const string AS_DIV_ASSIGN, AS_MOD_ASSIGN, AS_XOR_ASSIGN, AS_OR_ASSIGN, AS_AND_ASSIGN;
|
||||
static const string AS_GR_GR_ASSIGN, AS_LS_LS_ASSIGN, AS_GR_GR_GR_ASSIGN, AS_LS_LS_LS_ASSIGN;
|
||||
static const string AS_GCC_MIN_ASSIGN, AS_GCC_MAX_ASSIGN, AS_SPACESHIP, AS_EQUAL_JS;
|
||||
static const string AS_EQUAL, AS_PLUS_PLUS, AS_MINUS_MINUS, AS_NOT_EQUAL, AS_GR_EQUAL;
|
||||
static const string AS_LS_EQUAL, AS_LS_LS_LS, AS_LS_LS, AS_GR_GR_GR, AS_GR_GR;
|
||||
static const string AS_QUESTION_QUESTION, AS_LAMBDA;
|
||||
static const string AS_ARROW, AS_AND, AS_OR;
|
||||
static const string AS_SCOPE_RESOLUTION;
|
||||
static const string AS_PLUS, AS_MINUS, AS_MULT, AS_DIV, AS_MOD, AS_GR, AS_LS;
|
||||
static const string AS_NOT, AS_BIT_XOR, AS_BIT_OR, AS_BIT_AND, AS_BIT_NOT;
|
||||
static const string AS_QUESTION, AS_COLON, AS_SEMICOLON, AS_COMMA;
|
||||
static const string AS_ASM, AS__ASM__, AS_MS_ASM, AS_MS__ASM;
|
||||
static const string AS_QFOREACH, AS_QFOREVER, AS_FOREVER;
|
||||
static const string AS_FOREACH, AS_LOCK, AS_UNSAFE, AS_FIXED;
|
||||
static const string AS_GET, AS_SET, AS_ADD, AS_REMOVE;
|
||||
static const string AS_DELEGATE, AS_UNCHECKED;
|
||||
static const string AS_CONST_CAST, AS_DYNAMIC_CAST, AS_REINTERPRET_CAST, AS_STATIC_CAST;
|
||||
static const string AS_NS_DURING, AS_NS_HANDLER;
|
||||
static const std::string AS_IF, AS_ELSE;
|
||||
static const std::string AS_DO, AS_WHILE;
|
||||
static const std::string AS_FOR;
|
||||
static const std::string AS_SWITCH, AS_CASE, AS_DEFAULT;
|
||||
static const std::string AS_TRY, AS_CATCH, AS_THROW, AS_THROWS, AS_FINALLY, AS_USING;
|
||||
static const std::string _AS_TRY, _AS_FINALLY, _AS_EXCEPT;
|
||||
static const std::string AS_PUBLIC, AS_PROTECTED, AS_PRIVATE;
|
||||
static const std::string AS_CLASS, AS_STRUCT, AS_TYPEDEF_STRUCT, AS_UNION, AS_INTERFACE, AS_NAMESPACE;
|
||||
static const std::string AS_MODULE;
|
||||
static const std::string AS_END;
|
||||
static const std::string AS_SELECTOR;
|
||||
static const std::string AS_EXTERN, AS_ENUM;
|
||||
static const std::string AS_FINAL, AS_OVERRIDE;
|
||||
static const std::string AS_STATIC, AS_CONST, AS_SEALED, AS_VOLATILE, AS_NEW, AS_DELETE;
|
||||
static const std::string AS_NOEXCEPT, AS_INTERRUPT, AS_AUTORELEASEPOOL;
|
||||
static const std::string AS_WHERE, AS_LET, AS_SYNCHRONIZED;
|
||||
static const std::string AS_OPERATOR, AS_TEMPLATE;
|
||||
static const std::string AS_OPEN_PAREN, AS_CLOSE_PAREN;
|
||||
static const std::string AS_OPEN_BRACE, AS_CLOSE_BRACE;
|
||||
static const std::string AS_OPEN_LINE_COMMENT, AS_OPEN_COMMENT, AS_CLOSE_COMMENT;
|
||||
static const std::string AS_BAR_DEFINE, AS_BAR_INCLUDE, AS_BAR_IF, AS_BAR_EL, AS_BAR_ENDIF;
|
||||
static const std::string AS_AUTO, AS_RETURN;
|
||||
static const std::string AS_CIN, AS_COUT, AS_CERR;
|
||||
static const std::string AS_ASSIGN, AS_PLUS_ASSIGN, AS_MINUS_ASSIGN, AS_MULT_ASSIGN;
|
||||
static const std::string AS_DIV_ASSIGN, AS_MOD_ASSIGN, AS_XOR_ASSIGN, AS_OR_ASSIGN, AS_AND_ASSIGN;
|
||||
static const std::string AS_GR_GR_ASSIGN, AS_LS_LS_ASSIGN, AS_GR_GR_GR_ASSIGN, AS_LS_LS_LS_ASSIGN;
|
||||
static const std::string AS_GCC_MIN_ASSIGN, AS_GCC_MAX_ASSIGN, AS_SPACESHIP, AS_EQUAL_JS;
|
||||
static const std::string AS_EQUAL, AS_PLUS_PLUS, AS_MINUS_MINUS, AS_NOT_EQUAL, AS_GR_EQUAL;
|
||||
static const std::string AS_LS_EQUAL, AS_LS_LS_LS, AS_LS_LS, AS_GR_GR_GR, AS_GR_GR;
|
||||
static const std::string AS_QUESTION_QUESTION, AS_LAMBDA;
|
||||
static const std::string AS_ARROW, AS_AND, AS_OR;
|
||||
static const std::string AS_SCOPE_RESOLUTION;
|
||||
static const std::string AS_PLUS, AS_MINUS, AS_MULT, AS_DIV, AS_MOD, AS_GR, AS_LS;
|
||||
static const std::string AS_NOT, AS_BIT_XOR, AS_BIT_OR, AS_BIT_AND, AS_BIT_NOT;
|
||||
static const std::string AS_QUESTION, AS_COLON, AS_SEMICOLON, AS_COMMA;
|
||||
static const std::string AS_ASM, AS__ASM__, AS_MS_ASM, AS_MS__ASM;
|
||||
static const std::string AS_QFOREACH, AS_QFOREVER, AS_FOREVER;
|
||||
static const std::string AS_FOREACH, AS_LOCK, AS_UNSAFE, AS_FIXED;
|
||||
static const std::string AS_GET, AS_SET, AS_ADD, AS_REMOVE;
|
||||
static const std::string AS_DELEGATE, AS_UNCHECKED;
|
||||
static const std::string AS_CONST_CAST, AS_DYNAMIC_CAST, AS_REINTERPRET_CAST, AS_STATIC_CAST;
|
||||
static const std::string AS_NS_DURING, AS_NS_HANDLER;
|
||||
}; // Class ASResource
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -305,26 +303,27 @@ protected:
|
||||
|
||||
protected: // inline functions
|
||||
void init(int fileTypeArg) { baseFileType = fileTypeArg; }
|
||||
bool isCStyle() const { return (baseFileType == C_TYPE); }
|
||||
bool isJavaStyle() const { return (baseFileType == JAVA_TYPE); }
|
||||
bool isSharpStyle() const { return (baseFileType == SHARP_TYPE); }
|
||||
bool isJSStyle() const { return (baseFileType == JS_TYPE); }
|
||||
bool isCStyle() const { return baseFileType == C_TYPE || baseFileType == OBJC_TYPE; }
|
||||
bool isJavaStyle() const { return baseFileType == JAVA_TYPE; }
|
||||
bool isSharpStyle() const { return baseFileType == SHARP_TYPE; }
|
||||
bool isJSStyle() const { return baseFileType == JS_TYPE; }
|
||||
bool isObjCStyle() const { return baseFileType == OBJC_TYPE; }
|
||||
|
||||
bool isWhiteSpace(char ch) const { return (ch == ' ' || ch == '\t'); }
|
||||
|
||||
protected: // functions definitions are at the end of ASResource.cpp
|
||||
const string* findHeader(const string& line, int i,
|
||||
const vector<const string*>* possibleHeaders) const;
|
||||
bool findKeyword(const string& line, int i, const string& keyword) const;
|
||||
const string* findOperator(const string& line, int i,
|
||||
const vector<const string*>* possibleOperators) const;
|
||||
string getCurrentWord(const string& line, size_t index) const;
|
||||
const std::string* findHeader(const std::string& line, int i,
|
||||
const std::vector<const std::string*>* possibleHeaders) const;
|
||||
bool findKeyword(const std::string& line, int i, const std::string& keyword) const;
|
||||
const std::string* findOperator(const std::string& line, int i,
|
||||
const std::vector<const std::string*>* possibleOperators) const;
|
||||
std::string getCurrentWord(const std::string& line, size_t index) const;
|
||||
bool isDigit(char ch) const;
|
||||
bool isLegalNameChar(char ch) const;
|
||||
bool isCharPotentialHeader(const string& line, size_t i) const;
|
||||
bool isCharPotentialHeader(const std::string& line, size_t i) const;
|
||||
bool isCharPotentialOperator(char ch) const;
|
||||
bool isDigitSeparator(const string& line, int i) const;
|
||||
char peekNextChar(const string& line, int i) const;
|
||||
bool isDigitSeparator(const std::string& line, int i) const;
|
||||
char peekNextChar(const std::string& line, int i) const;
|
||||
|
||||
}; // Class ASBase
|
||||
|
||||
@@ -343,7 +342,7 @@ public:
|
||||
ASBeautifier& operator=(ASBeautifier&&) = delete;
|
||||
virtual void init(ASSourceIterator* iter);
|
||||
|
||||
virtual string beautify(const string& originalLine);
|
||||
virtual std::string beautify(const std::string& originalLine);
|
||||
void setCaseIndent(bool state);
|
||||
void setClassIndent(bool state);
|
||||
void setContinuationIndentation(int indent = 1);
|
||||
@@ -354,6 +353,8 @@ public:
|
||||
void setAfterParenIndent(bool state);
|
||||
void setJavaStyle();
|
||||
void setJSStyle();
|
||||
void setObjCStyle();
|
||||
void setSharpStyle();
|
||||
|
||||
void setLabelIndent(bool state);
|
||||
void setMaxContinuationIndentLength(int max);
|
||||
@@ -364,18 +365,18 @@ public:
|
||||
void setModifierIndent(bool state);
|
||||
void setNamespaceIndent(bool state);
|
||||
void setAlignMethodColon(bool state);
|
||||
void setSharpStyle();
|
||||
void setSpaceIndentation(int length = 4);
|
||||
void setSwitchIndent(bool state);
|
||||
void setTabIndentation(int length = 4, bool forceTabs = false);
|
||||
void setPreprocDefineIndent(bool state);
|
||||
void setPreprocConditionalIndent(bool state);
|
||||
void setSqueezeWhitespace(bool state);
|
||||
int getBeautifierFileType() const;
|
||||
int getFileType() const;
|
||||
int getIndentLength() const;
|
||||
int getTabLength() const;
|
||||
string getIndentString() const;
|
||||
string getNextWord(const string& line, size_t currPos) const;
|
||||
std::string getIndentString() const;
|
||||
std::string getNextWord(const std::string& line, size_t currPos) const;
|
||||
bool getAlignMethodColon() const;
|
||||
bool getBraceIndent() const;
|
||||
bool getBlockIndent() const;
|
||||
@@ -391,14 +392,14 @@ public:
|
||||
|
||||
protected:
|
||||
void deleteBeautifierVectors();
|
||||
int getNextProgramCharDistance(const string& line, int i) const;
|
||||
int indexOf(const vector<const string*>& container, const string* element) const;
|
||||
int getNextProgramCharDistance(const std::string& line, int i) const;
|
||||
int indexOf(const std::vector<const std::string*>& container, const std::string* element) const;
|
||||
void setBlockIndent(bool state);
|
||||
void setBraceIndent(bool state);
|
||||
void setBraceIndentVtk(bool state);
|
||||
string extractPreprocessorStatement(const string& line) const;
|
||||
string trim(const string& str) const;
|
||||
string rtrim(const string& str) const;
|
||||
std::string extractPreprocessorStatement(const std::string& line) const;
|
||||
std::string trim(const std::string& str) const;
|
||||
std::string rtrim(const std::string& str) const;
|
||||
|
||||
// variables set by ASFormatter - must be updated in activeBeautifierStack
|
||||
int inLineNumber;
|
||||
@@ -417,75 +418,76 @@ protected:
|
||||
bool isInIndentablePreproc;
|
||||
|
||||
private: // functions
|
||||
void adjustObjCMethodDefinitionIndentation(const string& line_);
|
||||
void adjustObjCMethodCallIndentation(const string& line_);
|
||||
void adjustObjCMethodDefinitionIndentation(const std::string& line_);
|
||||
void adjustObjCMethodCallIndentation(const std::string& line_);
|
||||
void adjustParsedLineIndentation(size_t iPrelim, bool isInExtraHeaderIndent);
|
||||
void computePreliminaryIndentation();
|
||||
void parseCurrentLine(const string& line);
|
||||
void parseCurrentLine(const std::string& line);
|
||||
void popLastContinuationIndent();
|
||||
void processPreprocessor(const string& preproc, const string& line);
|
||||
void registerContinuationIndent(const string& line, int i, int spaceIndentCount_,
|
||||
void processPreprocessor(const std::string& preproc, const std::string& line);
|
||||
void registerContinuationIndent(const std::string& line, int i, int spaceIndentCount_,
|
||||
int tabIncrementIn, int minIndent, bool updateParenStack);
|
||||
void registerContinuationIndentColon(const string& line, int i, int tabIncrementIn);
|
||||
void registerContinuationIndentColon(const std::string& line, int i, int tabIncrementIn);
|
||||
void initVectors();
|
||||
void initTempStacksContainer(vector<vector<const string*>*>*& container,
|
||||
vector<vector<const string*>*>* value);
|
||||
void initTempStacksContainer(std::vector<std::vector<const std::string*>*>*& container,
|
||||
std::vector<std::vector<const std::string*>*>* value);
|
||||
void clearObjCMethodDefinitionAlignment();
|
||||
void deleteBeautifierContainer(vector<ASBeautifier*>*& container);
|
||||
void deleteTempStacksContainer(vector<vector<const string*>*>*& container);
|
||||
void deleteBeautifierContainer(std::vector<ASBeautifier*>*& container);
|
||||
void deleteTempStacksContainer(std::vector<std::vector<const std::string*>*>*& container);
|
||||
int adjustIndentCountForBreakElseIfComments() const;
|
||||
int computeObjCColonAlignment(const string& line, int colonAlignPosition) const;
|
||||
int computeObjCColonAlignment(const std::string& line, int colonAlignPosition) const;
|
||||
int convertTabToSpaces(int i, int tabIncrementIn) const;
|
||||
int findObjCColonAlignment(const string& line) const;
|
||||
int getContinuationIndentAssign(const string& line, size_t currPos) const;
|
||||
int getContinuationIndentComma(const string& line, size_t currPos) const;
|
||||
int getObjCFollowingKeyword(const string& line, int bracePos) const;
|
||||
bool isIndentedPreprocessor(const string& line, size_t currPos) const;
|
||||
bool isLineEndComment(const string& line, int startPos) const;
|
||||
bool isPreprocessorConditionalCplusplus(const string& line) const;
|
||||
bool isInPreprocessorUnterminatedComment(const string& line);
|
||||
int findObjCColonAlignment(const std::string& line) const;
|
||||
int getContinuationIndentAssign(const std::string& line, size_t currPos) const;
|
||||
int getContinuationIndentComma(const std::string& line, size_t currPos) const;
|
||||
int getObjCFollowingKeyword(const std::string& line, int bracePos) const;
|
||||
bool isIndentedPreprocessor(const std::string& line, size_t currPos) const;
|
||||
bool isLineEndComment(const std::string& line, int startPos) const;
|
||||
bool isPreprocessorConditionalCplusplus(const std::string& line) const;
|
||||
bool isInPreprocessorUnterminatedComment(const std::string& line);
|
||||
bool isTopLevel() const;
|
||||
bool statementEndsWithComma(const string& line, int index) const;
|
||||
const string& getIndentedLineReturn(const string& newLine, const string& originalLine) const;
|
||||
string getIndentedSpaceEquivalent(const string& line_) const;
|
||||
string preLineWS(int lineIndentCount, int lineSpaceIndentCount) const;
|
||||
bool statementEndsWithComma(const std::string& line, int index) const;
|
||||
const std::string& getIndentedLineReturn(const std::string& newLine, const std::string& originalLine) const;
|
||||
std::string getIndentedSpaceEquivalent(const std::string& line_) const;
|
||||
std::string preLineWS(int lineIndentCount, int lineSpaceIndentCount) const;
|
||||
template<typename T> void deleteContainer(T& container);
|
||||
template<typename T> void initContainer(T& container, T value);
|
||||
vector<vector<const string*>*>* copyTempStacks(const ASBeautifier& other) const;
|
||||
pair<int, int> computePreprocessorIndent();
|
||||
std::vector<std::vector<const std::string*>*>* copyTempStacks(const ASBeautifier& other) const;
|
||||
std::pair<int, int> computePreprocessorIndent();
|
||||
|
||||
private: // variables
|
||||
int beautifierFileType;
|
||||
vector<const string*>* headers;
|
||||
vector<const string*>* nonParenHeaders;
|
||||
vector<const string*>* preBlockStatements;
|
||||
vector<const string*>* preCommandHeaders;
|
||||
vector<const string*>* assignmentOperators;
|
||||
vector<const string*>* nonAssignmentOperators;
|
||||
vector<const string*>* indentableHeaders;
|
||||
std::vector<const std::string*>* headers;
|
||||
std::vector<const std::string*>* nonParenHeaders;
|
||||
std::vector<const std::string*>* preBlockStatements;
|
||||
std::vector<const std::string*>* preCommandHeaders;
|
||||
std::vector<const std::string*>* assignmentOperators;
|
||||
std::vector<const std::string*>* nonAssignmentOperators;
|
||||
std::vector<const std::string*>* indentableHeaders;
|
||||
|
||||
vector<ASBeautifier*>* waitingBeautifierStack;
|
||||
vector<ASBeautifier*>* activeBeautifierStack;
|
||||
vector<size_t>* waitingBeautifierStackLengthStack;
|
||||
vector<size_t>* activeBeautifierStackLengthStack;
|
||||
vector<const string*>* headerStack;
|
||||
vector<vector<const string*>* >* tempStacks;
|
||||
vector<int>* parenDepthStack;
|
||||
vector<bool>* blockStatementStack;
|
||||
vector<bool>* parenStatementStack;
|
||||
vector<bool>* braceBlockStateStack;
|
||||
vector<int>* continuationIndentStack;
|
||||
vector<size_t>* continuationIndentStackSizeStack;
|
||||
vector<int>* parenIndentStack;
|
||||
vector<pair<int, int> >* preprocIndentStack;
|
||||
std::vector<ASBeautifier*>* waitingBeautifierStack;
|
||||
std::vector<ASBeautifier*>* activeBeautifierStack;
|
||||
std::vector<size_t>* waitingBeautifierStackLengthStack;
|
||||
std::vector<size_t>* activeBeautifierStackLengthStack;
|
||||
std::vector<const std::string*>* headerStack;
|
||||
std::vector<std::vector<const std::string*>* >* tempStacks;
|
||||
std::vector<int>* parenDepthStack;
|
||||
std::vector<bool>* blockStatementStack;
|
||||
std::vector<bool>* parenStatementStack;
|
||||
std::vector<bool>* braceBlockStateStack;
|
||||
std::vector<int>* continuationIndentStack;
|
||||
std::vector<size_t>* continuationIndentStackSizeStack;
|
||||
std::vector<int>* parenIndentStack;
|
||||
std::vector<std::pair<int, int> >* preprocIndentStack;
|
||||
std::vector<std::pair<size_t, size_t> > squeezeWSStack;
|
||||
|
||||
ASSourceIterator* sourceIterator;
|
||||
const string* currentHeader;
|
||||
const string* previousLastLineHeader;
|
||||
const string* probationHeader;
|
||||
const string* lastLineHeader;
|
||||
string indentString;
|
||||
string verbatimDelimiter;
|
||||
const std::string* currentHeader;
|
||||
const std::string* previousLastLineHeader;
|
||||
const std::string* probationHeader;
|
||||
const std::string* lastLineHeader;
|
||||
std::string indentString;
|
||||
std::string verbatimDelimiter;
|
||||
bool isInQuote;
|
||||
bool isInVerbatimQuote;
|
||||
bool haveLineContinuationChar;
|
||||
@@ -552,6 +554,8 @@ private: // variables
|
||||
bool foundPreCommandMacro;
|
||||
bool shouldAlignMethodColon;
|
||||
bool shouldIndentPreprocConditional;
|
||||
bool lambdaIndicator;
|
||||
bool squeezeWhitespace;
|
||||
int indentCount;
|
||||
int spaceIndentCount;
|
||||
int spaceIndentObjCMethodAlignment;
|
||||
@@ -591,20 +595,20 @@ class ASEnhancer : protected ASBase
|
||||
public: // functions
|
||||
ASEnhancer() = default;
|
||||
void init(int, int, int, bool, bool, bool, bool, bool, bool, bool,
|
||||
vector<const pair<const string, const string>* >*);
|
||||
void enhance(string& line, bool isInNamespace, bool isInPreprocessor, bool isInSQL);
|
||||
std::vector<const std::pair<const std::string, const std::string>* >*);
|
||||
void enhance(std::string& line, bool isInNamespace, bool isInPreprocessor, bool isInSQL);
|
||||
|
||||
private: // functions
|
||||
void convertForceTabIndentToSpaces(string& line) const;
|
||||
void convertSpaceIndentToForceTab(string& line) const;
|
||||
size_t findCaseColon(const string& line, size_t caseIndex) const;
|
||||
int indentLine(string& line, int indent) const;
|
||||
bool isBeginDeclareSectionSQL(const string& line, size_t index) const;
|
||||
bool isEndDeclareSectionSQL(const string& line, size_t index) const;
|
||||
bool isOneLineBlockReached(const string& line, int startChar) const;
|
||||
void parseCurrentLine(string& line, bool isInPreprocessor, bool isInSQL);
|
||||
size_t processSwitchBlock(string& line, size_t index);
|
||||
int unindentLine(string& line, int unindent) const;
|
||||
void convertForceTabIndentToSpaces(std::string& line) const;
|
||||
void convertSpaceIndentToForceTab(std::string& line) const;
|
||||
size_t findCaseColon(const std::string& line, size_t caseIndex) const;
|
||||
int indentLine(std::string& line, int indent) const;
|
||||
bool isBeginDeclareSectionSQL(const std::string& line, size_t index) const;
|
||||
bool isEndDeclareSectionSQL(const std::string& line, size_t index) const;
|
||||
bool isOneLineBlockReached(const std::string& line, int startChar) const;
|
||||
void parseCurrentLine(std::string& line, bool isInPreprocessor, bool isInSQL);
|
||||
size_t processSwitchBlock(std::string& line, size_t index);
|
||||
int unindentLine(std::string& line, int unindent) const;
|
||||
|
||||
private:
|
||||
// options from command line or options file
|
||||
@@ -643,12 +647,12 @@ private:
|
||||
};
|
||||
|
||||
SwitchVariables sw; // switch variables struct
|
||||
vector<SwitchVariables> switchStack; // stack vector of switch variables
|
||||
std::vector<SwitchVariables> switchStack; // stack std::vector of switch variables
|
||||
|
||||
// event table variables
|
||||
bool nextLineIsEventIndent; // begin event table indent is reached
|
||||
bool isInEventTable; // need to indent an event table
|
||||
vector<const pair<const string, const string>* >* indentableMacros;
|
||||
std::vector<const std::pair<const std::string, const std::string>* >* indentableMacros;
|
||||
|
||||
// SQL variables
|
||||
bool nextLineIsDeclareIndent; // begin declare section indent is reached
|
||||
@@ -672,7 +676,7 @@ public: // functions
|
||||
void init(ASSourceIterator* si) override;
|
||||
|
||||
bool hasMoreLines() const;
|
||||
string nextLine();
|
||||
std::string nextLine();
|
||||
LineEndFormat getLineEndFormat() const;
|
||||
bool getIsLineReady() const;
|
||||
void setFormattingStyle(FormatStyle style);
|
||||
@@ -716,6 +720,11 @@ public: // functions
|
||||
void setParensInsidePaddingMode(bool state);
|
||||
void setParensHeaderPaddingMode(bool state);
|
||||
void setParensUnPaddingMode(bool state);
|
||||
|
||||
void setBracketsOutsidePaddingMode(bool state);
|
||||
void setBracketsInsidePaddingMode(bool state);
|
||||
void setBracketsUnPaddingMode(bool state);
|
||||
|
||||
void setPointerAlignment(PointerAlign alignment);
|
||||
void setPreprocBlockIndent(bool state);
|
||||
void setReferenceAlignment(ReferenceAlign alignment);
|
||||
@@ -732,7 +741,7 @@ public: // functions
|
||||
void setAddOneLineBracketsMode(bool state);
|
||||
void setRemoveBracketsMode(bool state);
|
||||
void setBreakClosingHeaderBracketsMode(bool state);
|
||||
|
||||
void setSqueezeEmptyLinesNumber(int);
|
||||
|
||||
private: // functions
|
||||
template<typename T> void deleteContainer(T& container);
|
||||
@@ -740,8 +749,8 @@ private: // functions
|
||||
char peekNextChar() const;
|
||||
BraceType getBraceType();
|
||||
bool adjustChecksumIn(int adjustment);
|
||||
bool computeChecksumIn(const string& currentLine_);
|
||||
bool computeChecksumOut(const string& beautifiedLine);
|
||||
bool computeChecksumIn(const std::string& currentLine_);
|
||||
bool computeChecksumOut(const std::string& beautifiedLine);
|
||||
bool addBracesToStatement();
|
||||
bool removeBracesFromStatement();
|
||||
bool commentAndHeaderFollows();
|
||||
@@ -754,25 +763,25 @@ private: // functions
|
||||
bool isBeforeMultipleLineEndComments(int startPos) const;
|
||||
bool isBraceType(BraceType a, BraceType b) const;
|
||||
bool isClassInitializer() const;
|
||||
bool isClosingHeader(const string* header) const;
|
||||
bool isClosingHeader(const std::string* header) const;
|
||||
bool isCurrentBraceBroken() const;
|
||||
bool isDereferenceOrAddressOf() const;
|
||||
bool isExecSQL(const string& line, size_t index) const;
|
||||
bool isEmptyLine(const string& line) const;
|
||||
bool isExecSQL(const std::string& line, size_t index) const;
|
||||
bool isEmptyLine(const std::string& line) const;
|
||||
bool isExternC() const;
|
||||
bool isMultiStatementLine() const;
|
||||
bool isNextWordSharpNonParenHeader(int startChar) const;
|
||||
bool isNonInStatementArrayBrace() const;
|
||||
bool isNumericVariable(const string& word) const;
|
||||
bool isNumericVariable(const std::string& word) const;
|
||||
bool isOkToSplitFormattedLine();
|
||||
bool isPointerOrReference() const;
|
||||
bool isPointerOrReferenceCentered() const;
|
||||
bool isPointerOrReferenceVariable(const string& word) const;
|
||||
bool isPointerToPointer(const string& line, int currPos) const;
|
||||
bool isSharpStyleWithParen(const string* header) const;
|
||||
bool isStructAccessModified(const string& firstLine, size_t index) const;
|
||||
bool isIndentablePreprocessorBlock(const string& firstLine, size_t index);
|
||||
bool isNDefPreprocStatement(const string& nextLine_, const string& preproc) const;
|
||||
bool isPointerOrReferenceVariable(const std::string& word) const;
|
||||
bool isPointerToPointer(const std::string& line, int currPos) const;
|
||||
bool isSharpStyleWithParen(const std::string* header) const;
|
||||
bool isStructAccessModified(const std::string& firstLine, size_t index) const;
|
||||
bool isIndentablePreprocessorBlock(const std::string& firstLine, size_t index);
|
||||
bool isNDefPreprocStatement(const std::string& nextLine_, const std::string& preproc) const;
|
||||
bool isUnaryOperator() const;
|
||||
bool isUniformInitializerBrace() const;
|
||||
bool isImmediatelyPostCast() const;
|
||||
@@ -785,24 +794,24 @@ private: // functions
|
||||
int findObjCColonAlignment() const;
|
||||
int getCurrentLineCommentAdjustment();
|
||||
int getNextLineCommentAdjustment();
|
||||
int isOneLineBlockReached(const string& line, int startChar) const;
|
||||
int isOneLineBlockReached(const std::string& line, int startChar) const;
|
||||
void adjustComments();
|
||||
void appendChar(char ch, bool canBreakLine);
|
||||
void appendCharInsideComments();
|
||||
void appendClosingHeader();
|
||||
void appendOperator(const string& sequence, bool canBreakLine = true);
|
||||
void appendSequence(const string& sequence, bool canBreakLine = true);
|
||||
void appendOperator(const std::string& sequence, bool canBreakLine = true);
|
||||
void appendSequence(const std::string& sequence, bool canBreakLine = true);
|
||||
void appendSpacePad();
|
||||
void appendSpaceAfter();
|
||||
void breakLine(bool isSplitLine = false);
|
||||
void buildLanguageVectors();
|
||||
void updateFormattedLineSplitPoints(char appendedChar);
|
||||
void updateFormattedLineSplitPointsOperator(const string& sequence);
|
||||
void updateFormattedLineSplitPointsOperator(const std::string& sequence);
|
||||
void checkIfTemplateOpener();
|
||||
void clearFormattedLineSplitPoints();
|
||||
void convertTabToSpaces();
|
||||
void deleteContainer(vector<BraceType>*& container);
|
||||
void findReturnTypeSplitPoint(const string& firstLine);
|
||||
void deleteContainer(std::vector<BraceType>*& container);
|
||||
void findReturnTypeSplitPoint(const std::string& firstLine);
|
||||
void formatArrayRunIn();
|
||||
void formatRunIn();
|
||||
void formatArrayBraces(BraceType braceType, bool isOpeningArrayBrace);
|
||||
@@ -823,14 +832,14 @@ private: // functions
|
||||
void fixOptionVariableConflicts();
|
||||
void goForward(int i);
|
||||
void isLineBreakBeforeClosingHeader();
|
||||
void initContainer(vector<BraceType>*& container, vector<BraceType>* value);
|
||||
void initContainer(std::vector<BraceType>*& container, std::vector<BraceType>* value);
|
||||
void initNewLine();
|
||||
void padObjCMethodColon();
|
||||
void padObjCMethodPrefix();
|
||||
void padObjCParamType();
|
||||
void padObjCReturnType();
|
||||
void padOperators(const string* newOperator);
|
||||
void padParens();
|
||||
void padOperators(const std::string* newOperator);
|
||||
void padParensOrBrackets(char openDelim, char closeDelim, bool shouldPadParensOutside, bool shouldPadParensInside, bool shouldUnPadParens, bool shouldPadFirstParen);
|
||||
void processPreprocessor();
|
||||
void resetEndOfStatement();
|
||||
void setAttachClosingBraceMode(bool state);
|
||||
@@ -839,45 +848,45 @@ private: // functions
|
||||
void trimContinuationLine();
|
||||
void updateFormattedLineSplitPointsPointerOrReference(size_t index);
|
||||
size_t findFormattedLineSplitPoint() const;
|
||||
size_t findNextChar(const string& line, char searchChar, int searchStart = 0) const;
|
||||
const string* checkForHeaderFollowingComment(const string& firstLine) const;
|
||||
const string* getFollowingOperator() const;
|
||||
string getPreviousWord(const string& line, int currPos) const;
|
||||
string peekNextText(const string& firstLine,
|
||||
size_t findNextChar(const std::string& line, char searchChar, int searchStart = 0) const;
|
||||
const std::string* checkForHeaderFollowingComment(const std::string& firstLine) const;
|
||||
const std::string* getFollowingOperator() const;
|
||||
std::string getPreviousWord(const std::string& line, int currPos) const;
|
||||
std::string peekNextText(const std::string& firstLine,
|
||||
bool endOnEmptyLine = false,
|
||||
const shared_ptr<ASPeekStream>& streamArg = nullptr) const;
|
||||
const std::shared_ptr<ASPeekStream>& streamArg = nullptr) const;
|
||||
|
||||
private: // variables
|
||||
int formatterFileType;
|
||||
vector<const string*>* headers;
|
||||
vector<const string*>* nonParenHeaders;
|
||||
vector<const string*>* preDefinitionHeaders;
|
||||
vector<const string*>* preCommandHeaders;
|
||||
vector<const string*>* operators;
|
||||
vector<const string*>* assignmentOperators;
|
||||
vector<const string*>* castOperators;
|
||||
vector<const pair<const string, const string>* >* indentableMacros; // for ASEnhancer
|
||||
std::vector<const std::string*>* headers;
|
||||
std::vector<const std::string*>* nonParenHeaders;
|
||||
std::vector<const std::string*>* preDefinitionHeaders;
|
||||
std::vector<const std::string*>* preCommandHeaders;
|
||||
std::vector<const std::string*>* operators;
|
||||
std::vector<const std::string*>* assignmentOperators;
|
||||
std::vector<const std::string*>* castOperators;
|
||||
std::vector<const std::pair<const std::string, const std::string>* >* indentableMacros; // for ASEnhancer
|
||||
|
||||
ASSourceIterator* sourceIterator;
|
||||
ASEnhancer* enhancer;
|
||||
|
||||
vector<const string*>* preBraceHeaderStack;
|
||||
vector<BraceType>* braceTypeStack;
|
||||
vector<int>* parenStack;
|
||||
vector<bool>* structStack;
|
||||
vector<bool>* questionMarkStack;
|
||||
std::vector<const std::string*>* preBraceHeaderStack;
|
||||
std::vector<BraceType>* braceTypeStack;
|
||||
std::vector<int>* parenStack;
|
||||
std::vector<bool>* structStack;
|
||||
std::vector<bool>* questionMarkStack;
|
||||
|
||||
string currentLine;
|
||||
string formattedLine;
|
||||
string readyFormattedLine;
|
||||
string verbatimDelimiter;
|
||||
const string* currentHeader;
|
||||
std::string currentLine;
|
||||
std::string formattedLine;
|
||||
std::string readyFormattedLine;
|
||||
std::string verbatimDelimiter;
|
||||
const std::string* currentHeader;
|
||||
char currentChar;
|
||||
char previousChar;
|
||||
char previousNonWSChar;
|
||||
char previousCommandChar;
|
||||
char quoteChar;
|
||||
streamoff preprocBlockEnd;
|
||||
std::streamoff preprocBlockEnd;
|
||||
int charNum;
|
||||
int runInIndentChars;
|
||||
int nextLineSpacePadNum;
|
||||
@@ -887,6 +896,10 @@ private: // variables
|
||||
int tabIncrementIn;
|
||||
int templateDepth;
|
||||
int squareBracketCount;
|
||||
int parenthesesCount;
|
||||
int squeezeEmptyLineNum;
|
||||
int squeezeEmptyLineCount;
|
||||
|
||||
size_t checksumIn;
|
||||
size_t checksumOut;
|
||||
size_t currentLineFirstBraceNum; // first brace location on currentLine
|
||||
@@ -955,6 +968,7 @@ private: // variables
|
||||
bool isInClassInitializer;
|
||||
bool isInQuote;
|
||||
bool isInVerbatimQuote;
|
||||
bool checkInterpolation;
|
||||
bool haveLineContinuationChar;
|
||||
bool isInQuoteContinuation;
|
||||
bool isHeaderInMultiStatementLine;
|
||||
@@ -1031,6 +1045,9 @@ private: // variables
|
||||
bool shouldBreakReturnTypeDecl;
|
||||
bool shouldAttachReturnType;
|
||||
bool shouldAttachReturnTypeDecl;
|
||||
bool shouldPadBracketsOutside;
|
||||
bool shouldPadBracketsInside;
|
||||
bool shouldUnPadBrackets;
|
||||
bool needHeaderOpeningBrace;
|
||||
bool shouldBreakLineAtNextChar;
|
||||
bool shouldKeepLineUnbroken;
|
||||
@@ -1075,11 +1092,11 @@ private: // inline functions
|
||||
{ return currentLine.compare(charNum, strlen(sequence), sequence) == 0; }
|
||||
|
||||
// call ASBase::findHeader for the current character
|
||||
const string* findHeader(const vector<const string*>* headers_)
|
||||
const std::string* findHeader(const std::vector<const std::string*>* headers_)
|
||||
{ return ASBase::findHeader(currentLine, charNum, headers_); }
|
||||
|
||||
// call ASBase::findOperator for the current character
|
||||
const string* findOperator(const vector<const string*>* operators_)
|
||||
const std::string* findOperator(const std::vector<const std::string*>* operators_)
|
||||
{ return ASBase::findOperator(currentLine, charNum, operators_); }
|
||||
}; // Class ASFormatter
|
||||
|
||||
@@ -1087,8 +1104,8 @@ private: // inline functions
|
||||
// astyle namespace global declarations
|
||||
//-----------------------------------------------------------------------------
|
||||
// sort comparison functions for ASResource
|
||||
bool sortOnLength(const string* a, const string* b);
|
||||
bool sortOnName(const string* a, const string* b);
|
||||
bool sortOnLength(const std::string* a, const std::string* b);
|
||||
bool sortOnName(const std::string* a, const std::string* b);
|
||||
|
||||
} // namespace astyle
|
||||
|
||||
|
||||
+876
-756
File diff suppressed because it is too large
Load Diff
+90
-90
@@ -110,29 +110,29 @@ public: // function declarations
|
||||
~ASStreamIterator() override;
|
||||
bool getLineEndChange(int lineEndFormat) const;
|
||||
int getStreamLength() const override;
|
||||
string nextLine(bool emptyLineWasDeleted) override;
|
||||
string peekNextLine() override;
|
||||
std::string nextLine(bool emptyLineWasDeleted) override;
|
||||
std::string peekNextLine() override;
|
||||
void peekReset() override;
|
||||
void saveLastInputLine();
|
||||
streamoff tellg() override;
|
||||
std::streamoff tellg() override;
|
||||
|
||||
private:
|
||||
T* inStream; // pointer to the input stream
|
||||
string buffer; // current input line
|
||||
string prevBuffer; // previous input line
|
||||
string outputEOL; // next output end of line char
|
||||
std::string buffer; // current input line
|
||||
std::string prevBuffer; // previous input line
|
||||
std::string outputEOL; // next output end of line char
|
||||
int eolWindows; // number of Windows line endings, CRLF
|
||||
int eolLinux; // number of Linux line endings, LF
|
||||
int eolMacOld; // number of old Mac line endings. CR
|
||||
streamoff streamLength; // length of the input file stream
|
||||
streamoff peekStart; // starting position for peekNextLine
|
||||
std::streamoff streamLength; // length of the input file stream
|
||||
std::streamoff peekStart; // starting position for peekNextLine
|
||||
bool prevLineDeleted; // the previous input line was deleted
|
||||
|
||||
public: // inline functions
|
||||
bool compareToInputBuffer(const string& nextLine_) const
|
||||
bool compareToInputBuffer(const std::string& nextLine_) const
|
||||
{ return (nextLine_ == prevBuffer); }
|
||||
const string& getOutputEOL() const { return outputEOL; }
|
||||
streamoff getPeekStart() const override { return peekStart; }
|
||||
const std::string& getOutputEOL() const { return outputEOL; }
|
||||
std::streamoff getPeekStart() const override { return peekStart; }
|
||||
bool hasMoreLines() const override { return !inStream->eof(); }
|
||||
};
|
||||
|
||||
@@ -179,28 +179,28 @@ public:
|
||||
#else
|
||||
ASOptions(ASFormatter& formatterArg, ASConsole& consoleArg);
|
||||
#endif
|
||||
string getOptionErrors() const;
|
||||
void importOptions(stringstream& in, vector<string>& optionsVector);
|
||||
bool parseOptions(vector<string>& optionsVector, const string& errorInfo);
|
||||
std::string getOptionErrors() const;
|
||||
void importOptions(std::stringstream& in, std::vector<std::string>& optionsVector);
|
||||
bool parseOptions(std::vector<std::string>& optionsVector, const std::string& errorInfo);
|
||||
|
||||
private:
|
||||
// variables
|
||||
ASFormatter& formatter;
|
||||
stringstream optionErrors; // option error messages
|
||||
std::stringstream optionErrors; // option error messages
|
||||
#ifndef ASTYLE_LIB
|
||||
ASConsole& console; // DO NOT USE for ASTYLE_LIB
|
||||
#endif
|
||||
|
||||
// functions
|
||||
string getParam(const string& arg, const char* op);
|
||||
string getParam(const string& arg, const char* op1, const char* op2);
|
||||
bool isOption(const string& arg, const char* op);
|
||||
bool isOption(const string& arg, const char* op1, const char* op2);
|
||||
void isOptionError(const string& arg, const string& errorInfo);
|
||||
bool isParamOption(const string& arg, const char* option);
|
||||
bool isParamOption(const string& arg, const char* option1, const char* option2);
|
||||
void parseOption(const string& arg, const string& errorInfo);
|
||||
bool parseOptionContinued(const string& arg, const string& errorInfo);
|
||||
std::string getParam(const std::string& arg, const char* op);
|
||||
std::string getParam(const std::string& arg, const char* op1, const char* op2);
|
||||
bool isOption(const std::string& arg, const char* op);
|
||||
bool isOption(const std::string& arg, const char* op1, const char* op2);
|
||||
void isOptionError(const std::string& arg, const std::string& errorInfo);
|
||||
bool isParamOption(const std::string& arg, const char* option);
|
||||
bool isParamOption(const std::string& arg, const char* option1, const char* option2);
|
||||
void parseOption(const std::string& arg, const std::string& errorInfo);
|
||||
bool parseOptionContinued(const std::string& arg, const std::string& errorInfo);
|
||||
};
|
||||
|
||||
#ifndef ASTYLE_LIB
|
||||
@@ -215,7 +215,7 @@ private: // variables
|
||||
ASFormatter& formatter; // reference to the ASFormatter object
|
||||
ASEncoding encode; // file encoding conversion
|
||||
ASLocalizer localizer; // language translation
|
||||
ostream* errorStream; // direct error messages to cerr or cout
|
||||
std::ostream* errorStream; // direct error messages to cerr or std::cout
|
||||
// command line options
|
||||
bool isRecursive; // recursive option
|
||||
bool isDryRun; // dry-run option
|
||||
@@ -237,38 +237,38 @@ private: // variables
|
||||
bool lineEndsMixed; // output has mixed line ends
|
||||
int linesOut; // number of output lines
|
||||
|
||||
string outputEOL; // current line end
|
||||
string prevEOL; // previous line end
|
||||
string astyleExePath; // absolute executable path and name from argv[0]
|
||||
string optionFileName; // file path and name of the options file
|
||||
string origSuffix; // suffix= option
|
||||
string projectOptionFileName; // file path and name of the project options file
|
||||
string stdPathIn; // path to input from stdin=
|
||||
string stdPathOut; // path to output from stdout=
|
||||
string targetDirectory; // path to the directory being processed
|
||||
string targetFilename; // file name being processed
|
||||
std::string outputEOL; // current line end
|
||||
std::string prevEOL; // previous line end
|
||||
std::string astyleExePath; // absolute executable path and name from argv[0]
|
||||
std::string optionFileName; // file path and name of the options file
|
||||
std::string origSuffix; // suffix= option
|
||||
std::string projectOptionFileName; // file path and name of the project options file
|
||||
std::string stdPathIn; // path to input from stdin=
|
||||
std::string stdPathOut; // path to output from stdout=
|
||||
std::string targetDirectory; // path to the directory being processed
|
||||
std::string targetFilename; // file name being processed
|
||||
|
||||
vector<string> excludeVector; // exclude from wildcard hits
|
||||
vector<bool> excludeHitsVector; // exclude flags for error reporting
|
||||
vector<string> fileNameVector; // file paths and names from the command line
|
||||
vector<string> optionsVector; // options from the command line
|
||||
vector<string> projectOptionsVector;// project options from the project options file
|
||||
vector<string> fileOptionsVector; // options from the options file
|
||||
vector<string> fileName; // files to be processed including path
|
||||
std::vector<std::string> excludeVector; // exclude from wildcard hits
|
||||
std::vector<bool> excludeHitsVector; // exclude flags for error reporting
|
||||
std::vector<std::string> fileNameVector; // file paths and names from the command line
|
||||
std::vector<std::string> optionsVector; // options from the command line
|
||||
std::vector<std::string> projectOptionsVector;// project options from the project options file
|
||||
std::vector<std::string> fileOptionsVector; // options from the options file
|
||||
std::vector<std::string> fileName; // files to be processed including path
|
||||
|
||||
public: // functions
|
||||
explicit ASConsole(ASFormatter& formatterArg);
|
||||
ASConsole(const ASConsole&) = delete;
|
||||
ASConsole& operator=(ASConsole const&) = delete;
|
||||
void convertLineEnds(ostringstream& out, int lineEnd);
|
||||
void convertLineEnds(std::ostringstream& out, int lineEnd);
|
||||
FileEncoding detectEncoding(const char* data, size_t dataSize) const;
|
||||
void error() const;
|
||||
void error(const char* why, const char* what) const;
|
||||
void formatCinToCout();
|
||||
vector<string> getArgvOptions(int argc, char** argv);
|
||||
std::vector<std::string> getArgvOptions(int argc, char** argv);
|
||||
bool fileExists(const char* file) const;
|
||||
bool fileNameVectorIsEmpty() const;
|
||||
ostream* getErrorStream() const;
|
||||
std::ostream* getErrorStream() const;
|
||||
bool getFilesAreIdentical() const;
|
||||
int getFilesFormatted() const;
|
||||
bool getIgnoreExcludeErrors() const;
|
||||
@@ -281,19 +281,19 @@ public: // functions
|
||||
bool getLineEndsMixed() const;
|
||||
bool getNoBackup() const;
|
||||
bool getPreserveDate() const;
|
||||
string getLanguageID() const;
|
||||
string getNumberFormat(int num, size_t lcid = 0) const;
|
||||
string getNumberFormat(int num, const char* groupingArg, const char* separator) const;
|
||||
string getOptionFileName() const;
|
||||
string getOrigSuffix() const;
|
||||
string getProjectOptionFileName() const;
|
||||
string getStdPathIn() const;
|
||||
string getStdPathOut() const;
|
||||
void getTargetFilenames(string& targetFilename_, vector<string>& targetFilenameVector) const;
|
||||
std::string getLanguageID() const;
|
||||
std::string getNumberFormat(int num, size_t lcid = 0) const;
|
||||
std::string getNumberFormat(int num, const char* groupingArg, const char* separator) const;
|
||||
std::string getOptionFileName() const;
|
||||
std::string getOrigSuffix() const;
|
||||
std::string getProjectOptionFileName() const;
|
||||
std::string getStdPathIn() const;
|
||||
std::string getStdPathOut() const;
|
||||
void getTargetFilenames(std::string& targetFilename_, std::vector<std::string>& targetFilenameVector) const;
|
||||
void processFiles();
|
||||
void processOptions(const vector<string>& argvOptions);
|
||||
void processOptions(const std::vector<std::string>& argvOptions);
|
||||
void setBypassBrowserOpen(bool state);
|
||||
void setErrorStream(ostream* errStreamPtr);
|
||||
void setErrorStream(std::ostream* errStreamPtr);
|
||||
void setIgnoreExcludeErrors(bool state);
|
||||
void setIgnoreExcludeErrorsAndDisplay(bool state);
|
||||
void setIsDryRun(bool state);
|
||||
@@ -302,54 +302,54 @@ public: // functions
|
||||
void setIsRecursive(bool state);
|
||||
void setIsVerbose(bool state);
|
||||
void setNoBackup(bool state);
|
||||
void setOptionFileName(const string& name);
|
||||
void setOrigSuffix(const string& suffix);
|
||||
void setOptionFileName(const std::string& name);
|
||||
void setOrigSuffix(const std::string& suffix);
|
||||
void setPreserveDate(bool state);
|
||||
void setProjectOptionFileName(const string& optfilepath);
|
||||
void setStdPathIn(const string& path);
|
||||
void setStdPathOut(const string& path);
|
||||
void standardizePath(string& path, bool removeBeginningSeparator = false) const;
|
||||
bool stringEndsWith(const string& str, const string& suffix) const;
|
||||
void updateExcludeVector(const string& suffixParam);
|
||||
vector<string> getExcludeVector() const;
|
||||
vector<bool> getExcludeHitsVector() const;
|
||||
vector<string> getFileNameVector() const;
|
||||
vector<string> getOptionsVector() const;
|
||||
vector<string> getProjectOptionsVector() const;
|
||||
vector<string> getFileOptionsVector() const;
|
||||
vector<string> getFileName() const;
|
||||
void setProjectOptionFileName(const std::string& optfilepath);
|
||||
void setStdPathIn(const std::string& path);
|
||||
void setStdPathOut(const std::string& path);
|
||||
void standardizePath(std::string& path, bool removeBeginningSeparator = false) const;
|
||||
bool stringEndsWith(const std::string& str, const std::string& suffix) const;
|
||||
void updateExcludeVector(const std::string& suffixParam);
|
||||
std::vector<std::string> getExcludeVector() const;
|
||||
std::vector<bool> getExcludeHitsVector() const;
|
||||
std::vector<std::string> getFileNameVector() const;
|
||||
std::vector<std::string> getOptionsVector() const;
|
||||
std::vector<std::string> getProjectOptionsVector() const;
|
||||
std::vector<std::string> getFileOptionsVector() const;
|
||||
std::vector<std::string> getFileName() const;
|
||||
|
||||
private: // functions
|
||||
void correctMixedLineEnds(ostringstream& out);
|
||||
void formatFile(const string& fileName_);
|
||||
string getParentDirectory(const string& absPath) const;
|
||||
string findProjectOptionFilePath(const string& fileName_) const;
|
||||
string getCurrentDirectory(const string& fileName_) const;
|
||||
void getFileNames(const string& directory, const vector<string>& wildcards);
|
||||
void getFilePaths(const string& filePath);
|
||||
string getFullPathName(const string& relativePath) const;
|
||||
string getHtmlInstallPrefix() const;
|
||||
string getParam(const string& arg, const char* op);
|
||||
bool isHomeOrInvalidAbsPath(const string& absPath) const;
|
||||
void correctMixedLineEnds(std::ostringstream& out);
|
||||
void formatFile(const std::string& fileName_);
|
||||
std::string getParentDirectory(const std::string& absPath) const;
|
||||
std::string findProjectOptionFilePath(const std::string& fileName_) const;
|
||||
std::string getCurrentDirectory(const std::string& fileName_) const;
|
||||
void getFileNames(const std::string& directory, const std::vector<std::string>& wildcards);
|
||||
void getFilePaths(const std::string& filePath);
|
||||
std::string getFullPathName(const std::string& relativePath) const;
|
||||
std::string getHtmlInstallPrefix() const;
|
||||
std::string getParam(const std::string& arg, const char* op);
|
||||
bool isHomeOrInvalidAbsPath(const std::string& absPath) const;
|
||||
void initializeOutputEOL(LineEndFormat lineEndFormat);
|
||||
bool isOption(const string& arg, const char* op);
|
||||
bool isOption(const string& arg, const char* a, const char* b);
|
||||
bool isParamOption(const string& arg, const char* option);
|
||||
bool isPathExclued(const string& subPath);
|
||||
bool isOption(const std::string& arg, const char* op);
|
||||
bool isOption(const std::string& arg, const char* a, const char* b);
|
||||
bool isParamOption(const std::string& arg, const char* option);
|
||||
bool isPathExclued(const std::string& subPath);
|
||||
void launchDefaultBrowser(const char* filePathIn = nullptr) const;
|
||||
void printHelp() const;
|
||||
void printMsg(const char* msg, const string& data) const;
|
||||
void printMsg(const char* msg, const std::string& data) const;
|
||||
void printSeparatingLine() const;
|
||||
void printVerboseHeader() const;
|
||||
void printVerboseStats(clock_t startTime) const;
|
||||
FileEncoding readFile(const string& fileName_, stringstream& in) const;
|
||||
FileEncoding readFile(const std::string& fileName_, std::stringstream& in) const;
|
||||
void removeFile(const char* fileName_, const char* errMsg) const;
|
||||
void renameFile(const char* oldFileName, const char* newFileName, const char* errMsg) const;
|
||||
void setOutputEOL(LineEndFormat lineEndFormat, const string& currentEOL);
|
||||
void setOutputEOL(LineEndFormat lineEndFormat, const std::string& currentEOL);
|
||||
void sleep(int seconds) const;
|
||||
int waitForRemove(const char* newFileName) const;
|
||||
int wildcmp(const char* wild, const char* data) const;
|
||||
void writeFile(const string& fileName_, FileEncoding encoding, ostringstream& out) const;
|
||||
void writeFile(const std::string& fileName_, FileEncoding encoding, std::ostringstream& out) const;
|
||||
#ifdef _WIN32
|
||||
void displayLastError();
|
||||
#endif
|
||||
|
||||
@@ -523,10 +523,10 @@ def get_project_filepaths(project):
|
||||
# filepaths.append(test_directory + "/MonoDevelop/src/*.cs")
|
||||
elif project == LIBSBASE:
|
||||
if USE_MULTIPLE_EXTENSIONS:
|
||||
filepaths.append(test_directory + "/libsBase/*.m,*.h")
|
||||
filepaths.append(test_directory + "/libsBase/Source/*.m,*.h")
|
||||
else:
|
||||
filepaths.append(test_directory + "/libsBase/*.m")
|
||||
filepaths.append(test_directory + "/libsBase/*.h")
|
||||
filepaths.append(test_directory + "/libsBase/Source/*.m")
|
||||
filepaths.append(test_directory + "/libsBase/Source/*.h")
|
||||
elif project == SCITE:
|
||||
if USE_MULTIPLE_EXTENSIONS:
|
||||
filepaths.append(test_directory + "/SciTE/*.cxx,*.h")
|
||||
|
||||
@@ -34,10 +34,10 @@ import libtest
|
||||
# SHARPDEVELOP # C# - Compile on Windows only
|
||||
# SHARPMAIN # C# - 1000 files from SharpDevelop
|
||||
# TESTPROJECT
|
||||
__project = libastyle.LSOF
|
||||
__project = libastyle.LIBSBASE
|
||||
|
||||
# select OPT0 thru OPT3, or use customized options
|
||||
__options = libastyle.OPT4
|
||||
__options = libastyle.OPT2
|
||||
|
||||
# options_x are for BOTH executables
|
||||
__options_x = ""
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
project(astyle CXX)
|
||||
|
||||
add_subdirectory( AStyle )
|
||||
|
||||
# Only attempt to build wxWidgets if found
|
||||
find_package(wxWidgets)
|
||||
if (wxWidgets_FOUND)
|
||||
add_subdirectory( AStyleWx )
|
||||
endif ()
|
||||
Reference in New Issue
Block a user