use file id instead of file path in recorded locations
This commit is contained in:
@@ -37,7 +37,6 @@ set(LIB_HDR_FILES
|
||||
include/NameHierarchy.h
|
||||
include/NodeKind.h
|
||||
include/ReferenceKind.h
|
||||
include/SourceLocation.h
|
||||
include/SourceRange.h
|
||||
include/SourcetrailDBWriter.h
|
||||
include/SourcetrailException.h
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2018 Coati Software KG
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef SOURCETRAIL_SOURCE_LOCATION_H
|
||||
#define SOURCETRAIL_SOURCE_LOCATION_H
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace sourcetrail
|
||||
{
|
||||
/**
|
||||
* Struct that represents a single character location in a source file.
|
||||
*
|
||||
* Note: Line and column numbers start at 1 instead of 0!
|
||||
*/
|
||||
struct SourceLocation
|
||||
{
|
||||
std::string filePath;
|
||||
int line;
|
||||
int column;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // SOURCETRAIL_SOURCE_LOCATION_H
|
||||
@@ -17,18 +17,17 @@
|
||||
#ifndef SOURCETRAIL_SOURCE_RANGE_H
|
||||
#define SOURCETRAIL_SOURCE_RANGE_H
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace sourcetrail
|
||||
{
|
||||
/**
|
||||
* Struct that represents the location of a range of characters in a source file.
|
||||
*
|
||||
* Note: Line and column numbers start at 1 instead of 0!
|
||||
* Note: The SourceRange includes both, the start and the end column number.
|
||||
*/
|
||||
struct SourceRange
|
||||
{
|
||||
std::string filePath;
|
||||
int fileId;
|
||||
int startLine;
|
||||
int startColumn;
|
||||
int endLine;
|
||||
|
||||
@@ -199,7 +199,7 @@ namespace sourcetrail
|
||||
|
||||
const std::vector<std::string> tableNames = {
|
||||
"meta",
|
||||
"error"
|
||||
"error",
|
||||
"component_access",
|
||||
"occurrence",
|
||||
"source_location",
|
||||
|
||||
@@ -550,9 +550,8 @@ namespace sourcetrail
|
||||
|
||||
try
|
||||
{
|
||||
const int fileId = addFile(location.filePath);
|
||||
const int sourceLocationId = m_storage->addSourceLocation(StorageSourceLocationData(
|
||||
fileId,
|
||||
location.fileId,
|
||||
location.startLine,
|
||||
location.startColumn,
|
||||
location.endLine,
|
||||
@@ -724,10 +723,8 @@ namespace sourcetrail
|
||||
|
||||
void SourcetrailDBWriter::addSourceLocation(int elementId, const SourceRange& location, LocationKind kind)
|
||||
{
|
||||
const int fileId = addFile(location.filePath);
|
||||
|
||||
const int sourceLocationId = m_storage->addSourceLocation(StorageSourceLocationData(
|
||||
fileId,
|
||||
location.fileId,
|
||||
location.startLine,
|
||||
location.startColumn,
|
||||
location.endLine,
|
||||
|
||||
+14
-9
@@ -117,6 +117,7 @@ namespace sourcetrail
|
||||
SECTION("writer records symbol locations")
|
||||
{
|
||||
const std::string filePath = "path/to/non_existing_file.cpp";
|
||||
const int fileId = writer.recordFile(filePath);
|
||||
const int startLine = 1;
|
||||
const int startCol = 2;
|
||||
const int endLine = 3;
|
||||
@@ -128,7 +129,7 @@ namespace sourcetrail
|
||||
{
|
||||
const bool success = writer.recordSymbolLocation(
|
||||
idSymbol1,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -142,7 +143,7 @@ namespace sourcetrail
|
||||
{
|
||||
const bool success = writer.recordSymbolScopeLocation(
|
||||
idSymbol1,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -156,7 +157,7 @@ namespace sourcetrail
|
||||
{
|
||||
const bool success = writer.recordSymbolSignatureLocation(
|
||||
idSymbol1,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -239,6 +240,7 @@ namespace sourcetrail
|
||||
SECTION("writer records reference location")
|
||||
{
|
||||
const std::string filePath = "path/to/non_existing_file.cpp";
|
||||
const int fileId = writer.recordFile(filePath);
|
||||
const int startLine = 1;
|
||||
const int startCol = 2;
|
||||
const int endLine = 3;
|
||||
@@ -246,7 +248,7 @@ namespace sourcetrail
|
||||
|
||||
const bool success = writer.recordReferenceLocation(
|
||||
idReference1,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -375,6 +377,7 @@ namespace sourcetrail
|
||||
SECTION("writer records local symbol location")
|
||||
{
|
||||
const std::string filePath = "path/to/non_existing_file.cpp";
|
||||
const int fileId = writer.recordFile(filePath);
|
||||
const int startLine = 1;
|
||||
const int startCol = 2;
|
||||
const int endLine = 3;
|
||||
@@ -382,7 +385,7 @@ namespace sourcetrail
|
||||
|
||||
const bool success = writer.recordLocalSymbolLocation(
|
||||
idLocalSymbol1,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -426,13 +429,14 @@ namespace sourcetrail
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
|
||||
const std::string filePath = "path/to/non_existing_file.cpp";
|
||||
const int fileId = writer.recordFile(filePath);
|
||||
const int startLine = 1;
|
||||
const int startCol = 2;
|
||||
const int endLine = 3;
|
||||
const int endCol = 4;
|
||||
|
||||
const bool success1 = writer.recordCommentLocation(
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success1);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -456,7 +460,7 @@ namespace sourcetrail
|
||||
SECTION("writer does not record comment location twice")
|
||||
{
|
||||
const bool success2 = writer.recordCommentLocation(
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success2);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -487,6 +491,7 @@ namespace sourcetrail
|
||||
const std::string message = "This is a very serious test error message.";
|
||||
const bool fatal = false;
|
||||
const std::string filePath = "path/to/non_existing_file.cpp";
|
||||
const int fileId = writer.recordFile(filePath);
|
||||
const int startLine = 1;
|
||||
const int startCol = 2;
|
||||
const int endLine = 3;
|
||||
@@ -495,7 +500,7 @@ namespace sourcetrail
|
||||
const bool success1 = writer.recordError(
|
||||
message,
|
||||
fatal,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success1);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
@@ -531,7 +536,7 @@ namespace sourcetrail
|
||||
const bool success2 = writer.recordError(
|
||||
message,
|
||||
fatal,
|
||||
SourceRange({ filePath, startLine, startCol, endLine, endCol })
|
||||
{ fileId, startLine, startCol, endLine, endCol }
|
||||
);
|
||||
REQUIRE(success2);
|
||||
REQUIRE(writer.getLastError() == "");
|
||||
|
||||
Reference in New Issue
Block a user