Skip to content

Releases: vaclav/mpscs

v1.10

05 Nov 21:03
Compare
Choose a tag to compare
Implement attributes

Includes regular and global attributes. The relevant concepts have an
initially empty and hidden list of attribute sections. These become
visible upon adding the first section with an intention, after which
more can be added with the keyboard as usual. Global attribute sections
always specify one of two targets as required by the C# specification,
while for regular attribute sections one can optionally be added with an
intention and the available targets depend on the context.

Some logic is also provided to validate attribute argument lists and
constrain the properties available for named arguments, but typesystem
support is needed for the numerous additional requirements.

Finally, several abstract and interface concepts have been added to help
manage the common behaviours.

v1.9

26 Oct 21:45
Compare
Choose a tag to compare
Implement checked and unchecked statements

Surprisingly similar to the other statements!

v1.8

26 Oct 06:39
Compare
Choose a tag to compare
Improve handling of generic parameters

The AddGenericParameterListSection transformation menu is now only
included if the referenced type is generic, which is inferred using a
new method. A descriptive text has been added to the transformation
menus for generic type lists and some changes were made to their editors
to remove extra spaces from the textgen output.

v1.7

23 Oct 21:12
Compare
Choose a tag to compare
Implement yield statements

Includes the ability to add "yield" to and remove it from existing break
and return statements.

v1.6

20 Oct 19:10
Compare
Choose a tag to compare
Implement lock statements

Includes the ability to remove just the "lock (...)" part.

v1.5

19 Oct 06:46
Compare
Choose a tag to compare
Refactor implicit variable declarations

As with regular local variables, declarations and statements are now
separate concepts, to allow implicit variables to be declared in the
resource-acquisition part of using statements.

v1.4

15 Oct 05:14
Compare
Choose a tag to compare
Implement lambda expressions

The implementation deviates from the specification by allowing explicit
and implicit parameters to be mixed for ease of editing. This is still
marked as an error and intentions are provided to convert between the
types. Lambdas can be created and manipulated in various ways:
- An async lambda can be created directly from the substitute menu or
  via a left transform on a regular lambda;
- An expression body can always be converted to a block body;
- A block body can be converted to an expression body if it contains
  only empty or return statements.

In addition, FormalParameters now have a substitution menu that allows
easy creation from any INonArrayType.

v1.3

04 Oct 16:52
Compare
Choose a tag to compare
Drop obsolete cast from migration

v1.2: Implement using directives

25 Sep 15:16
Compare
Choose a tag to compare
New concepts have been added to represent both directives specified by
the C# 5.0 grammar: using-alias-directive and using-namespace-directive.

Using directives are now contained in the new abstract concept
NamespaceContainer, which also provides their editor component. This
obsoletes the UsingDirectiveList concept, whose usages have been marked
as deprecated. An empty list of directives is hidden in order to keep
the editor clean, so NamespaceContainer has two intentions for adding
new directives.

The using alias is practically usable as a referenceable type, but is
incorrectly shown in its own completion menu and those of its siblings.
The namespace directive uses the new NamespaceReference to constrain its
completion menu, but is otherwise cosmetic: the rest of the language is
not yet aware of the imported scopes. For example, references are still
created with fully qualified names, though users could now choose to
shorten these afterwards.

v1.1

24 Sep 05:19
8ceb83c
Compare
Choose a tag to compare
remove outdated changelog