| 621 | } |
| 622 | |
| 623 | static LSPWorkspaceEdit parseWorkSpaceEdit( const json& result ) { |
| 624 | LSPWorkspaceEdit ret; |
| 625 | if ( result.contains( "changes" ) ) { |
| 626 | auto& changes = result.at( "changes" ); |
| 627 | for ( auto it = changes.begin(); it != changes.end(); ++it ) { |
| 628 | ret.changes.insert( std::pair<URI, std::vector<LSPTextEdit>>( |
| 629 | URI( it.key() ), parseTextEditArray( it.value() ) ) ); |
| 630 | } |
| 631 | } |
| 632 | if ( result.contains( "documentChanges" ) ) { |
| 633 | const auto& documentChanges = result.at( "documentChanges" ); |
| 634 | // resourceOperations not supported for now |
| 635 | for ( const auto& edit : documentChanges ) { |
| 636 | ret.documentChanges.push_back( parseTextDocumentEdit( edit ) ); |
| 637 | } |
| 638 | } |
| 639 | return ret; |
| 640 | } |
| 641 | |
| 642 | static LSPCommand parseCommand( const json& result ) { |
| 643 | auto title = result.at( MEMBER_TITLE ).get<std::string>(); |
no test coverage detected