MCPcopy Create free account
hub / github.com/SpartanJ/eepp / parseDocumentCompletion

Function parseDocumentCompletion

src/tools/ecode/plugins/lsp/lspclientserver.cpp:859–898  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

857}
858
859static LSPCompletionList parseDocumentCompletion( const json& result ) {
860 LSPCompletionList ret;
861 if ( result.empty() )
862 return {};
863#ifndef EE_DEBUG
864 try {
865#endif
866 ret.isIncomplete =
867 result.contains( "isIncomplete" ) ? result["isIncomplete"].get<bool>() : false;
868 const json& items =
869 ( result.is_object() && result.contains( "items" ) ) ? result["items"] : result;
870
871 for ( const auto& item : items ) {
872 auto label = jsonString( item, MEMBER_LABEL, "" );
873 auto detail = jsonString( item, MEMBER_DETAIL, "" );
874 LSPMarkupContent doc = item.contains( MEMBER_DOCUMENTATION )
875 ? parseMarkupContent( item.at( MEMBER_DOCUMENTATION ) )
876 : LSPMarkupContent{};
877 auto filterText = jsonString( item, "filterText", label );
878 auto insertText = jsonString( item, "insertText", label );
879 auto sortText = jsonString( item, "sortText", label );
880 LSPTextEdit textEdit;
881 if ( item.contains( "textEdit" ) && !item["textEdit"].is_null() )
882 textEdit = parseTextEdit( item["textEdit"] );
883 auto kind = static_cast<LSPCompletionItemKind>( item.value( MEMBER_KIND, 1 ) );
884 const std::vector<LSPTextEdit> additionalTextEdits =
885 item.contains( "additionalTextEdits" )
886 ? parseTextEditArray( item.at( "additionalTextEdits" ) )
887 : std::vector<LSPTextEdit>{};
888
889 ret.items.push_back( { label, kind, detail, doc, sortText, insertText, filterText,
890 textEdit, additionalTextEdits } );
891 }
892#ifndef EE_DEBUG
893 } catch ( const json::exception& err ) {
894 Log::debug( "Error parsing parseDocumentCompletion: %s", err.what() );
895 }
896#endif
897 return ret;
898}
899
900static LSPSignatureInformation parseSignatureInformation( const json& json ) {
901 LSPSignatureInformation info;

Callers 1

documentCompletionMethod · 0.85

Calls 10

jsonStringFunction · 0.85
parseMarkupContentFunction · 0.85
parseTextEditFunction · 0.85
parseTextEditArrayFunction · 0.85
debugFunction · 0.85
atMethod · 0.80
push_backMethod · 0.80
emptyMethod · 0.45
containsMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected