clang-tools 20.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::clangd::URIForFile Struct Reference

#include <Protocol.h>

Public Member Functions

 URIForFile ()=default
 
llvm::StringRef file () const
 Retrieves absolute path to the file.
 
 operator bool () const
 
std::string uri () const
 

Static Public Member Functions

static URIForFile canonicalize (llvm::StringRef AbsPath, llvm::StringRef TUPath)
 Canonicalizes AbsPath via URI.
 
static llvm::Expected< URIForFilefromURI (const URI &U, llvm::StringRef HintPath)
 

Friends

bool operator== (const URIForFile &LHS, const URIForFile &RHS)
 
bool operator!= (const URIForFile &LHS, const URIForFile &RHS)
 
bool operator< (const URIForFile &LHS, const URIForFile &RHS)
 

Detailed Description

Definition at line 84 of file Protocol.h.

Constructor & Destructor Documentation

◆ URIForFile()

clang::clangd::URIForFile::URIForFile ( )
default

Referenced by canonicalize(), and fromURI().

Member Function Documentation

◆ canonicalize()

URIForFile clang::clangd::URIForFile::canonicalize ( llvm::StringRef  AbsPath,
llvm::StringRef  TUPath 
)
static

Canonicalizes AbsPath via URI.

File paths in URIForFile can come from index or local AST. Path from index goes through URI transformation, and the final path is resolved by URI scheme and could potentially be different from the original path. Hence, we do the same transformation for all paths.

Files can be referred to by several paths (e.g. in the presence of links). Which one we prefer may depend on where we're coming from. TUPath is a hint, and should usually be the main entrypoint file we're processing.

Definition at line 46 of file Protocol.cpp.

References clang::clangd::elog(), clang::clangd::URI::resolvePath(), and URIForFile().

Referenced by clang::clangd::getDocumentLinks(), clang::clangd::getHover(), clang::clangd::indexToLSPLocation(), clang::clangd::toLSPDiags(), and clang::clangd::LSPClient::uri().

◆ file()

llvm::StringRef clang::clangd::URIForFile::file ( ) const
inline

◆ fromURI()

llvm::Expected< URIForFile > clang::clangd::URIForFile::fromURI ( const URI U,
llvm::StringRef  HintPath 
)
static

Definition at line 59 of file Protocol.cpp.

References clang::clangd::URI::resolve(), and URIForFile().

Referenced by clang::clangd::fromJSON().

◆ operator bool()

clang::clangd::URIForFile::operator bool ( ) const
inlineexplicit

Definition at line 106 of file Protocol.h.

◆ uri()

std::string clang::clangd::URIForFile::uri ( ) const
inline

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const URIForFile LHS,
const URIForFile RHS 
)
friend

Definition at line 113 of file Protocol.h.

◆ operator<

bool operator< ( const URIForFile LHS,
const URIForFile RHS 
)
friend

Definition at line 117 of file Protocol.h.

◆ operator==

bool operator== ( const URIForFile LHS,
const URIForFile RHS 
)
friend

Definition at line 109 of file Protocol.h.


The documentation for this struct was generated from the following files: