<div dir="ltr">We've had some discussion in the past about the right way for clang-format to support live-formatting cases.<div><br></div><div>IIRC clang-format doesn't have any current logic specific to this, instead having "format these ranges". That mode works well for formatting only changed lines and similar cases, but it may or may not be the right model for format-as-you-type.</div><div><br></div><div>In particular I don't think this model will ever give you useful autoindent, because if you were *checking in the code* instead of continuing to type, you'd want the leading spaces gone.</div><div>So we'd probably need to either:</div><div> - add a new "as-you-type" mode or entrypoint in clang-format's core, and carefully decide what new features it needs and how they should interact with clang-format's existing model, or</div><div> - hack something together outside of clang-format's core (possibly reusing its parser)</div><div><br></div><div>My sense is that the first is likely to give better results, e.g. in the reformatting braces cases the cursor/indentation and braces may interact.</div><div>Either way it might make sense to provide the result as a clang-format API, rather than building the logic inside clangd directly.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 6, 2018 at 8:27 PM Alex L via clangd-dev <<a href="mailto:clangd-dev@lists.llvm.org">clangd-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I would like to implement clang-format aware newline indentation in Clangd. It looks like Clangd only supports '}' trigger character for the 'onTypeFormatting' request. Would it make sense to extend it to support the newline character, and to insert appropriate indentation instead of reformatting the range in that case?</div><div><br></div><div>Cheers,</div><div>Alex</div></div>
_______________________________________________<br>
clangd-dev mailing list<br>
<a href="mailto:clangd-dev@lists.llvm.org" target="_blank">clangd-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev</a><br>
</blockquote></div>