MCPcopy Create free account
hub / github.com/Rezonality/zep / SetBufferSyntax

Method SetBufferSyntax

src/editor.cpp:789–836  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

787}
788
789void ZepEditor::SetBufferSyntax(ZepBuffer& buffer) const
790{
791 std::string ext;
792 std::string fileName;
793 if (buffer.GetFilePath().has_filename() && buffer.GetFilePath().filename().has_extension())
794 {
795 ext = string_tolower(buffer.GetFilePath().filename().extension().string());
796 fileName = string_tolower(buffer.GetFilePath().filename().string());
797 }
798 else
799 {
800 auto str = buffer.GetName();
801 size_t dot_pos = str.find_last_of(".");
802 if (dot_pos != std::string::npos)
803 {
804 ext = string_tolower(str.substr(dot_pos, str.length() - dot_pos));
805 }
806 }
807
808 // first check file name
809 if (!fileName.empty())
810 {
811 auto itr = m_mapSyntax.find(fileName);
812 if (itr != m_mapSyntax.end())
813 {
814 buffer.SetSyntaxProvider(itr->second);
815 return;
816 }
817 }
818
819 auto itr = m_mapSyntax.find(ext);
820 if (itr != m_mapSyntax.end())
821 {
822 buffer.SetSyntaxProvider(itr->second);
823 }
824 else
825 {
826 itr = m_mapSyntax.find(string_tolower(buffer.GetName()));
827 if (itr != m_mapSyntax.end())
828 {
829 buffer.SetSyntaxProvider(itr->second);
830 }
831 else
832 {
833 buffer.SetSyntaxProvider(SyntaxProvider{});
834 }
835 }
836}
837
838void ZepEditor::RegisterSyntaxFactory(const std::vector<std::string>& mappings, SyntaxProvider provider)
839{

Callers 2

LoadMethod · 0.80
SetFilePathMethod · 0.80

Calls 12

string_tolowerFunction · 0.85
has_filenameMethod · 0.80
GetFilePathMethod · 0.80
has_extensionMethod · 0.80
filenameMethod · 0.80
extensionMethod · 0.80
GetNameMethod · 0.80
findMethod · 0.80
SetSyntaxProviderMethod · 0.80
stringMethod · 0.45
emptyMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected