Skip to content

Commit 99336f0

Browse files
committed
Add What's New part in version Releases
Fixes #465
1 parent a849f96 commit 99336f0

File tree

6 files changed

+181
-3
lines changed

6 files changed

+181
-3
lines changed
19.9 KB
Loading
53.3 KB
Loading

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
}
130130
],
131131
"configuration": {
132-
"title": "Fortran configuration",
132+
"title": "Fortran",
133133
"properties": {
134134
"fortran.provide.hover": {
135135
"type": "string",
@@ -354,6 +354,11 @@
354354
"category": "Fortran",
355355
"command": "fortran.analysis.rescanLinter",
356356
"title": "Rescan Linter paths"
357+
},
358+
{
359+
"category": "Fortran",
360+
"command": "fortran.analysis.showWhatsNew",
361+
"title": "Show What's New in this Modern Fortran version"
357362
}
358363
],
359364
"menus": {
@@ -369,6 +374,12 @@
369374
"command": "fortran.analysis.rescanLinter",
370375
"title": "Rescan Linter paths",
371376
"when": "!virtualWorkspace && shellExecutionSupported"
377+
},
378+
{
379+
"category": "Fortran",
380+
"command": "fortran.analysis.showWhatsNew",
381+
"title": "Show What's New in this Modern Fortran version",
382+
"when": "!virtualWorkspace && shellExecutionSupported"
372383
}
373384
]
374385
}

src/features/commands.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44

55
export const RestartLS = 'fortran.analysis.restartLanguageServer';
66
export const RescanLint = 'fortran.analysis.rescanLinter';
7+
export const WhatsNew = 'fortran.analysis.showWhatsNew';

