Skip to content

Commit aa4ffe1

Browse files
committed
add Makefile, lint options & fix lint errors
1 parent b1f9a13 commit aa4ffe1

File tree

6 files changed

+241
-14
lines changed

6 files changed

+241
-14
lines changed

.github/workflows/main.yaml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ jobs:
1414
sdk: 3.3.0
1515

1616
- name: Install dependencies
17-
run: dart pub get
17+
run: make install
18+
19+
- name: Verify formatting
20+
run: make format
21+
22+
- name: Check lint
23+
run: make lint
1824

1925
- name: Run tests
20-
run: dart test
26+
run: make test

Makefile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
install:
2+
dart pub get
3+
4+
lint:
5+
dart analyze
6+
7+
lint-fix:
8+
dart fix --apply
9+
10+
format:
11+
dart format --output=none --set-exit-if-changed .
12+
13+
test:
14+
dart test

analysis_options.yaml

Lines changed: 210 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,216 @@ include: package:lints/recommended.yaml
1515

1616
# Uncomment the following section to specify additional rules.
1717

18-
# linter:
19-
# rules:
20-
# - camel_case_types
18+
linter:
19+
rules:
20+
- always_declare_return_types
21+
- always_put_control_body_on_new_line
22+
- always_put_required_named_parameters_first
23+
- always_specify_types
24+
- always_use_package_imports
25+
- annotate_overrides
26+
- annotate_redeclares
27+
- avoid_annotating_with_dynamic
28+
- avoid_bool_literals_in_conditional_expressions
29+
- avoid_catches_without_on_clauses
30+
- avoid_catching_errors
31+
- avoid_classes_with_only_static_members
32+
- avoid_double_and_int_checks
33+
- avoid_dynamic_calls
34+
- avoid_empty_else
35+
- avoid_equals_and_hash_code_on_mutable_classes
36+
- avoid_escaping_inner_quotes
37+
- avoid_field_initializers_in_const_classes
38+
- avoid_function_literals_in_foreach_calls
39+
- avoid_implementing_value_types
40+
- avoid_init_to_null
41+
- avoid_js_rounded_ints
42+
- avoid_multiple_declarations_per_line
43+
- avoid_null_checks_in_equality_operators
44+
- avoid_positional_boolean_parameters
45+
- avoid_private_typedef_functions
46+
- avoid_redundant_argument_values
47+
- avoid_relative_lib_imports
48+
- avoid_renaming_method_parameters
49+
- avoid_return_types_on_setters
50+
- avoid_returning_null_for_void
51+
- avoid_returning_this
52+
- avoid_setters_without_getters
53+
- avoid_shadowing_type_parameters
54+
- avoid_single_cascade_in_expression_statements
55+
- avoid_slow_async_io
56+
- avoid_type_to_string
57+
- avoid_types_as_parameter_names
58+
- avoid_unnecessary_containers
59+
- avoid_unused_constructor_parameters
60+
- avoid_void_async
61+
- avoid_web_libraries_in_flutter
62+
- await_only_futures
63+
- camel_case_extensions
64+
- camel_case_types
65+
- cancel_subscriptions
66+
- cascade_invocations
67+
- cast_nullable_to_non_nullable
68+
- close_sinks
69+
- collection_methods_unrelated_type
70+
- combinators_ordering
71+
- comment_references
72+
- conditional_uri_does_not_exist
73+
- constant_identifier_names
74+
- control_flow_in_finally
75+
- curly_braces_in_flow_control_structures
76+
- dangling_library_doc_comments
77+
- depend_on_referenced_packages
78+
- deprecated_consistency
79+
- deprecated_member_use_from_same_package
80+
- diagnostic_describe_all_properties
81+
- directives_ordering
82+
- discarded_futures
83+
- do_not_use_environment
84+
- empty_catches
85+
- empty_constructor_bodies
86+
- empty_statements
87+
- eol_at_end_of_file
88+
- exhaustive_cases
89+
- file_names
90+
- hash_and_equals
91+
- implementation_imports
92+
- implicit_call_tearoffs
93+
- implicit_reopen
94+
- invalid_case_patterns
95+
- join_return_with_assignment
96+
- leading_newlines_in_multiline_strings
97+
- library_annotations
98+
- library_names
99+
- library_prefixes
100+
- library_private_types_in_public_api
101+
- lines_longer_than_80_chars
102+
- literal_only_boolean_expressions
103+
- matching_super_parameters
104+
- missing_whitespace_between_adjacent_strings
105+
- no_adjacent_strings_in_list
106+
- no_default_cases
107+
- no_duplicate_case_values
108+
- no_leading_underscores_for_library_prefixes
109+
- no_leading_underscores_for_local_identifiers
110+
- no_literal_bool_comparisons
111+
- no_logic_in_create_state
112+
- no_runtimeType_toString
113+
- no_self_assignments
114+
- no_wildcard_variable_uses
115+
- non_constant_identifier_names
116+
- noop_primitive_operations
117+
- null_check_on_nullable_type_parameter
118+
- null_closures
119+
- one_member_abstracts
120+
- only_throw_errors
121+
- overridden_fields
122+
- package_api_docs
123+
- package_names
124+
- package_prefixed_library_names
125+
- parameter_assignments
126+
- prefer_adjacent_string_concatenation
127+
- prefer_asserts_in_initializer_lists
128+
- prefer_asserts_with_message
129+
- prefer_collection_literals
130+
- prefer_conditional_assignment
131+
- prefer_const_constructors
132+
- prefer_const_constructors_in_immutables
133+
- prefer_const_declarations
134+
- prefer_const_literals_to_create_immutables
135+
- prefer_constructors_over_static_methods
136+
- prefer_contains
137+
- prefer_double_quotes
138+
- prefer_expression_function_bodies
139+
- prefer_final_fields
140+
- prefer_final_in_for_each
141+
- prefer_final_locals
142+
- prefer_final_parameters
143+
- prefer_for_elements_to_map_fromIterable
144+
- prefer_foreach
145+
- prefer_function_declarations_over_variables
146+
- prefer_generic_function_type_aliases
147+
- prefer_if_elements_to_conditional_expressions
148+
- prefer_if_null_operators
149+
- prefer_initializing_formals
150+
- prefer_inlined_adds
151+
- prefer_int_literals
152+
- prefer_interpolation_to_compose_strings
153+
- prefer_is_empty
154+
- prefer_is_not_empty
155+
- prefer_is_not_operator
156+
- prefer_iterable_whereType
157+
- prefer_mixin
158+
- prefer_null_aware_method_calls
159+
- prefer_null_aware_operators
160+
- prefer_spread_collections
161+
- prefer_typing_uninitialized_variables
162+
- prefer_void_to_null
163+
- provide_deprecation_message
164+
- recursive_getters
165+
- require_trailing_commas
166+
- secure_pubspec_urls
167+
- sized_box_for_whitespace
168+
- sized_box_shrink_expand
169+
- slash_for_doc_comments
170+
- sort_child_properties_last
171+
- sort_constructors_first
172+
- sort_pub_dependencies
173+
- sort_unnamed_constructors_first
174+
- test_types_in_equals
175+
- throw_in_finally
176+
- tighten_type_of_initializing_formals
177+
- type_annotate_public_apis
178+
- type_init_formals
179+
- type_literal_in_constant_pattern
180+
- unawaited_futures
181+
- unnecessary_await_in_return
182+
- unnecessary_brace_in_string_interps
183+
- unnecessary_breaks
184+
- unnecessary_const
185+
- unnecessary_constructor_name
186+
- unnecessary_getters_setters
187+
- unnecessary_lambdas
188+
- unnecessary_late
189+
- unnecessary_library_directive
190+
- unnecessary_new
191+
- unnecessary_null_aware_assignments
192+
- unnecessary_null_aware_operator_on_extension_on_nullable
193+
- unnecessary_null_checks
194+
- unnecessary_null_in_if_null_operators
195+
- unnecessary_nullable_for_final_variable_declarations
196+
- unnecessary_overrides
197+
- unnecessary_parenthesis
198+
- unnecessary_raw_strings
199+
- unnecessary_statements
200+
- unnecessary_string_escapes
201+
- unnecessary_string_interpolations
202+
- unnecessary_this
203+
- unnecessary_to_list_in_spreads
204+
- unreachable_from_main
205+
- unrelated_type_equality_checks
206+
- unsafe_html
207+
- use_build_context_synchronously
208+
- use_colored_box
209+
- use_decorated_box
210+
- use_enums
211+
- use_full_hex_values_for_flutter_colors
212+
- use_function_type_syntax_for_parameters
213+
- use_if_null_to_convert_nulls_to_bools
214+
- use_is_even_rather_than_modulo
215+
- use_key_in_widget_constructors
216+
- use_late_for_private_fields_and_variables
217+
- use_named_constants
218+
- use_raw_strings
219+
- use_rethrow_when_possible
220+
- use_setters_to_change_properties
221+
- use_string_buffers
222+
- use_string_in_part_of_directives
223+
- use_super_parameters
224+
- use_test_throws_matchers
225+
- use_to_and_as_if_applicable
226+
- valid_regexps
227+
- void_checks
21228

22229
# analyzer:
23230
# exclude:

example/wampproto_example.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import 'package:wampproto/wampproto.dart';
1+
import "package:wampproto/wampproto.dart";
22

33
void main() {
4-
var awesome = Awesome();
5-
print('awesome: ${awesome.isAwesome}');
4+
final Awesome awesome = Awesome();
5+
print("awesome: ${awesome.isAwesome}");
66
}

lib/wampproto.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
/// More dartdocs go here.
44
library;
55

6-
export 'src/wampproto_base.dart';
6+
export "src/wampproto_base.dart";
77

88
// TODO: Export any libraries intended for clients of this package.

test/wampproto_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import 'package:wampproto/wampproto.dart';
2-
import 'package:test/test.dart';
1+
import "package:test/test.dart";
2+
import "package:wampproto/wampproto.dart";
33

44
void main() {
5-
group('A group of tests', () {
6-
final awesome = Awesome();
5+
group("A group of tests", () {
6+
final Awesome awesome = Awesome();
77

88
setUp(() {
99
// Additional setup goes here.
1010
});
1111

12-
test('First Test', () {
12+
test("First Test", () {
1313
expect(awesome.isAwesome, isTrue);
1414
});
1515
});

0 commit comments

Comments
 (0)