Skip to content

Releases: JuanTorchia/gmm-haproxy-vscode

HAProxy Config v0.6.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:54
ff0c640

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.
Release notes for GitHub and VS Code Marketplace must be derived from this file.
See docs/release.md for changelog and release-note rules.

[Unreleased]

[0.6.0] — 2026-10-05

Changed

  • The extension no longer claims every .cfg and .conf file. It recognizes haproxy.cfg, haproxy.conf, haproxy*.cfg and files under haproxy/ by name, and switches other .cfg/.conf files to HAProxy only when they contain an HAProxy section header. Documents without any HAProxy section no longer receive diagnostics. Use files.associations to force a file (#72).
  • A language picked manually for a .cfg/.conf file is respected for the rest of the session, and the language server now starts only when an HAProxy file is opened.

[0.5.0] — 2026-10-05

Added

  • After regular use (5 distinct days with an HAProxy config open, at least 14 days after first use), the extension may ask for a Marketplace rating in a non-modal notification. "Later" postpones it 30 days; "Rate" or "Don't ask again" stop it for good, and it is never shown more than twice. It only appears in Microsoft VS Code, makes no network calls, and can be turned off with haproxy.ratingPrompt.enabled.

[0.4.0] — 2026-09-30

Added

  • Port numbers in bind and server addresses are now validated against the 1-65535 range. Port ranges (bind :8080-8090) and comma-separated address lists are each checked per address. Unix socket paths, fd@/unix@-style addresses, environment substitutions and bracket-less IPv6 literals are skipped rather than guessed at, and server ... :0 is accepted because 0 means "inherit the incoming port" on a server line.
  • Timeout values are now validated. A value written without a unit — timeout connect 5, which HAProxy reads as 5 milliseconds — is reported as a warning naming the real duration and the likely intent. A value HAProxy cannot parse at all, including a unit separated from its number by a space, is reported as an error. Covers the whole timeout family plus stats timeout, the tune.*-timeout settings and tcp-request/tcp-response inspect-delay.
  • HAProxy 3.2, 3.3 and 3.4 are now selectable validation targets, with directive metadata for the global, server and special-section keywords they introduce.
  • Selecting a HAProxy version that has reached end of life now reports a warning naming the EOL date and a supported upgrade target, so an unsupported validation target is visible while editing instead of at upgrade time.

Changed

  • The default validation version is now 3.2 (current recommended LTS), previously 3.1.
  • Version status descriptions in the haproxy.version setting and the README support table now distinguish LTS, critical-fixes-only, and end-of-life releases instead of labelling every version as supported.
  • Marketplace metadata and README now advertise the shipped HAProxy 3.4 support, safe rename, references, highlights, Outline navigation, and quick fixes, with GMM Hub as the product homepage.

Security

  • Updated the bundled client dependency tree to brace-expansion 5.0.12, resolving the high-severity denial-of-service advisories affecting versions through 5.0.11. The same safe override is enforced in the root tooling tree.

[0.3.0] — 2026-07-29

Added

  • Contributor and release documentation now require README and Marketplace demo GIFs/screenshots to stay current with editor-visible changes.
  • Public roadmap discussions and a v0.3.0 milestone now guide future work from user pain points to actionable issues.
  • Focused undefined-backend diagnostic demo config and GIF source for README/Marketplace visual updates.
  • Stick-table directive metadata coverage now includes documentation links for stick on, stick match, stick store-request, and stick store-response, plus focused validator coverage for stick-table usage.

Changed

  • Backend and server snippets now use production-ready health checks: HTTP/1.1 option httpchk with Host header, default-server check timings, and no misleading weight 1 default.

Security

  • Resolved a high-severity denial-of-service advisory in the brace-expansion build dependency (GHSA-mh99-v99m-4gvg) across both the root and client dependency trees. Build tooling only; no code shipped in the extension was affected.
  • The CI and publish security gates now audit the client and server manifests in addition to the root. npm audit only inspects the manifest it is pointed at, so a high-severity advisory previously reached client/package-lock.json without failing either gate.
  • Fixed the package contents guard, which was reporting success without inspecting anything. It called vsce ls without --no-dependencies, so it received no usable file list and passed on zero files — meaning credentials, keys, source maps or test files bundled into the extension would not have been caught. It now inspects the full package file list.

[0.2.1] — 2026-07-02

Added

  • Release and changelog policy documenting how GitHub Release notes and VS Code Marketplace notes must be derived from CHANGELOG.md.
  • VS Code package contents guard that blocks publishing when local credentials, keys, source maps, tests, or generated junk would be bundled.
  • Growth-oriented README and contributor guidance that explains the extension's value for DevOps/SRE users and points Marketplace users back to GitHub.

Fixed

  • Unit test script now targets unit suites explicitly after the Jest upgrade, keeping VS Code integration tests in the integration runner.

[0.2.0] — 2026-06-30 (@RevLaw)

Added

  • Named defaults sections: defaults http syntax supported — section name highlighted, from <name> clause highlighted as keyword + type; grammar, parser, and AST all updated
  • Go to Definition / Find References / Peek for all named cross-references:
    • Backends / listen — use_backend, default_backend, section headers
    • ACLs — acl <name> definitions ↔ if/unless conditions (including negated !name), section-scoped
    • Servers — server <name> ↔ use-server <name>, section-scoped
    • Named defaults — from <name> ↔ defaults <name> section
    • Cache — cache <name> ↔ http-request cache-use / http-response cache-store
    • Userlist — userlist <name> ↔ http_auth(<name>) / http_auth_group(<name>), precise sub-range
    • Resolvers — resolvers <name> ↔ resolvers param in server lines
    • Peers — peers <name> ↔ stick-table … peers <name>
  • Document highlights for all symbol types above (definition in green, references in blue)
  • Rename symbol (F2) for all symbol types — ACL negation !name renames name-only
  • Smart cross-reference completions: use_backend, default_backend, from, if/unless, use-server, cache-use, cache-store, resolvers, stick-table peers all offer IntelliSense lists from the current file
  • Cross-reference validation:
    • from <name> referencing undefined named defaults → Warning
    • use-server <name> with no matching server in section → Error
    • http-request cache-use / http-response cache-store with undefined cache → Warning
  • Unreferenced-symbol diagnostics:
    • Backend never referenced by use_backend/default_backend → Information
    • Named defaults never referenced by from → Information
    • ACL defined but never used in if/unless → Information
    • SPOE backends (name contains spoe) are exempt
  • HAProxy Enterprise (HAPEE) module support:
    • module-path, module-load, waf-load recognized as valid global directives
    • module-path directory existence validated → Warning if missing
    • module-load file existence validated against module-path → Warning if missing
    • waf-load file existence validated → Warning if missing

Changed

  • DefinitionProvider rewritten to delegate to shared symbolResolver
  • HaproxySection AST now carries nameToken and from token with source ranges
  • Mode inheritance now resolves correctly through named defaults from chains
  • symbolResolver moved to shared/ — eliminates cross-provider directory imports

[0.1.2] — 2026-04-06

Fixed

  • README images not showing on Marketplace (private repo — switched to absolute
    raw.githubusercontent.com URLs from public assets repo)
  • Fixed repository.url in package.json pointing to old gmm/ organization

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice ver...
Read more

HAProxy Config v0.5.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 12:10
2b25d7d

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.
Release notes for GitHub and VS Code Marketplace must be derived from this file.
See docs/release.md for changelog and release-note rules.

[Unreleased]

[0.5.0] — 2026-10-05

Added

  • After regular use (5 distinct days with an HAProxy config open, at least 14 days after first use), the extension may ask for a Marketplace rating in a non-modal notification. "Later" postpones it 30 days; "Rate" or "Don't ask again" stop it for good, and it is never shown more than twice. It only appears in Microsoft VS Code, makes no network calls, and can be turned off with haproxy.ratingPrompt.enabled.

[0.4.0] — 2026-09-30

Added

  • Port numbers in bind and server addresses are now validated against the 1-65535 range. Port ranges (bind :8080-8090) and comma-separated address lists are each checked per address. Unix socket paths, fd@/unix@-style addresses, environment substitutions and bracket-less IPv6 literals are skipped rather than guessed at, and server ... :0 is accepted because 0 means "inherit the incoming port" on a server line.
  • Timeout values are now validated. A value written without a unit — timeout connect 5, which HAProxy reads as 5 milliseconds — is reported as a warning naming the real duration and the likely intent. A value HAProxy cannot parse at all, including a unit separated from its number by a space, is reported as an error. Covers the whole timeout family plus stats timeout, the tune.*-timeout settings and tcp-request/tcp-response inspect-delay.
  • HAProxy 3.2, 3.3 and 3.4 are now selectable validation targets, with directive metadata for the global, server and special-section keywords they introduce.
  • Selecting a HAProxy version that has reached end of life now reports a warning naming the EOL date and a supported upgrade target, so an unsupported validation target is visible while editing instead of at upgrade time.

Changed

  • The default validation version is now 3.2 (current recommended LTS), previously 3.1.
  • Version status descriptions in the haproxy.version setting and the README support table now distinguish LTS, critical-fixes-only, and end-of-life releases instead of labelling every version as supported.
  • Marketplace metadata and README now advertise the shipped HAProxy 3.4 support, safe rename, references, highlights, Outline navigation, and quick fixes, with GMM Hub as the product homepage.

Security

  • Updated the bundled client dependency tree to brace-expansion 5.0.12, resolving the high-severity denial-of-service advisories affecting versions through 5.0.11. The same safe override is enforced in the root tooling tree.

[0.3.0] — 2026-07-29

Added

  • Contributor and release documentation now require README and Marketplace demo GIFs/screenshots to stay current with editor-visible changes.
  • Public roadmap discussions and a v0.3.0 milestone now guide future work from user pain points to actionable issues.
  • Focused undefined-backend diagnostic demo config and GIF source for README/Marketplace visual updates.
  • Stick-table directive metadata coverage now includes documentation links for stick on, stick match, stick store-request, and stick store-response, plus focused validator coverage for stick-table usage.

Changed

  • Backend and server snippets now use production-ready health checks: HTTP/1.1 option httpchk with Host header, default-server check timings, and no misleading weight 1 default.

Security

  • Resolved a high-severity denial-of-service advisory in the brace-expansion build dependency (GHSA-mh99-v99m-4gvg) across both the root and client dependency trees. Build tooling only; no code shipped in the extension was affected.
  • The CI and publish security gates now audit the client and server manifests in addition to the root. npm audit only inspects the manifest it is pointed at, so a high-severity advisory previously reached client/package-lock.json without failing either gate.
  • Fixed the package contents guard, which was reporting success without inspecting anything. It called vsce ls without --no-dependencies, so it received no usable file list and passed on zero files — meaning credentials, keys, source maps or test files bundled into the extension would not have been caught. It now inspects the full package file list.

[0.2.1] — 2026-07-02

Added

  • Release and changelog policy documenting how GitHub Release notes and VS Code Marketplace notes must be derived from CHANGELOG.md.
  • VS Code package contents guard that blocks publishing when local credentials, keys, source maps, tests, or generated junk would be bundled.
  • Growth-oriented README and contributor guidance that explains the extension's value for DevOps/SRE users and points Marketplace users back to GitHub.

Fixed

  • Unit test script now targets unit suites explicitly after the Jest upgrade, keeping VS Code integration tests in the integration runner.

[0.2.0] — 2026-06-30 (@RevLaw)

Added

  • Named defaults sections: defaults http syntax supported — section name highlighted, from <name> clause highlighted as keyword + type; grammar, parser, and AST all updated
  • Go to Definition / Find References / Peek for all named cross-references:
    • Backends / listen — use_backend, default_backend, section headers
    • ACLs — acl <name> definitions ↔ if/unless conditions (including negated !name), section-scoped
    • Servers — server <name> ↔ use-server <name>, section-scoped
    • Named defaults — from <name> ↔ defaults <name> section
    • Cache — cache <name> ↔ http-request cache-use / http-response cache-store
    • Userlist — userlist <name> ↔ http_auth(<name>) / http_auth_group(<name>), precise sub-range
    • Resolvers — resolvers <name> ↔ resolvers param in server lines
    • Peers — peers <name> ↔ stick-table … peers <name>
  • Document highlights for all symbol types above (definition in green, references in blue)
  • Rename symbol (F2) for all symbol types — ACL negation !name renames name-only
  • Smart cross-reference completions: use_backend, default_backend, from, if/unless, use-server, cache-use, cache-store, resolvers, stick-table peers all offer IntelliSense lists from the current file
  • Cross-reference validation:
    • from <name> referencing undefined named defaults → Warning
    • use-server <name> with no matching server in section → Error
    • http-request cache-use / http-response cache-store with undefined cache → Warning
  • Unreferenced-symbol diagnostics:
    • Backend never referenced by use_backend/default_backend → Information
    • Named defaults never referenced by from → Information
    • ACL defined but never used in if/unless → Information
    • SPOE backends (name contains spoe) are exempt
  • HAProxy Enterprise (HAPEE) module support:
    • module-path, module-load, waf-load recognized as valid global directives
    • module-path directory existence validated → Warning if missing
    • module-load file existence validated against module-path → Warning if missing
    • waf-load file existence validated → Warning if missing

Changed

  • DefinitionProvider rewritten to delegate to shared symbolResolver
  • HaproxySection AST now carries nameToken and from token with source ranges
  • Mode inheritance now resolves correctly through named defaults from chains
  • symbolResolver moved to shared/ — eliminates cross-provider directory imports

[0.1.2] — 2026-04-06

Fixed

  • README images not showing on Marketplace (private repo — switched to absolute
    raw.githubusercontent.com URLs from public assets repo)
  • Fixed repository.url in package.json pointing to old gmm/ organization

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice versa
    • Deprecated directives with migration hints (Warning)
    • Directives not available in the selected version (Error)
    • Invalid http-request, http-response, http-after-response, tcp-request, tcp-response action sub-keywords (Error)
    • use_backend / default_backend referencing an undefined backend (Warning)
  • Document formatting: 4-space indentation normalization
  • Snippets for all common HAProxy blocks (global, defaults, frontend, backend, listen, server, acl, httpchk, use_backend)
  • Multi-version support: 2.4 LTS, 2.6 LTS, 2.8 LTS, 3.0, 3.1...
Read more

HAProxy Config v0.4.0

Choose a tag to compare

@JuanTorchia JuanTorchia released this 30 Sep 05:23
b008937

What's Changed

  • feat(registry): support HAProxy 3.2, 3.3 and 3.4 and warn on EOL versions by @JuanTorchia in #64
  • feat(validation): validate timeout values and flag unit-less numbers by @JuanTorchia in #65
  • feat(validation): validate bind and server port ranges by @JuanTorchia in #66
  • test: cover rename, references and documentHighlight providers by @JuanTorchia in #67
  • chore(deps): resolve high-severity advisories by @JuanTorchia in #105
  • chore(release): prepare v0.4.0 and trusted publishing by @JuanTorchia in #106
  • ci: publish 0.4.0 with Marketplace PAT fallback by @JuanTorchia in #107

Full Changelog: v0.3.0...v0.4.0

HAProxy Config v0.3.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:58
c7a9733

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.
Release notes for GitHub and VS Code Marketplace must be derived from this file.
See docs/release.md for changelog and release-note rules.

[Unreleased]

[0.3.0] — 2026-07-29

Added

  • Contributor and release documentation now require README and Marketplace demo GIFs/screenshots to stay current with editor-visible changes.
  • Public roadmap discussions and a v0.3.0 milestone now guide future work from user pain points to actionable issues.
  • Focused undefined-backend diagnostic demo config and GIF source for README/Marketplace visual updates.
  • Stick-table directive metadata coverage now includes documentation links for stick on, stick match, stick store-request, and stick store-response, plus focused validator coverage for stick-table usage.

Changed

  • Backend and server snippets now use production-ready health checks: HTTP/1.1 option httpchk with Host header, default-server check timings, and no misleading weight 1 default.

Security

  • Resolved a high-severity denial-of-service advisory in the brace-expansion build dependency (GHSA-mh99-v99m-4gvg) across both the root and client dependency trees. Build tooling only; no code shipped in the extension was affected.
  • The CI and publish security gates now audit the client and server manifests in addition to the root. npm audit only inspects the manifest it is pointed at, so a high-severity advisory previously reached client/package-lock.json without failing either gate.
  • Fixed the package contents guard, which was reporting success without inspecting anything. It called vsce ls without --no-dependencies, so it received no usable file list and passed on zero files — meaning credentials, keys, source maps or test files bundled into the extension would not have been caught. It now inspects the full package file list.

[0.2.1] — 2026-07-02

Added

  • Release and changelog policy documenting how GitHub Release notes and VS Code Marketplace notes must be derived from CHANGELOG.md.
  • VS Code package contents guard that blocks publishing when local credentials, keys, source maps, tests, or generated junk would be bundled.
  • Growth-oriented README and contributor guidance that explains the extension's value for DevOps/SRE users and points Marketplace users back to GitHub.

Fixed

  • Unit test script now targets unit suites explicitly after the Jest upgrade, keeping VS Code integration tests in the integration runner.

[0.2.0] — 2026-06-30 (@RevLaw)

Added

  • Named defaults sections: defaults http syntax supported — section name highlighted, from <name> clause highlighted as keyword + type; grammar, parser, and AST all updated
  • Go to Definition / Find References / Peek for all named cross-references:
    • Backends / listen — use_backend, default_backend, section headers
    • ACLs — acl <name> definitions ↔ if/unless conditions (including negated !name), section-scoped
    • Servers — server <name> ↔ use-server <name>, section-scoped
    • Named defaults — from <name> ↔ defaults <name> section
    • Cache — cache <name> ↔ http-request cache-use / http-response cache-store
    • Userlist — userlist <name> ↔ http_auth(<name>) / http_auth_group(<name>), precise sub-range
    • Resolvers — resolvers <name> ↔ resolvers param in server lines
    • Peers — peers <name> ↔ stick-table … peers <name>
  • Document highlights for all symbol types above (definition in green, references in blue)
  • Rename symbol (F2) for all symbol types — ACL negation !name renames name-only
  • Smart cross-reference completions: use_backend, default_backend, from, if/unless, use-server, cache-use, cache-store, resolvers, stick-table peers all offer IntelliSense lists from the current file
  • Cross-reference validation:
    • from <name> referencing undefined named defaults → Warning
    • use-server <name> with no matching server in section → Error
    • http-request cache-use / http-response cache-store with undefined cache → Warning
  • Unreferenced-symbol diagnostics:
    • Backend never referenced by use_backend/default_backend → Information
    • Named defaults never referenced by from → Information
    • ACL defined but never used in if/unless → Information
    • SPOE backends (name contains spoe) are exempt
  • HAProxy Enterprise (HAPEE) module support:
    • module-path, module-load, waf-load recognized as valid global directives
    • module-path directory existence validated → Warning if missing
    • module-load file existence validated against module-path → Warning if missing
    • waf-load file existence validated → Warning if missing

Changed

  • DefinitionProvider rewritten to delegate to shared symbolResolver
  • HaproxySection AST now carries nameToken and from token with source ranges
  • Mode inheritance now resolves correctly through named defaults from chains
  • symbolResolver moved to shared/ — eliminates cross-provider directory imports

[0.1.2] — 2026-04-06

Fixed

  • README images not showing on Marketplace (private repo — switched to absolute
    raw.githubusercontent.com URLs from public assets repo)
  • Fixed repository.url in package.json pointing to old gmm/ organization

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice versa
    • Deprecated directives with migration hints (Warning)
    • Directives not available in the selected version (Error)
    • Invalid http-request, http-response, http-after-response, tcp-request, tcp-response action sub-keywords (Error)
    • use_backend / default_backend referencing an undefined backend (Warning)
  • Document formatting: 4-space indentation normalization
  • Snippets for all common HAProxy blocks (global, defaults, frontend, backend, listen, server, acl, httpchk, use_backend)
  • Multi-version support: 2.4 LTS, 2.6 LTS, 2.8 LTS, 3.0, 3.1
  • Status bar version indicator with QuickPick selector
  • HAProxy: Select Version and HAProxy: Restart Language Server commands
  • Server/default-server parameter completions
  • GitHub Actions CI workflow (lint, type-check, unit tests, integration tests, packaging)
  • Marketplace publish workflow triggered on v*.*.* tags

HAProxy Config v0.2.1

Choose a tag to compare

@github-actions github-actions released this 02 Jul 18:59

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.
Release notes for GitHub and VS Code Marketplace must be derived from this file.
See docs/release.md for changelog and release-note rules.

[Unreleased]

[0.2.1] — 2026-07-02

Added

  • Release and changelog policy documenting how GitHub Release notes and VS Code Marketplace notes must be derived from CHANGELOG.md.
  • VS Code package contents guard that blocks publishing when local credentials, keys, source maps, tests, or generated junk would be bundled.
  • Growth-oriented README and contributor guidance that explains the extension's value for DevOps/SRE users and points Marketplace users back to GitHub.

Fixed

  • Unit test script now targets unit suites explicitly after the Jest upgrade, keeping VS Code integration tests in the integration runner.

[0.2.0] — 2026-06-30 (@RevLaw)

Added

  • Named defaults sections: defaults http syntax supported — section name highlighted, from <name> clause highlighted as keyword + type; grammar, parser, and AST all updated
  • Go to Definition / Find References / Peek for all named cross-references:
    • Backends / listen — use_backend, default_backend, section headers
    • ACLs — acl <name> definitions ↔ if/unless conditions (including negated !name), section-scoped
    • Servers — server <name> ↔ use-server <name>, section-scoped
    • Named defaults — from <name> ↔ defaults <name> section
    • Cache — cache <name> ↔ http-request cache-use / http-response cache-store
    • Userlist — userlist <name> ↔ http_auth(<name>) / http_auth_group(<name>), precise sub-range
    • Resolvers — resolvers <name> ↔ resolvers param in server lines
    • Peers — peers <name> ↔ stick-table … peers <name>
  • Document highlights for all symbol types above (definition in green, references in blue)
  • Rename symbol (F2) for all symbol types — ACL negation !name renames name-only
  • Smart cross-reference completions: use_backend, default_backend, from, if/unless, use-server, cache-use, cache-store, resolvers, stick-table peers all offer IntelliSense lists from the current file
  • Cross-reference validation:
    • from <name> referencing undefined named defaults → Warning
    • use-server <name> with no matching server in section → Error
    • http-request cache-use / http-response cache-store with undefined cache → Warning
  • Unreferenced-symbol diagnostics:
    • Backend never referenced by use_backend/default_backend → Information
    • Named defaults never referenced by from → Information
    • ACL defined but never used in if/unless → Information
    • SPOE backends (name contains spoe) are exempt
  • HAProxy Enterprise (HAPEE) module support:
    • module-path, module-load, waf-load recognized as valid global directives
    • module-path directory existence validated → Warning if missing
    • module-load file existence validated against module-path → Warning if missing
    • waf-load file existence validated → Warning if missing

Changed

  • DefinitionProvider rewritten to delegate to shared symbolResolver
  • HaproxySection AST now carries nameToken and from token with source ranges
  • Mode inheritance now resolves correctly through named defaults from chains
  • symbolResolver moved to shared/ — eliminates cross-provider directory imports

[0.1.2] — 2026-04-06

Fixed

  • README images not showing on Marketplace (private repo — switched to absolute
    raw.githubusercontent.com URLs from public assets repo)
  • Fixed repository.url in package.json pointing to old gmm/ organization

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice versa
    • Deprecated directives with migration hints (Warning)
    • Directives not available in the selected version (Error)
    • Invalid http-request, http-response, http-after-response, tcp-request, tcp-response action sub-keywords (Error)
    • use_backend / default_backend referencing an undefined backend (Warning)
  • Document formatting: 4-space indentation normalization
  • Snippets for all common HAProxy blocks (global, defaults, frontend, backend, listen, server, acl, httpchk, use_backend)
  • Multi-version support: 2.4 LTS, 2.6 LTS, 2.8 LTS, 3.0, 3.1
  • Status bar version indicator with QuickPick selector
  • HAProxy: Select Version and HAProxy: Restart Language Server commands
  • Server/default-server parameter completions
  • GitHub Actions CI workflow (lint, type-check, unit tests, integration tests, packaging)
  • Marketplace publish workflow triggered on v*.*.* tags

HAProxy Config v0.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 15:19
ef76389

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.

[Unreleased]

[0.2.0] — 2026-06-30 (@RevLaw)

Added

  • Named defaults sections: defaults http syntax supported — section name highlighted, from <name> clause highlighted as keyword + type; grammar, parser, and AST all updated
  • Go to Definition / Find References / Peek for all named cross-references:
    • Backends / listen — use_backend, default_backend, section headers
    • ACLs — acl <name> definitions ↔ if/unless conditions (including negated !name), section-scoped
    • Servers — server <name> ↔ use-server <name>, section-scoped
    • Named defaults — from <name> ↔ defaults <name> section
    • Cache — cache <name> ↔ http-request cache-use / http-response cache-store
    • Userlist — userlist <name> ↔ http_auth(<name>) / http_auth_group(<name>), precise sub-range
    • Resolvers — resolvers <name> ↔ resolvers param in server lines
    • Peers — peers <name> ↔ stick-table … peers <name>
  • Document highlights for all symbol types above (definition in green, references in blue)
  • Rename symbol (F2) for all symbol types — ACL negation !name renames name-only
  • Smart cross-reference completions: use_backend, default_backend, from, if/unless, use-server, cache-use, cache-store, resolvers, stick-table peers all offer IntelliSense lists from the current file
  • Cross-reference validation:
    • from <name> referencing undefined named defaults → Warning
    • use-server <name> with no matching server in section → Error
    • http-request cache-use / http-response cache-store with undefined cache → Warning
  • Unreferenced-symbol diagnostics:
    • Backend never referenced by use_backend/default_backend → Information
    • Named defaults never referenced by from → Information
    • ACL defined but never used in if/unless → Information
    • SPOE backends (name contains spoe) are exempt
  • HAProxy Enterprise (HAPEE) module support:
    • module-path, module-load, waf-load recognized as valid global directives
    • module-path directory existence validated → Warning if missing
    • module-load file existence validated against module-path → Warning if missing
    • waf-load file existence validated → Warning if missing

Changed

  • DefinitionProvider rewritten to delegate to shared symbolResolver
  • HaproxySection AST now carries nameToken and from token with source ranges
  • Mode inheritance now resolves correctly through named defaults from chains
  • symbolResolver moved to shared/ — eliminates cross-provider directory imports

[0.1.2] — 2026-04-06

Fixed

  • README images not showing on Marketplace (private repo — switched to absolute
    raw.githubusercontent.com URLs from public assets repo)
  • Fixed repository.url in package.json pointing to old gmm/ organization

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice versa
    • Deprecated directives with migration hints (Warning)
    • Directives not available in the selected version (Error)
    • Invalid http-request, http-response, http-after-response, tcp-request, tcp-response action sub-keywords (Error)
    • use_backend / default_backend referencing an undefined backend (Warning)
  • Document formatting: 4-space indentation normalization
  • Snippets for all common HAProxy blocks (global, defaults, frontend, backend, listen, server, acl, httpchk, use_backend)
  • Multi-version support: 2.4 LTS, 2.6 LTS, 2.8 LTS, 3.0, 3.1
  • Status bar version indicator with QuickPick selector
  • HAProxy: Select Version and HAProxy: Restart Language Server commands
  • Server/default-server parameter completions
  • GitHub Actions CI workflow (lint, type-check, unit tests, integration tests, packaging)
  • Marketplace publish workflow triggered on v*.*.* tags

HAProxy Config v0.1.2

Choose a tag to compare

@github-actions github-actions released this 06 Apr 02:44

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.

[Unreleased]

[0.1.2] — 2026-04-06

Fixed

  • README images not showing on Marketplace (private repo — switched to absolute
    raw.githubusercontent.com URLs from public assets repo)
  • Fixed repository.url in package.json pointing to old gmm/ organization

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice versa
    • Deprecated directives with migration hints (Warning)
    • Directives not available in the selected version (Error)
    • Invalid http-request, http-response, http-after-response, tcp-request, tcp-response action sub-keywords (Error)
    • use_backend / default_backend referencing an undefined backend (Warning)
  • Document formatting: 4-space indentation normalization
  • Snippets for all common HAProxy blocks (global, defaults, frontend, backend, listen, server, acl, httpchk, use_backend)
  • Multi-version support: 2.4 LTS, 2.6 LTS, 2.8 LTS, 3.0, 3.1
  • Status bar version indicator with QuickPick selector
  • HAProxy: Select Version and HAProxy: Restart Language Server commands
  • Server/default-server parameter completions
  • GitHub Actions CI workflow (lint, type-check, unit tests, integration tests, packaging)
  • Marketplace publish workflow triggered on v*.*.* tags

HAProxy Config v0.1.1

Choose a tag to compare

@github-actions github-actions released this 06 Apr 02:23

Changelog

All notable changes to HAProxy Config extension will be documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.

[Unreleased]

[0.1.1] — 2026-04-06

Fixed

  • Document symbols (Outline panel) crashed with TypeError: Cannot read properties of undefined (reading 'range') — caused by using Number.MAX_SAFE_INTEGER as a character position, which exceeds the LSP uinteger max of 2147483647
  • option forceclose had no data entry — deprecation warning was never generated, making the quick fix silently unavailable
  • Added smoke test: every entry in SAFE_REPLACEMENTS is now verified to produce a real deprecation warning at test time

Changed

  • README updated with real screenshots for all features
  • Settings panel screenshot added to Configuration section
  • CI badge URL corrected to JuanTorchia/gmm-haproxy-vscode

[0.1.0] — 2026-04-05

Added

  • Initial release
  • HAProxy config parser: fault-tolerant AST with source ranges for every token
  • Syntax highlighting via TextMate grammar (section headers, directives, ACLs, IPs, timeouts, strings)
  • Context-aware autocompletion filtered by section type and mode http/mode tcp
  • Hover documentation: signature, description, valid sections, version badge, docs link
  • Live validation with version-aware diagnostics:
    • Unknown directives (Error)
    • Directive used in wrong section (Error)
    • HTTP-only directive in mode tcp section (Error), and vice versa
    • Deprecated directives with migration hints (Warning)
    • Directives not available in the selected version (Error)
    • Invalid http-request, http-response, http-after-response, tcp-request, tcp-response action sub-keywords (Error)
    • use_backend / default_backend referencing an undefined backend (Warning)
  • Document formatting: 4-space indentation normalization
  • Snippets for all common HAProxy blocks (global, defaults, frontend, backend, listen, server, acl, httpchk, use_backend)
  • Multi-version support: 2.4 LTS, 2.6 LTS, 2.8 LTS, 3.0, 3.1
  • Status bar version indicator with QuickPick selector
  • HAProxy: Select Version and HAProxy: Restart Language Server commands
  • Server/default-server parameter completions
  • GitHub Actions CI workflow (lint, type-check, unit tests, integration tests, packaging)
  • Marketplace publish workflow triggered on v*.*.* tags