Closed mathias-lang-sociomantic closed 3 years ago
Incorrect indentation still happens for me. Can you point to a place in d-mode.el that controls this behaviour?
Incorrect indentation still happens for me.
Please don't forget to configure the offset according to your preference. (C-c C-o
)
Can you point to a place in d-mode.el that controls this behaviour?
Please see d-in-knr-argdecl
.
Please see
d-in-knr-argdecl
.
Thanks! Would it be possible to have
(c-set-offset 'knr-argdecl-intro 0)
be called automatically upon entering of d-mode
, provided d-mode.el
has been loaded?
I now currently have
(c-add-style "D"
'("stroustrup"
(c-offsets-alist
(innamespace . -)
(inline-open . 0)
(inher-cont . c-lineup-multi-inher)
(template-args-cont . +)
(substatement-open . 0)
(statement-block-intro . +)
(arglist-cont-nonempty (d-lineup-cascaded-calls
c-lineup-gcc-asm-reg
c-lineup-arglist))
(statement-cont . d-lineup-cascaded-calls)
(case-label . 0) ;no indentation
(knr-argdecl-intro . 0) ;no indentation for template restrictions and in contracts
)))
which I believe matches the recommend D formatting rules.
What about adding this to d-mode.el?
I think the proper way is something like:
(c-add-style
"My D style"
'((c-offsets-alist . ((knr-argdecl-intro . 0)
;; ...
))))
(defun my/d-mode-hook ()
(c-set-style "My D style"))
(add-hook 'd-mode-hook 'my/d-mode-hook)
What about adding this to d-mode.el?
Sounds good. It should mention that it attempts to implement https://dlang.org/dstyle.html as closely as possible.
What about adding this to d-mode.el?
Sounds good. It should mention that it attempts to implement https://dlang.org/dstyle.html as closely as possible.
Do you want to add it or shall I?
Yes, please submit a pull request.
If you could include a test that covers all of the offset settings, that would be great.
I believe the setting should be activated by default.
Not by default I think (unless that's common practice for cc-mode-based major modes? but even then I'm not sure about changing the current default), but we can document how to enable it in the README.
The following is the indentation I get for contracts:
My settings are:
But it happens when commenting those lines out too.