@@ -71,7 +71,22 @@ configuration_or_error configuration_loader::load_for_file(
71
71
configuration_or_error configuration_loader::load_for_file (
72
72
const file_to_lint& file) {
73
73
if (file.config_file ) {
74
- return this ->load_config_file (file.config_file );
74
+ return boost::leaf::try_handle_all (
75
+ [&]() -> boost::leaf::result<configuration_or_error> {
76
+ return this ->load_config_file (file.config_file );
77
+ },
78
+ make_canonicalize_path_error_handlers (
79
+ [](std::string&& message) -> configuration_or_error {
80
+ return configuration_or_error (std::move (message));
81
+ }),
82
+ make_read_file_error_handlers (
83
+ [](std::string&& message) -> configuration_or_error {
84
+ return configuration_or_error (std::move (message));
85
+ }),
86
+ []() {
87
+ QLJS_ASSERT (false );
88
+ return configuration_or_error (" unknown error" );
89
+ });
75
90
} else {
76
91
if (file.path ) {
77
92
return this ->find_and_load_config_file_for_input (file.path );
@@ -98,45 +113,30 @@ configuration_or_error configuration_loader::load_for_file(
98
113
}
99
114
}
100
115
101
- configuration_or_error configuration_loader::load_config_file (
116
+ boost::leaf::result<configuration*> configuration_loader::load_config_file (
102
117
const char * config_path) {
103
- return boost::leaf::try_handle_all (
104
- [&]() -> boost::leaf::result<configuration_or_error> {
105
- boost::leaf::result<canonical_path_result> canonical_config_path =
106
- this ->fs_ ->canonicalize_path (config_path);
107
- if (!canonical_config_path) return canonical_config_path.error ();
118
+ boost::leaf::result<canonical_path_result> canonical_config_path =
119
+ this ->fs_ ->canonicalize_path (config_path);
120
+ if (!canonical_config_path) return canonical_config_path.error ();
108
121
109
- if (loaded_config_file* config_file =
110
- this ->get_loaded_config (canonical_config_path->canonical ())) {
111
- return configuration_or_error (&config_file->config );
112
- }
113
- boost::leaf::result<padded_string> config_json =
114
- this ->fs_ ->read_file (canonical_config_path->canonical ());
115
- if (!config_json) return config_json.error ();
116
- auto [config_it, inserted] = this ->loaded_config_files_ .emplace (
117
- std::piecewise_construct,
118
- std::forward_as_tuple (canonical_config_path->canonical ()),
119
- std::forward_as_tuple ());
120
- QLJS_ASSERT (inserted);
121
- loaded_config_file* config_file = &config_it->second ;
122
- config_file->file_content = std::move (*config_json);
123
- config_file->config .set_config_file_path (
124
- std::move (*canonical_config_path).canonical ());
125
- config_file->config .load_from_json (&config_file->file_content );
126
- return configuration_or_error (&config_file->config );
127
- },
128
- make_canonicalize_path_error_handlers (
129
- [](std::string&& message) -> configuration_or_error {
130
- return configuration_or_error (std::move (message));
131
- }),
132
- make_read_file_error_handlers (
133
- [](std::string&& message) -> configuration_or_error {
134
- return configuration_or_error (std::move (message));
135
- }),
136
- []() {
137
- QLJS_ASSERT (false );
138
- return configuration_or_error (" unknown error" );
139
- });
122
+ if (loaded_config_file* config_file =
123
+ this ->get_loaded_config (canonical_config_path->canonical ())) {
124
+ return &config_file->config ;
125
+ }
126
+ boost::leaf::result<padded_string> config_json =
127
+ this ->fs_ ->read_file (canonical_config_path->canonical ());
128
+ if (!config_json) return config_json.error ();
129
+ auto [config_it, inserted] = this ->loaded_config_files_ .emplace (
130
+ std::piecewise_construct,
131
+ std::forward_as_tuple (canonical_config_path->canonical ()),
132
+ std::forward_as_tuple ());
133
+ QLJS_ASSERT (inserted);
134
+ loaded_config_file* config_file = &config_it->second ;
135
+ config_file->file_content = std::move (*config_json);
136
+ config_file->config .set_config_file_path (
137
+ std::move (*canonical_config_path).canonical ());
138
+ config_file->config .load_from_json (&config_file->file_content );
139
+ return &config_file->config ;
140
140
}
141
141
142
142
QLJS_WARNING_PUSH
0 commit comments