use file id instead of file path in recorded locations

This commit is contained in:
mlangkabel
2018-12-14 18:37:40 +01:00
parent 3b0008585e
commit 4517be935c
9 changed files with 57 additions and 90 deletions
-1
View File
@@ -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
-37
View File
@@ -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
+2 -3
View File
@@ -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;
+1 -1
View File
@@ -199,7 +199,7 @@ namespace sourcetrail
const std::vector<std::string> tableNames = {
"meta",
"error"
"error",
"component_access",
"occurrence",
"source_location",
+2 -5
View File
@@ -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
View File
@@ -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() == "");