Skip to content

Release 0.8.7 #619

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

Merged
merged 8 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions .github/workflows/add-issue-to-project.yml

This file was deleted.

8 changes: 8 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,11 @@ jobs:
SOLIDITY_GOOGLE_TRACKING_ID: "dummy-value"
SOLIDITY_SENTRY_DSN: "dummy-value"
run: npm run package

- name: Publish code coverage
uses: codecov/codecov-action@v4.2.0
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ./server/coverage/lcov.info # __LCOV_RESULTS_INFO_FILE__ (keep in sync)
disable_search: true
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ The `vsix` will contain all files in the repo at the time of packaging, but this

The [VSCode Marketplace](https://marketplace.visualstudio.com/vscode) displays the `README.md` file as the landing page for the extension, the same readme is used in the extensions tab.

To separate out the repo readme from the marketing readme, we have two. The repo readme is our actual [README.md](./README.md), while the extension readme is contained in [EXTENSION.md](./EXTENSION.md). During packaging [EXTENSION.md](./EXTENSION.md) is swapped in for [README.md](./README.md). Changes to test displayed on the extensions landing page/extension tab should be made to [EXTENSION.md](./EXTENSION.md).
To separate out the repo readme from the extension readme, we have two of them: the repo readme is our actual [README.md](./README.md), while the extension readme is contained in [client/README.md](./client/README.md). Changes to the extension's landing page/extension tab should be made in [client/README.md](./client/README.md).

## Publishing

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ Go to [CONTRIBUTING.md](./CONTRIBUTING.md) to learn about how to set up the exte

[Hardhat Support Discord server](https://hardhat.org/discord): for questions and feedback.

[Follow Hardhat on Twitter.](https://twitter.com/HardhatHQ)
[Follow Hardhat on X (formerly Twitter)](https://x.com/HardhatHQ)
20 changes: 12 additions & 8 deletions client/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,35 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## 0.8.7 - 2024-10-25

- Fix for Solidity highlighting in Markdown files ([#616](https://github.com/NomicFoundation/hardhat-vscode/pull/616))

## 0.8.6 - 2024-09-16

### Added

- Turn on Slang features unconditionally ([598](https://github.com/NomicFoundation/hardhat-vscode/pull/598))
- Turn on Slang features unconditionally ([#598](https://github.com/NomicFoundation/hardhat-vscode/pull/598))

## 0.8.5 - 2024-08-15

### Added

- Bump Slang to 0.16.0 ([588](https://github.com/NomicFoundation/hardhat-vscode/pull/588))
- Bump Slang to 0.16.0 ([#588](https://github.com/NomicFoundation/hardhat-vscode/pull/588))

## 0.8.4 - 2024-06-24

### Added

- add markdown syntax support ([575](https://github.com/NomicFoundation/hardhat-vscode/pull/575))
- Bump Slang to 0.15.1 ([578](https://github.com/NomicFoundation/hardhat-vscode/pull/578))
- add markdown syntax support ([#575](https://github.com/NomicFoundation/hardhat-vscode/pull/575))
- Bump Slang to 0.15.1 ([#578](https://github.com/NomicFoundation/hardhat-vscode/pull/578))

## 0.8.3 - 2024-05-08

### Added

- add support for region comments ([526](https://github.com/NomicFoundation/hardhat-vscode/pull/526))
- Bump Slang to 0.14.2 ([565](https://github.com/NomicFoundation/hardhat-vscode/pull/565))
- add support for region comments ([#526](https://github.com/NomicFoundation/hardhat-vscode/pull/526))
- Bump Slang to 0.14.2 ([#565](https://github.com/NomicFoundation/hardhat-vscode/pull/565))

## 0.8.2 - 2024-04-22

Expand All @@ -40,7 +44,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### Fixed

- Fix packaging file inclusions on the language server ([558](https://github.com/NomicFoundation/hardhat-vscode/issues/558))
- Fix packaging file inclusions on the language server ([#558](https://github.com/NomicFoundation/hardhat-vscode/issues/558))

## 0.8.0 - 2024-04-17

Expand Down Expand Up @@ -68,7 +72,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

- Support absolute path remappings on foundry projects ([#476](https://github.com/NomicFoundation/hardhat-vscode/issues/476))
- Stop Truffle initialization errors escaping adapter context ([#473](https://github.com/NomicFoundation/hardhat-vscode/issues/473))
- Fix sync `forge fmt` calls that block the langauge server ([#462](https://github.com/NomicFoundation/hardhat-vscode/issues/462))
- Fix sync `forge fmt` calls that block the language server ([#462](https://github.com/NomicFoundation/hardhat-vscode/issues/462))
- Fix node 14 support for the language server ([#461](https://github.com/NomicFoundation/hardhat-vscode/issues/461))

## 0.7.0 - 2023-04-26
Expand Down
2 changes: 1 addition & 1 deletion client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"displayName": "Solidity",
"description": "Solidity and Hardhat support by the Hardhat team",
"license": "MIT",
"version": "0.8.6",
"version": "0.8.7",
"private": true,
"main": "./out/extension.js",
"module": "./out/extension.js",
Expand Down
51 changes: 37 additions & 14 deletions client/scripts/bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ async function main() {
path.join(".", "syntaxes", "solidity.json"),
path.join(syntaxes, "solidity.json")
);
fs.copyFileSync(
path.join(".", "syntaxes", "solidity-markdown-injection.json"),
path.join(syntaxes, "solidity-markdown-injection.json")
);

const { warnings, errors } = await esbuild.build({
entryPoints: {
Expand Down Expand Up @@ -165,15 +169,24 @@ async function main() {
process.exit(1);
}

console.log("> Fetching external server dependencies...")
const serverPackageFile = path.join(__dirname, "..", "..", "server", "package.json");
const serverPackageJson = JSON.parse(fs.readFileSync(serverPackageFile, "utf8"));
console.log("> Fetching external server dependencies...");
const serverPackageFile = path.join(
__dirname,
"..",
"..",
"server",
"package.json"
);
const serverPackageJson = JSON.parse(
fs.readFileSync(serverPackageFile, "utf8")
);
const serverDeps = serverPackageJson?.dependencies;
if (!serverDeps) {
console.error("Error: Could not find server dependencies");
process.exit(1);
}
const solidityAnalyzerVersion = serverDeps["@nomicfoundation/solidity-analyzer"];
const solidityAnalyzerVersion =
serverDeps["@nomicfoundation/solidity-analyzer"];
const slangVersion = serverDeps["@nomicfoundation/slang"];

fs.writeFileSync(
Expand All @@ -183,16 +196,26 @@ async function main() {
version: "0.0.1",
dependencies: {
"@nomicfoundation/solidity-analyzer": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-darwin-arm64": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-win32-arm64-msvc": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-arm64-musl": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-win32-ia32-msvc": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-darwin-x64": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-win32-x64-msvc": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-x64-gnu": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-x64-musl": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-freebsd-x64": solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-darwin-arm64":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-win32-arm64-msvc":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-arm64-musl":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-win32-ia32-msvc":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-darwin-x64":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-win32-x64-msvc":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-x64-gnu":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-linux-x64-musl":
solidityAnalyzerVersion,
"@nomicfoundation/solidity-analyzer-freebsd-x64":
solidityAnalyzerVersion,

"@nomicfoundation/slang": slangVersion,
"@nomicfoundation/slang-darwin-arm64": slangVersion,
Expand Down
4 changes: 2 additions & 2 deletions coc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@nomicfoundation/coc-solidity",
"description": "Solidity and Hardhat support for coc.nvim",
"license": "MIT",
"version": "0.8.6",
"version": "0.8.7",
"author": "Nomic Foundation",
"repository": {
"type": "git",
Expand All @@ -29,7 +29,7 @@
"clean": "rimraf out .nyc_output coverage *.tsbuildinfo *.log"
},
"dependencies": {
"@nomicfoundation/solidity-language-server": "0.8.6"
"@nomicfoundation/solidity-language-server": "0.8.7"
},
"devDependencies": {
"coc.nvim": "^0.0.80",
Expand Down
4 changes: 2 additions & 2 deletions docs/codebase.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ The low level connection between the two components can be established through d

The lifecycle begins by the client establishing a connection to the server, and sending an `initialize` request. This specifies what capabilities the client has, and in the response the server specifies what capabilities it supports as well. This serves as a handshake.

After intialization, messages start being exchanged between the components. Some messages are sent implicitly by the editor, for instance file change events (`textDocument/didOpen`, `textDocument/didChange`), and others are originated by explicit action by the user. An example would be requesting the location of the typedefinition for the code under the cursor with a `textDocument/typeDefinition`.
After initialization, messages start being exchanged between the components. Some messages are sent implicitly by the editor, for instance file change events (`textDocument/didOpen`, `textDocument/didChange`), and others are originated by explicit action by the user. An example would be requesting the location of the typedefinition for the code under the cursor with a `textDocument/typeDefinition`.

It's useful to get familiar with the data structures that the protocol uses. These involve text document identifiers, positions, ranges, text edits, and many more. A full list can be found [here](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#basicJsonStructures).

Expand Down Expand Up @@ -131,7 +131,7 @@ During the initialization phase of the server, we run the indexing process. This
- Scanning workspace folders for projects: each registered project adapter is called to scan a list of directories and return project instances.
- Initializing projects: each found project is initialized sequentially. Initialization logic is specific to each project adapter.
- Scanning for solidity files: `fast-glob` is used to find all `.sol` files.
- Associating each solidity file to a project: for each found file, each project instance is tested to check wether the file belongs to them or not. Project adapters have priorities to determine which one should be assigned in case multiple of them claim that a file belongs to them. A file will be given the default `projectless` project instance if no other project claims the file.
- Associating each solidity file to a project: for each found file, each project instance is tested to check whether the file belongs to them or not. Project adapters have priorities to determine which one should be assigned in case multiple of them claim that a file belongs to them. A file will be given the default `projectless` project instance if no other project claims the file.
- Analyzing local source files: from the previous step, some source files are marked as local. This concept means that they are the project's main source files, and not libraries or vendored files. Only local sources are initially analyzed for optimization purposes, since analysis takes up significant amount of time. It's important to note that analysis crawls the files, so libraries are also analyzed if they are imported directly or indirectly from a local source. Non-local files will be analysed as soon as a language server action happens against them.

### Validation
Expand Down
Loading
Loading