15#ifndef WSFPPROXYFILEWRITER_HPP
16#define WSFPPROXYFILEWRITER_HPP
22#include "UtTextDocument.hpp"
40 aRange.SetRange(aRange.GetBegin() + delta, aRange.GetEnd() + delta);
58 void MoveCursor(UtTextDocumentLocation aLocation);
61 void SetSaveFiles(
const std::map<WsfPProxyPath, std::string>& aProxySaveLocations)
63 mProxySaveLocations = aProxySaveLocations;
66 void SetIncludeDirectories(
const UtPath& aWorkingDirectory,
const std::vector<UtStringRef>& aIncludeDirectories);
67 const std::vector<UtTextDocumentRange>&
GetNewRanges() {
return mNewRanges; }
71 return mDocumentCopies;
73 using ChangeList = std::vector<WsfPProxyFileWriterChange>;
74 using ChangeMap = std::map<UtTextDocument*, ChangeList>;
77 std::string BestIncludePath(
const UtPath& aFilePath);
81 void ExpandCommandRangeForWhitespace(UtTextDocumentRange& aRange, UtTextDocument* aDocPtr);
82 UtTextDocument* GetWritableDocument(UtTextDocument* aDocument);
83 void MoveCursorToFile(
const std::string& aFileName);
86 UtTextDocument* mRootFilePtr;
88 UtTextDocumentLocation mCursor;
89 std::vector<UtTextDocumentRange> mNewRanges;
90 std::map<UtTextDocument*, std::unique_ptr<UtTextDocument>> mDocumentCopies;
92 std::map<WsfPParseRuleTrace*, std::string> mSaveFiles;
93 std::map<WsfPProxyPath, std::string> mProxySaveLocations;
96 UtPath mWorkingDirectory;
97 std::vector<std::string> mNewFileList;
98 std::vector<UtStringRef> mIncludeDirectories;
Definition WsfPProxyRuleTrace.hpp:73
const std::map< UtTextDocument *, std::unique_ptr< UtTextDocument > > & GetDocumentCopies() const
Definition WsfPProxyFileWriter.hpp:69
void InsertText(const std::string &aText)
Definition WsfPProxyFileWriter.cpp:133
std::vector< WsfPProxyFileWriterChange > ChangeList
Definition WsfPProxyFileWriter.hpp:73
std::map< UtTextDocument *, ChangeList > ChangeMap
Definition WsfPProxyFileWriter.hpp:74
void MoveCursor(UtTextDocumentLocation aLocation)
Definition WsfPProxyFileWriter.cpp:103
const std::vector< UtTextDocumentRange > & GetNewRanges()
Definition WsfPProxyFileWriter.hpp:67
WsfPProxyFileWriter & operator=(const WsfPProxyFileWriter &)=delete
void SetSourceProvider(WsfParseSourceProvider *aSourceProvider)
Definition WsfPProxyFileWriter.cpp:372
WsfPProxyFileWriter(const WsfPProxyFileWriter &)=delete
WsfPProxyFileWriter & operator=(WsfPProxyFileWriter &&)=default
WsfPProxyFileWriter(WsfPProxyFileWriter &&)=default
void SetRootFile(UtTextDocument *aFilePtr)
Definition WsfPProxyFileWriter.cpp:34
void SetSaveFiles(const std::map< WsfPProxyPath, std::string > &aProxySaveLocations)
Definition WsfPProxyFileWriter.hpp:61
void AddChange(WsfPProxyFileWriterChange c)
Definition WsfPProxyFileWriter.cpp:29
~WsfPProxyFileWriter()=default
void SetIncludeDirectories(const UtPath &aWorkingDirectory, const std::vector< UtStringRef > &aIncludeDirectories)
Definition WsfPProxyFileWriter.cpp:377
WsfPProxyFileWriter()
Definition WsfPProxyFileWriter.cpp:23
void ApplyChanges()
Definition WsfPProxyFileWriter.cpp:58
void WriteTrace(WsfPParseRuleTrace *aTracePtr)
Definition WsfPProxyFileWriter.cpp:163
Definition WsfParseNode.hpp:61
Interface providing source files to the WsfParser.
Definition WsfParseSourceProvider.hpp:24
Definition WsfPProxyFileWriter.hpp:29
UtTextDocumentRange mReplaceRange
Definition WsfPProxyFileWriter.hpp:30
void ApplyChangeToRange(UtTextRange &aRange) const
Definition WsfPProxyFileWriter.hpp:33
std::string mReplaceText
Definition WsfPProxyFileWriter.hpp:31