You've already forked lazarus-ccr
Provide a file-based "document locator" using the schema's file path
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2478 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -222,7 +222,7 @@ uses
|
||||
binary_streamer, wst_resources_utils, xsd_generator, wsdl_generator,
|
||||
uabout, edit_helper, udm, ufrmsaveoption, pparser, SynEditTypes
|
||||
{$IFDEF WST_IDE},LazIDEIntf,IDEMsgIntf{$ENDIF}
|
||||
, xsd_consts, parserutils;
|
||||
, xsd_consts, parserutils, locators;
|
||||
|
||||
{$IFDEF WST_IDE}
|
||||
function GetCurrentProjectLibraryFile():TLazProjectFile;
|
||||
@@ -300,6 +300,8 @@ var
|
||||
locDoc : TXMLDocument;
|
||||
prsr : IParser;
|
||||
symName : string;
|
||||
locContext : IParserContext;
|
||||
locLocator : IDocumentLocator;
|
||||
begin
|
||||
Result := nil;
|
||||
symName := ChangeFileExt(ExtractFileName(AFileName),'');
|
||||
@@ -312,6 +314,11 @@ begin
|
||||
Result := TwstPasTreeContainer.Create();
|
||||
try
|
||||
prsr := TWsdlParser.Create(locDoc,Result,ANotifier);
|
||||
locContext := prsr as IParserContext;
|
||||
if (locContext <> nil) then begin
|
||||
locLocator := TFileDocumentLocator.Create(ExtractFilePath(AFileName));
|
||||
locContext.SetDocumentLocator(locLocator);
|
||||
end;
|
||||
prsr.Execute(pmAllTypes,symName);
|
||||
except
|
||||
FreeAndNil(Result);
|
||||
@@ -351,6 +358,8 @@ var
|
||||
locDoc : TXMLDocument;
|
||||
prsr : IXsdPaser;
|
||||
symName : string;
|
||||
locContext : IParserContext;
|
||||
locLocator : IDocumentLocator;
|
||||
begin
|
||||
Result := nil;
|
||||
symName := ChangeFileExt(ExtractFileName(AFileName),'');
|
||||
@@ -363,6 +372,11 @@ begin
|
||||
Result := TwstPasTreeContainer.Create();
|
||||
try
|
||||
prsr := TXsdParser.Create(locDoc,Result,'',ANotifier);
|
||||
locContext := prsr as IParserContext;
|
||||
if Assigned(locContext) then begin
|
||||
locLocator := TFileDocumentLocator.Create(ExtractFilePath(AFileName));
|
||||
locContext.SetDocumentLocator(locLocator);
|
||||
end;
|
||||
prsr.ParseTypes();
|
||||
except
|
||||
FreeAndNil(Result);
|
||||
|
Reference in New Issue
Block a user