Skip to content

Commit

Permalink
Enabled more clang-tidy checks
Browse files Browse the repository at this point in the history
  • Loading branch information
mikekazakov committed May 17, 2024
1 parent 88c0cf1 commit 0a00247
Show file tree
Hide file tree
Showing 13 changed files with 42 additions and 14 deletions.
6 changes: 5 additions & 1 deletion Source/.clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@ Checks: >
performance-avoid-endl,
performance-enum-size,
performance-faster-string-find,
performance-for-range-copy
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
performance-inefficient-string-concatenation,
performance-inefficient-vector-operation
CheckOptions:
- key: modernize-loop-convert.MinConfidence
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,17 +414,27 @@
};
// clang-format on

template <size_t size, typename T, size_t... indexes>
static constexpr auto make_array_n_impl(T &&value, std::index_sequence<indexes...>)
{
return std::array<std::decay_t<T>, size>{(static_cast<void>(indexes), value)..., std::forward<T>(value)};
}

template <size_t size, typename T>
static constexpr auto make_array_n(T &&value)
{
return make_array_n_impl<size>(std::forward<T>(value), std::make_index_sequence<size - 1>{});
}

static constinit const auto g_ActionToTag = [] {
std::pair<frozen::string, int> items[std::size(g_ActionsTags)] = {
[0 ... std::size(g_ActionsTags) - 1] = {frozen::string(""), 0}};
auto items = make_array_n<std::size(g_ActionsTags)>(std::pair<frozen::string, int>(frozen::string(""), 0));
for( size_t i = 0; i < std::size(g_ActionsTags); ++i )
items[i] = std::pair<frozen::string, int>(g_ActionsTags[i].first, g_ActionsTags[i].second);
return frozen::make_unordered_map(items);
}();

