[PATCH] D117197: [clang-format] Add new option to support adding a space between Javascript Union and Intersection types
Björn Schäpers via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 13 02:09:25 PST 2022
HazardyKnusperkeks added inline comments.
================
Comment at: clang/lib/Format/TokenAnnotator.cpp:3475
return false;
+ if (Left.is(TT_JsTypeOperator) && Right.isTypeOrIdentifier() ||
+ (Left.isTypeOrIdentifier() || Left.is(TT_TemplateCloser)) &&
----------------
Be explicit on the binding.
================
Comment at: clang/lib/Format/TokenAnnotator.cpp:3524
return false;
if (Left.is(TT_JsTypeOperator) || Right.is(TT_JsTypeOperator))
return false;
----------------
mprobst wrote:
> MyDeveloperDay wrote:
> > mprobst wrote:
> > > shouldn't you change this line here?
> > You know I thought the same and this was where I first put the code change in, but this code doesn't seem to have any effect and I've been caught out by this before... (anyone else seen that?)
> >
> > I'm not sure if something has been changed, but I'm finding that often I add code into spaceRequiredBetween() and despite it being executed correctly it doesn't have the desired effect, which is why the code is in spaceRequiredBefore()
> Generally we put space between two operators. So this line must have some effect, as otherwise we'd always emit `A | B`. Given that, I think we need more debugging here to make this change - working around by some more code somewhere else doesn't seem like a good long term approach.
>
> Also, note that this is all in `spaceRequiredBefore`, right?
It's on my plan to refactor these 2 methods, because I think they can and should be made easier to understand and reason about.
So from my point of view one can accept this patch.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117197/new/
https://reviews.llvm.org/D117197
More information about the cfe-commits
mailing list