-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace rework with master #165
Comments
compilation-support has mostly been done by @jesse-black with some additional maintenance work done by me and one fix by @binki. @binki & @jesse-black : Have you guys signed FSF copyright assignments? We're considering trying to hand this mode over back to core GNU Emacs, and need to know just how much of the existing code we have is compatible with their legal regime. |
@josteink However, adding compilation support doesn't have to be a blocking factor in merging to master. If for some reason it can't be included in emacs we can remove it then. Maybe we also skip imenu support altogether? |
To be honest, Leaving that out is IMO not an option.
|
Yeah, I meant that it is no problem at all to keep it. We can postpone the fsf-assignment thing was what I was referring to. I'll add in the |
I dimly remember having written the new imenu code and have a FSF copyright assignment. I don't see any harm including that basic version (compared to the code it used to be before I've replaced it). edit: I've remembered wrong: #121 (comment) |
I think I'd rather not keep code only for the sake of keeping it. I think I'll remove it, and if enough people complain on here I'll bring it back in. |
That link still brings up the issue of lexical scope. With a new, simpler/smaller code base it actually sounds doable. Should we aim for that? |
It was lexical until yesterday. The small patch I mentioned gave warnings when not dynamic scope. I want to remove it, though, but lambda indentation does not work without it. It is only one function keeping us from lexical scope. |
Correction: It is lexical again now. Added to top comment as well. |
Alright, if both of you prefer to do away with it, wouldn't it make sense then to remove the imenu tests? Most build failures are their fault. |
Absolutely. No need to have tests for stuff we don't currently deliver. I just don't think the CI has been a priority at all until now :) |
Compilation support added and no, I haven't looked at CI yet :) |
I guess CI will get there in due time, if you make a PR for this to replace |
Yeah! Most tests are passing now, however, there are some edge cases in indentation-tests that I need to work on 👍 |
Oh yeah. Only test failing now is the compiler directives thing, which was kinda annoying/tricky to get right. That said:
Considering the amount of issues we've had trying to get fontification tested properly, I wouldn't find that surprising in the least. |
I can do the copyright assignment if someone can point me where to start |
It's a bit involved, but nothing impossible: See this link for details. |
This commit needs fsf paperwork from @jessie-black and @binki (github)
I will try to start working on the copyright assignment. |
@josteink I've removed the monkey patches from the code, so there is only csharp mode related code here. However, that means that you have to patch emacs instead (...sorry) Steps to test now:
yield return new InnerA {
PropA = 1,
PropB = 2
};
yield return new InnerA.InnerB { // This one is incorrect.
PropA = 1,
PropB = 2
}; What happens here is actually that the Ok, whats next? Since it seems we are getting paperwork from @jesse-black and @binki, and that takes a little time, I think we should try to get that patch added to emacs 28. If that happens we have two options:
What do you think? diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 4e336c0a06..b415e4b821 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -12011,7 +12011,8 @@ c-looking-at-inexpr-block
(> (point) closest-lim))
(not (bobp))
(progn (backward-char)
- (looking-at "[]).]\\|\\w\\|\\s_"))
+ (or (looking-at "[\]\).]\\|\w\\|\\s_")
+ (looking-at ">")))
(c-safe (forward-char)
(goto-char (scan-sexps (point) -1))))
@@ -12085,7 +12086,11 @@ c-looking-at-inexpr-block
(setq passed-bracket-pairs 1)
(setq bracket-pos (point))))
'maybe)
- 'maybe))))
+ 'maybe)
+ (if (or (looking-at "([[:alnum:][:space:]_,]*)[ \t\n]*=>[ \t\n]*{")
+ (looking-at "[[:alnum:]_]+[ \t\n]*=>[ \t\n]*{"))
+ ;; If we are at a C# lambda header
+ (cons 'inexpr (point))))))
(if (eq res 'maybe)
(cond
|
Thanks! Found it and fixed it in 403af83. In the end I should really go through every |
Amazing! Confirmed works.
This is approaching production-quality as far as I'm concerned.
No need to be sorry. Getting rid of monkey-patching has been a long-standing goal.
Yeah that works exactly like you said.
I'll be honest and say that's an edge-case. It's not crucial for me to get this fixed before merging to master.
I haven't worked with this in any detail for a good time now. I really can't tell either.
Definitely agreed. And I see you are already proposing that. You have my full support!
It's Emacs. It's GNU. IMO the end goal should be to get Until we have it mainlined I think the best option is the first you propose:
If we get this mainlined, there will still probably be a need for But that's still a bit far off. Let's take one thing at a time? |
Rework is getting ready, and I think we are reaching the point where it fixes more bugs than it causes feature regressions. Maybe it is time to replace
master
?What is missing:
What is working
We have a goal of getting this merged into emacs core, so that maintaining this will be tighter coupled with emacs itself.
What else is missing?
The text was updated successfully, but these errors were encountered: