mirror of
				https://github.com/MaskRay/ccls.git
				synced 2025-11-04 14:17:07 +00:00 
			
		
		
		
	Misc fixes
This commit is contained in:
		
							parent
							
								
									f0fb8db3e5
								
							
						
					
					
						commit
						c262e1674d
					
				@ -140,6 +140,7 @@ void BuildDetailString(CXCompletionString completion_string, std::string& label,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case CXCompletionChunk_Placeholder: {
 | 
					    case CXCompletionChunk_Placeholder: {
 | 
				
			||||||
 | 
					      // TODO: insert $0 at end of snippet
 | 
				
			||||||
      std::string text = clang::ToString(clang_getCompletionChunkText(completion_string, i));
 | 
					      std::string text = clang::ToString(clang_getCompletionChunkText(completion_string, i));
 | 
				
			||||||
      parameters->push_back(text);
 | 
					      parameters->push_back(text);
 | 
				
			||||||
      detail += text;
 | 
					      detail += text;
 | 
				
			||||||
@ -357,13 +358,18 @@ void CompletionQueryMain(ClangCompleteManager* completion_manager) {
 | 
				
			|||||||
    // Build diagnostics.
 | 
					    // Build diagnostics.
 | 
				
			||||||
    NonElidedVector<lsDiagnostic> ls_diagnostics;
 | 
					    NonElidedVector<lsDiagnostic> ls_diagnostics;
 | 
				
			||||||
    timer.Reset();
 | 
					    timer.Reset();
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
    unsigned num_diagnostics = clang_codeCompleteGetNumDiagnostics(cx_results);
 | 
					    unsigned num_diagnostics = clang_codeCompleteGetNumDiagnostics(cx_results);
 | 
				
			||||||
 | 
					    std::cerr << "!! There are " + std::to_string(num_diagnostics) + " diagnostics to build\n";
 | 
				
			||||||
    for (unsigned i = 0; i < num_diagnostics; ++i) {
 | 
					    for (unsigned i = 0; i < num_diagnostics; ++i) {
 | 
				
			||||||
      optional<lsDiagnostic> diagnostic = BuildDiagnostic(clang_codeCompleteGetDiagnostic(cx_results, i));
 | 
					      std::cerr << "!! Building diagnostic " + std::to_string(i) + "\n";
 | 
				
			||||||
 | 
					      CXDiagnostic cx_diag = clang_codeCompleteGetDiagnostic(cx_results, i);
 | 
				
			||||||
 | 
					      optional<lsDiagnostic> diagnostic = BuildDiagnostic(cx_diag);
 | 
				
			||||||
      if (diagnostic)
 | 
					      if (diagnostic)
 | 
				
			||||||
        ls_diagnostics.push_back(*diagnostic);
 | 
					        ls_diagnostics.push_back(*diagnostic);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    timer.ResetAndPrint("[complete] Build diagnostics");
 | 
					    timer.ResetAndPrint("[complete] Build diagnostics");
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clang_disposeCodeCompleteResults(cx_results);
 | 
					    clang_disposeCodeCompleteResults(cx_results);
 | 
				
			||||||
@ -410,7 +416,7 @@ void LruSessionCache::InsertEntry(std::unique_ptr<CompletionSession> session) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ClangCompleteManager::ParseRequest::ParseRequest(const std::string& path)
 | 
					ClangCompleteManager::ParseRequest::ParseRequest(const std::string& path)
 | 
				
			||||||
  : path(path), request_time(std::chrono::high_resolution_clock::now()) {}
 | 
					  : request_time(std::chrono::high_resolution_clock::now()), path(path) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ClangCompleteManager::ClangCompleteManager(Config* config, Project* project, WorkingFiles* working_files)
 | 
					ClangCompleteManager::ClangCompleteManager(Config* config, Project* project, WorkingFiles* working_files)
 | 
				
			||||||
    : config_(config), project_(project), working_files_(working_files),
 | 
					    : config_(config), project_(project), working_files_(working_files),
 | 
				
			||||||
 | 
				
			|||||||
@ -24,8 +24,11 @@ lsRange GetLsRangeForFixIt(const CXSourceRange& range) {
 | 
				
			|||||||
optional<lsDiagnostic> BuildDiagnostic(CXDiagnostic diagnostic) {
 | 
					optional<lsDiagnostic> BuildDiagnostic(CXDiagnostic diagnostic) {
 | 
				
			||||||
  // Skip diagnostics in system headers.
 | 
					  // Skip diagnostics in system headers.
 | 
				
			||||||
  CXSourceLocation diag_loc = clang_getDiagnosticLocation(diagnostic);
 | 
					  CXSourceLocation diag_loc = clang_getDiagnosticLocation(diagnostic);
 | 
				
			||||||
  if (clang_Location_isInSystemHeader(diag_loc))
 | 
					  if (clang_equalLocations(diag_loc, clang_getNullLocation()) ||
 | 
				
			||||||
 | 
					      clang_Location_isInSystemHeader(diag_loc)) {
 | 
				
			||||||
 | 
					    clang_disposeDiagnostic(diagnostic);
 | 
				
			||||||
    return nullopt;
 | 
					    return nullopt;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Get db so we can attribute diagnostic to the right indexed file.
 | 
					  // Get db so we can attribute diagnostic to the right indexed file.
 | 
				
			||||||
  CXFile file;
 | 
					  CXFile file;
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@
 | 
				
			|||||||
#include <rapidjson/istreamwrapper.h>
 | 
					#include <rapidjson/istreamwrapper.h>
 | 
				
			||||||
#include <rapidjson/ostreamwrapper.h>
 | 
					#include <rapidjson/ostreamwrapper.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <climits>
 | 
				
			||||||
#include <fstream>
 | 
					#include <fstream>
 | 
				
			||||||
#include <functional>
 | 
					#include <functional>
 | 
				
			||||||
#include <iostream>
 | 
					#include <iostream>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user