static constinit const auto g_TagToAction = [] {
std::pair<int, frozen::string> items[std::size(g_ActionsTags)] = {
[0 ... std::size(g_ActionsTags) - 1] = {0, frozen::string("")}};
auto items = make_array_n<std::size(g_ActionsTags)>(std::pair<int, frozen::string>(0, frozen::string("")));
for( size_t i = 0; i < std::size(g_ActionsTags); ++i )
items[i] = std::pair<int, frozen::string>(g_ActionsTags[i].second, g_ActionsTags[i].first);
return frozen::make_unordered_map(items);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -902,6 +902,7 @@ - (void)acceptFSTags:(const std::vector<nc::utility::Tags::Tag> &)_tags
m_TagsStorage->Set(m_Tags);
[self.tagsTable reloadData];
std::vector<std::string> labels;
labels.reserve(added.size());
for( auto &tag : added )
labels.push_back(fmt::format("“{}”", tag.Label()));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2017-2023 Michael Kazakov. Subject to GNU General Public License version 3.
// Copyright (C) 2017-2024 Michael Kazakov. Subject to GNU General Public License version 3.
#include "Duplicate.h"
#include "../PanelController.h"
#include <VFS/VFS.h>
Expand All @@ -14,6 +14,7 @@
#include <Config/Config.h>
#include "Helpers.h"
#include <robin_hood.h>
#include <fmt/format.h>

namespace nc::panel::actions {

Expand Down Expand Up @@ -137,14 +138,15 @@ static void CommonPerform(PanelController *_target, const std::vector<VFSListing

if( duplicate_index < 0 )
for( int i = 1; i < max_duplicates; ++i ) {
const auto target = filename + " " + g_Suffix + (i == 1 ? "" : " " + std::to_string(i)) + extension;
if( _filenames.count(ProduceFormCLowercase(target)) == 0 )
const auto target =
fmt::format("{} {}{}{}", filename, g_Suffix, (i == 1 ? ""s : " "s + std::to_string(i)), extension);
if( !_filenames.contains(ProduceFormCLowercase(target)) )
return target;
}
else
for( int i = duplicate_index + 1; i < max_duplicates; ++i ) {
auto target = filename_wo_index + " " + std::to_string(i) + extension;
if( _filenames.count(ProduceFormCLowercase(target)) == 0 )
const auto target = fmt::format("{} {}{}", filename_wo_index, i, extension);
if( !_filenames.contains(ProduceFormCLowercase(target)) )
return target;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ static void PerformOpeningFilesWithDefaultHandler(const std::vector<VFSListingIt
all_of(begin(_items), end(_items), [&](const auto &i) { return i.Host() == _items.front().Host(); });
if( same_host ) {
std::vector<std::string> items;
items.reserve(_items.size());
for( auto &i : _items )
items.emplace_back(i.Path());
_file_opener.Open(items, _items.front().Host(), nil, _target);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ static void SortAndPurgeDuplicateHandlers(std::vector<LaunchServiceHandler> &_ha
static FetchResult FetchHandlers(const std::vector<VFSListingItem> &_items, const UTIDB &_db)
{
std::vector<LauchServicesHandlers> per_item_handlers;
per_item_handlers.reserve(_items.size());
for( auto &i : _items )
per_item_handlers.emplace_back(i, _db);

Expand Down Expand Up @@ -321,6 +322,7 @@ - (void)openItemsWithHandler:(const LaunchServiceHandler &)_handler
});
if( same_host ) {
std::vector<std::string> items;
items.reserve(source_items.size());
for( auto &i : source_items )
items.emplace_back(i.Path());
m_FileOpener->Open(items, source_items.front().Host(), _handler.Identifier(), self.target);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@
std::vector<std::reference_wrapper<const History::Path>> History::All() const
{
std::vector<std::reference_wrapper<const Path>> res;
res.reserve(m_History.size());
for( auto &i : m_History )
res.emplace_back(std::cref(i));
return res;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ - (BOOL)control:(NSControl *) [[maybe_unused]] control
- (NSMenu *)buildMenuWithElements:(const std::vector<unsigned> &)_inds ofListing:(const VFSListing &)_listing
{
std::vector<NSString *> filenames;
filenames.reserve(_inds.size());
for( auto i : _inds )
filenames.emplace_back(_listing.FilenameNS(i));

Expand Down
2 changes: 2 additions & 0 deletions Source/Operations/source/AttrsChanging/AttrsChangingDialog.mm
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,7 @@ static auto optional_common_value(_InputIterator _first, _InputIterator _last, _
static AttrsChangingCommand::Permissions ExtractCommonPermissions(const std::vector<VFSListingItem> &_items)
{
std::vector<uint16_t> modes;
modes.reserve(_items.size());
for( const auto &i : _items )
modes.emplace_back(i.UnixMode());

Expand Down Expand Up @@ -732,6 +733,7 @@ static auto optional_common_value(_InputIterator _first, _InputIterator _last, _
static AttrsChangingCommand::Flags ExtractCommonFlags(const std::vector<VFSListingItem> &_items)
{
std::vector<uint32_t> flags;
flags.reserve(_items.size());
for( const auto &i : _items )
flags.emplace_back(i.UnixFlags());

Expand Down
2 changes: 1 addition & 1 deletion Source/Operations/source/Compression/CompressionJob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ bool CompressionJob::ScanItem(const std::string &_full_path,

const auto directory_node = &_ctx.filenames.back();
for( const std::string &filename : directory_entries )
if( !ScanItem(_full_path + "/" + filename,
if( !ScanItem(fmt::format("{}/{}", _full_path, filename),
filename,
meta.base_vfs_indx,
meta.base_path_indx,
Expand Down
3 changes: 2 additions & 1 deletion Source/Operations/source/Copying/CopyingJob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/xattr.h>
#include <fmt/format.h>

using namespace nc::ops::copying;

Expand Down Expand Up @@ -670,7 +671,7 @@ std::tuple<CopyingJob::StepResult, SourceItems> CopyingJob::ScanSourceItems()
return StepResult::Stop;

// go into recursion
scan_item(my_indx, _full_relative_path + '/' + entry, entry);
scan_item(my_indx, fmt::format("{}/{}", _full_relative_path, entry), entry);
}
}
}
Expand Down
5 changes: 3 additions & 2 deletions Source/Operations/source/Copying/Helpers.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Copyright (C) 2018-2023 Michael Kazakov. Subject to GNU General Public License version 3.
// Copyright (C) 2018-2024 Michael Kazakov. Subject to GNU General Public License version 3.
#include "Helpers.h"
#include <fmt/format.h>

namespace nc::ops::copying {

Expand All @@ -19,7 +20,7 @@ FindNonExistingItemPath(const std::string &_orig_existing_path, VFSHost &_host,
for( int check_index = 2; /*noop*/; ++check_index ) {
if( _cancel_checker && _cancel_checker() )
return "";
auto path = epilog + std::to_string(check_index) + prologue;
auto path = fmt::format("{}{}{}", epilog, check_index, prologue);
if( _host.Exists(path.c_str(), _cancel_checker) == false ) {
if( _cancel_checker && _cancel_checker() )
return "";
Expand Down
2 changes: 2 additions & 0 deletions Source/Operations/source/FilenameTextControl.mm
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ - (NSMenu *)buildMenuWithSuggestions:(const std::vector<std::string> &)_suggesti
forCurrentPath:(const std::string &)_current_path
{
std::vector<NSString *> directories;
directories.reserve(_suggestions.size());
for( const auto &suggestion : _suggestions )
directories.emplace_back([NSString stringWithUTF8StdString:suggestion]);

Expand Down Expand Up @@ -211,6 +212,7 @@ - (void)updateTextView:(NSTextView *)_text_view withAutocompetion:(const std::st
const auto indices = ListDirsWithPrefix(*listing, filename);

std::vector<std::string> directories;
directories.reserve(indices.size());
for( auto index : indices )
directories.emplace_back(listing->Filename(index));

Expand Down

0 comments on commit 0a00247

Please sign in to comment.