clang-tools  14.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. More...
 operator bool () const
std::string uri () const

Static Public Member Functions

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


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 81 of file Protocol.h.

Constructor & Destructor Documentation

◆ URIForFile()

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

Referenced by canonicalize(), and fromURI().

Member Function Documentation

◆ canonicalize()

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

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 48 of file Protocol.cpp.

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

Referenced by clang::clangd::LSPClient::uri().

◆ file()

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

Retrieves absolute path to the file.

Definition at line 101 of file Protocol.h.

Referenced by clang::clangd::getToggle(), clang::clangd::incomingCalls(), and clang::clangd::resolveTypeHierarchy().

◆ fromURI()

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

Definition at line 61 of file Protocol.cpp.

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

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

◆ operator bool()

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

Definition at line 103 of file Protocol.h.

◆ uri()

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

Friends And Related Function Documentation

◆ operator!=

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

Definition at line 110 of file Protocol.h.

◆ operator<

bool operator< ( const URIForFile LHS,
const URIForFile RHS 

Definition at line 114 of file Protocol.h.

◆ operator==

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

Definition at line 106 of file Protocol.h.

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