updates/RELEASE_NOTES-v3.0.md

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
# What's New (v3.0) <!-- omit in toc -->
2+
3+
🎉 We have migrated to **The Fortran Programming Language** Organization 🎉!
4+
5+
- [Linting](#linting)
6+
- [Intel OneAPI compilers](#intel-oneapi-compilers)
7+
- [Preprocessor warnings](#preprocessor-warnings)
8+
- [Language Server `fortls`](#language-server-fortls)
9+
- [Multi Workspace and Single file support](#multi-workspace-and-single-file-support)
10+
- [Configuration file watcher](#configuration-file-watcher)
11+
- [Commands](#commands)
12+
- [Debug Hovering](#debug-hovering)
13+
- [Deprecations](#deprecations)
14+
- [Visual Studio Code Extensions](#visual-studio-code-extensions)
15+
- [Visual Studio Code Settings](#visual-studio-code-settings)
16+
- [Other](#other)
17+
18+
## Linting
19+
20+
The linting diagnostics have been improved, with supported being added for
21+
the Intel's compilers, allowing custom compiler root paths and additional
22+
diagnostic messages such as preprocessor warnings.
23+
24+
### Intel OneAPI compilers
25+
26+
Intel compilers are now supported set the following options in settings.json:
27+
28+
```json
29+
{
30+
"fortran.linter.compiler": "ifort",
31+
"fortran.linter.compilerPath": "/path/to/intel/compilers/bin/ifort" // or ifx
32+
}
33+
```
34+
35+
![Intel Linting Diagnostics](../assets/docs/lint-intel-diagnostics.png)
36+
37+
### Preprocessor warnings
38+
39+
Preprocessor warnings and errors are now properly supported during linting
40+
41+
![Linting Diagnostics Preprocessor](../assets/docs/lint-intel-diagnostics-preproc.png)
42+
43+
## Language Server `fortls`
44+
45+
A lot of the higher level features like Hover, Go-To, Peeking definitions and
46+
finding References are provided by Language Servers. _**Modern Fortran**_ now natively
47+
supports the [`fortls`](https://gnikit.github.io/fortls) Language Server.
48+
49+
_**Modern Fortran**_ will prompt you to install `fortls` with `pip` upon initialization if
50+
not detected in your system.
51+
52+
You can select a custom path to a `fortls` installation by setting the setting
53+
54+
```json
55+
{
56+
"fortran.fortls.path": "/path/to/fortls"
57+
}
58+
```
59+
60+
Some options for `fortls` have explicit settings through _**Modern Fortran**_ settings,
61+
like `fortran.fortls.notifyInit` and `fortran.fortls.incrementalSync`. You can
62+
find a complete list of the explicit options in the `Feature Contributions` tab
63+
of the _**Modern Fortran**_ extension.
64+
65+
In case there is no explicit setting for a `fortls` option, you can pass the
66+
option to `fortls` through
67+
68+
```json
69+
{
70+
"fortran.fortls.extraArgs": ["--nthreads=8", "--autocomplete_name_only"]
71+
}
72+
```
73+
74+
For more information about `fortls` configuration options see the
75+
[`fortls` Documentation](https://gnikit.github.io/fortls/configuration.html)
76+
77+
### Multi Workspace and Single file support
78+
79+
It is now possible to have Language Server support with `fortls` for multiple
80+
workspaces and single files. Simply open a standalone Fortran file and `fortls` or add a
81+
folder to the workspace.
82+
83+
### Configuration file watcher
84+
85+
There are 2 ways of passing options to `fortls` either through the VS Code
86+
`settings.json` or through the `fortls` configuration file.
87+
`fortls` is listening for changes on both types of files and will pass them to the server
88+
without having to restart.
89+
90+
> Warning: This feature is experimental if changes do not take effect you
91+
> can always restart `fortls` through the Command Palette.
92+
93+
## Commands
94+
95+
Two convenience commands have been added, accessible from the Command Palette with
96+
the prefix `Fortran:`
97+
98+
- Fortran: Restart the Fortran Language Server
99+
- Fortran: Rescan Linter paths
100+
101+
## Debug Hovering
102+
103+
Debugging functionality was previously limited when it came to nested
104+
user-defined types and hovering. This issue has been resolved and full
105+
information about an object can be shown in the hover messages while debugging.
106+
107+
![Debugging Hover](../assets/gif/gdb_ani.gif)
108+
109+
## Deprecations
110+
111+
### Visual Studio Code Extensions
112+
113+
Due to the plethora of changes to the _**Modern Fortran**_ extension the following
114+
VS Code extensions are redundant and no longer compatible with _**Modern Fortran**_:
115+
116+
- [FORTRAN IntelliSense](https://marketplace.visualstudio.com/items?itemName=hansec.fortran-ls): provided an interface for a now deprecated Language Server. It has been superseeded by `fortls` nad its native integration with _**Modern Fortran**_.
117+
- [Fortran Breakpoint Support](https://marketplace.visualstudio.com/items?itemName=ekibun.fortranbreaker): is redundant and deprecated, _**Modern Fortran**_ has native breaking point support.
118+
- [fortran](https://marketplace.visualstudio.com/items?itemName=Gimly81.fortran): is redundant and deprecated, _**Modern Fortran**_ has native support for Syntax Highlighting.
119+
- External Formatters like [vscode-modern-fortran-formatter](https://marketplace.visualstudio.com/items?itemName=yukiuuh.vscode-modern-fortran-formatter) are redundant and deprecated, _**Modern Fortran**_ has native formatter support for `fprettify` and `findent`.
120+
121+
### Visual Studio Code Settings
122+
123+
The following settings have been deprecated are replaced by the following:
124+
125+
- `includePaths` in favour of `linter.includePaths`
126+
- `gfortranExecutable` in favour of `linter.compilerPath`
127+
- `linterEnabled` in favour of `linter.compiler == Disabled`
128+
- `linterExtraArgs` in favour of `linter.extraArgs`
129+
- `linterModOutput` in favour of `linter.modOutput`
130+
- `ProvideSymbols` in favour of `provide.symbols`
131+
- `symbols`
132+
- `provideHover` in favour of `provide.hover`
133+
- `provideCompletion` in favour of `provide.autocomplete`
134+
135+
## Other
136+
137+
There are a number of other bug fixes, feature enhancements and minor
138+
improvements that have taken place in both the extension and the syntax highlighting. A brief list is shown below:
139+
140+
- Changed need for matching begin-end scope names, in the following constructs:
141+
Functions, Modules, Programs, Module Procedures, Subroutines, Submodules.
142+
For a more detailed explanation as to why see the issue
143+
([#278](https://github.com/fortran-lang/vscode-fortran-support/issues/278))
144+
- Changed `linter.compilerPath` to use the full path to the compiler instead of the root
145+
([#500](https://github.com/fortran-lang/vscode-fortran-support/issues/500))
146+
- Merged Language Server's log channel to Modern Fortran's log channel
147+
- Fixed `error stop variable` syntax highlighting
148+
([#486](https://github.com/fortran-lang/vscode-fortran-support/issues/486))
149+
- Fixed issue with linter cache containing outdated folders
150+
([#464](https://github.com/fortran-lang/vscode-fortran-support/issues/464))
151+
- Fixed slow performance of very long lines by using a different solution for
152+
([#207](https://github.com/fortran-lang/vscode-fortran-support/issues/207))
153+
([#309](https://github.com/fortran-lang/vscode-fortran-support/issues/309))
154+
- Fixes linter activation from `Disabled` to some compiler `X` without having
155+
to restart the extension
156+
([#296](https://github.com/fortran-lang/vscode-fortran-support/issues/296))
157+
- Fixes nopass pointer erroneous syntax highlighting
158+
([#318](https://github.com/fortran-lang/vscode-fortran-support/issues/318))
159+
- Fixes `%` accessor highlighting for type-bound subroutines
160+
([#325](https://github.com/fortran-lang/vscode-fortran-support/issues/325))
161+
- Fixes `fortls` not spawning when `ignoreWarning` was set to true
162+
([#365](https://github.com/fortran-lang/vscode-fortran-support/issues/365))
163+
- Fixes formatting on Windows (needed .exe extension)
164+
([#354](https://github.com/fortran-lang/vscode-fortran-support/issues/354))
165+
- Fixes `onSave` formatting errors
166+
([#364](https://github.com/fortran-lang/vscode-fortran-support/issues/364))

0 commit comments

Comments
 (0)