File: SourceFormatterBase.cpp

package info (click to toggle)
codelite 17.0.0%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 136,244 kB
  • sloc: cpp: 491,547; ansic: 280,393; php: 10,259; sh: 8,930; lisp: 7,664; vhdl: 6,518; python: 6,020; lex: 4,920; yacc: 3,123; perl: 2,385; javascript: 1,715; cs: 1,193; xml: 1,110; makefile: 804; cobol: 741; sql: 709; ruby: 620; f90: 566; ada: 534; asm: 464; fortran: 350; objc: 289; tcl: 258; java: 157; erlang: 61; pascal: 51; ml: 49; awk: 44; haskell: 36
file content (63 lines) | stat: -rw-r--r-- 1,944 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "SourceFormatterBase.hpp"

#include "macros.h"
#include "wxStringHash.h"

wxDEFINE_EVENT(wxEVT_FORMAT_COMPELTED, clSourceFormatEvent);
wxDEFINE_EVENT(wxEVT_FORMAT_INPLACE_COMPELTED, clSourceFormatEvent);

SourceFormatterBase::SourceFormatterBase() {}

SourceFormatterBase::~SourceFormatterBase() {}

void SourceFormatterBase::FromJSON(const JSONItem& json)
{
    m_languages = json["languages"].toArrayString();
    m_flags = json["flags"].toSize_t((size_t)FormatterFlags::ENABLED);
    m_configFile = json["config_file"].toString();
    m_name = json["name"].toString();
    m_description = json["description"].toString();
    m_shortDescription = json["short_description"].toString();
}

JSONItem SourceFormatterBase::ToJSON() const
{
    JSONItem ele = JSONItem::createObject(GetName());
    ele.addProperty("languages", m_languages);
    ele.addProperty("flags", m_flags);
    ele.addProperty("config_file", m_configFile);
    ele.addProperty("name", m_name);
    ele.addProperty("description", m_description);
    ele.addProperty("short_description", m_shortDescription);
    return ele;
}

bool SourceFormatterBase::CanHandle(FileExtManager::FileType file_type) const
{
    wxString lang = FileExtManager::GetLanguageFromType(file_type);
    return !lang.empty() && m_languages.Index(lang) != wxNOT_FOUND;
}

void SourceFormatterBase::SetFileTypes(const std::vector<FileExtManager::FileType>& types)
{
    wxStringSet_t langs;
    for(auto type : types) {
        wxString lang = FileExtManager::GetLanguageFromType(type);
        if(lang.empty()) {
            continue;
        }
        langs.insert(lang);
    }

    m_languages.clear();
    m_languages.reserve(langs.size());
    for(const auto& lang : langs) {
        m_languages.Add(lang);
    }
}

void SourceFormatterBase::SetConfigFilepath(const wxString& filepath)
{
    m_configFile = filepath;
    SetFlag(FormatterFlags::HAS_FILE_CONFIG, !m_configFile.empty());
}