ilya-biryukov added a comment.

Sorry for the late response, was on vacation.



================
Comment at: include/clang/Sema/CodeCompleteConsumer.h:565
+  /// \brief For this completion result correction is required.
+  Optional<std::string> Corr = None;
+
----------------
yvvan wrote:
> yvvan wrote:
> > ilya-biryukov wrote:
> > > Having a string replacement without an actual range to replace still 
> > > moves a lot of responsibility onto the clients. We should probably model 
> > > corrections after the fix-its for diagnostics:
> > > - replacements need to provide a range to be replaced, alongside with a 
> > > text for the replacement,
> > > - we should provide a list of edits to allow corrections that touch two 
> > > separate pieces of code.
> > > 
> > > For the fix-its in the diagnostics, see 
> > > [[https://reviews.llvm.org/source/clang/browse/cfe/trunk/tools/libclang/CXLoadedDiagnostic.h;327861$84
> > >  | CXLoadedDiagnostic.h]] for an interface exported via libclang and 
> > > [[https://reviews.llvm.org/source/clang/browse/cfe/trunk/include/clang/Basic/Diagnostic.h;327861$947|Diagnostic.h]]
> > >  for an interface exported in C++ API.
> > > WDYT?
> > I thought that fixits always exist separately from diagnostics. I will 
> > check this out, thanks.
> I've looked  into diagnostics and realized that i already use them here but 
> the are just not forwarded to completion results which is of source possible.
> 
> I have a draft with Optional<FixItHint> instead of Optional<std::string>
> It allows to use further both string and replaced/removed range and also 
> mostly uses the same code as already provided in this patch since I already 
> generated FixItHint for Diagnostics (line 4117 lib/Sema/SemaCodeComplete.cpp 
> in this patch)
> 
> Is that fine with you?
Sounds good. 
One caveat is that we should probably go with `std::vector<FixItHint>` instead 
of `Optional<FixItHint>`. This would mirror what `clang::Diagnostic` does.
"Dot to arrow" will only ever add one element there, but more intricate fixes 
might require more than a single edit.


https://reviews.llvm.org/D41537



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to