Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
9e3e137
Add architecture premise
cds-amal Oct 10, 2025
e19cb22
feat(core): add validation infrastructure and variable extraction
cds-amal Sep 28, 2025
35d2dc8
test: add test utilities for runbook validation and execution
cds-amal Sep 28, 2025
7a41d9e
Unify location tracking types across runbook collector and validation
cds-amal Oct 9, 2025
39dfd32
Migrate validation system to use shared SourceMapper
cds-amal Oct 9, 2025
5300d2d
Fix validation test failures
cds-amal Oct 9, 2025
0cfdddd
Refactor: eliminate DRY violations and add Position::Default
cds-amal Oct 9, 2025
fb5326f
Add C4 annotations and enhance documentation
cds-amal Oct 9, 2025
ad4af79
Fix doctest import path for re-exported types
cds-amal Oct 9, 2025
8924314
Enhance txtx-addon-kit Diagnostic with validation fields
cds-amal Oct 10, 2025
d1da010
feat(cli): add lint command with validation rules
cds-amal Sep 28, 2025
0495526
Wire lint command into CLI
cds-amal Oct 9, 2025
bf87839
test: add linter test fixtures and integration tests
cds-amal Oct 9, 2025
47ec7b2
feat(arch): add Rust utility to generate C4 diagrams from code annota…
cds-amal Oct 3, 2025
4111e7f
chore: add build configuration and development tooling
cds-amal Sep 28, 2025
7476305
Remove LSP-specific recipes from justfile
cds-amal Oct 9, 2025
a6c5b61
Add linter and development documentation
cds-amal Oct 9, 2025
9ee3098
Add architecture overview and linter ADRs
cds-amal Oct 10, 2025
ec21ca8
Update linter to use enhanced Diagnostic type
cds-amal Oct 10, 2025
fd89b58
Restore old LSP dependencies for base branch compatibility
cds-amal Oct 9, 2025
f953763
Add LSP documentation
cds-amal Oct 9, 2025
fc4c505
feat(lsp): add Language Server Protocol implementation
cds-amal Sep 28, 2025
a4d7e1a
test: add LSP integration test builder
cds-amal Oct 9, 2025
5938df8
Fix LSP build and integration
cds-amal Oct 9, 2025
a269d35
Update LSP to use enhanced Diagnostic type
cds-amal Oct 10, 2025
d264e9e
Fix LSP test to use enhanced Diagnostic type
cds-amal Oct 10, 2025
5ac1c6b
Extract duplicate LSP handler helpers to common module
cds-amal Oct 10, 2025
2053eea
Create unified diagnostic conversion system
cds-amal Oct 10, 2025
8dc9ab1
refactor(lsp): consolidate diagnostic conversion with idiomatic patterns
cds-amal Oct 10, 2025
f0a7571
docs(lsp): update doc verbiage
cds-amal Oct 10, 2025
eb65bca
refactor(lsp): remove state machine infrastructure
cds-amal Oct 10, 2025
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
27 changes: 27 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
[alias]
# Build aliases
txtx-install = "install --path crates/txtx-cli --features supervisor_ui --features ovm --locked --force"
build-cli = "build --package txtx-cli --no-default-features --features cli"
build-cli-release = "build --package txtx-cli --no-default-features --features cli --release"

# Test aliases following pattern: test-[scope]-[type]-[target]
# Unit tests (code in src/)
test-cli-unit = "test --package txtx-cli --bin txtx --no-default-features --features cli"
test-cli-unit-linter = "test --package txtx-cli --bin txtx --no-default-features --features cli cli::linter_impl::"
test-cli-unit-lsp = "test --package txtx-cli --bin txtx --no-default-features --features cli cli::lsp::"
test-core-unit = "test --package txtx-core --lib"
test-addon-kit-unit = "test --package txtx-addon-kit --lib"

# Integration tests (code in tests/)
test-cli-int = "test --package txtx-cli --tests --no-default-features --features cli"
test-cli-int-linter = "test --package txtx-cli --test linter_tests_builder --no-default-features --features cli"
test-cli-int-lsp = "test --package txtx-cli --test lsp_tests_builder --no-default-features --features cli"

# HCL validation tests
test-hcl-diagnostics = "test --package txtx-cli --bin txtx --no-default-features --features cli cli::lsp::tests::hcl_diagnostics_test" # Test HCL diagnostic extraction
test-lsp-validation = "test --package txtx-cli --bin txtx --no-default-features --features cli cli::lsp::tests::validation_integration_test" # Test LSP validation pipeline

# Convenience aliases
test-cli = "test --package txtx-cli --no-default-features --features cli" # All CLI tests
test-cli-linter = "test --package txtx-cli --bin txtx --no-default-features --features cli cli::linter_impl::" # All linter unit tests

[build]
rustflags = ["--cfg", "tokio_unstable"]



2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Syntax highlighting for txtx runbook files
*.tx linguist-language=HCL
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,35 @@ addons/sp1/examples/fibonacci/program/target
addons/ovm/examples/cache/*
addons/ovm/examples/out/*
tarpaulin-report.html

# Coverage reports
lcov.info
*.lcov
coverage/
*.profraw
*.profdata

# VSCode specific
.vscode/*
!.vscode/settings.json.example
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
*.code-workspace
.history/
*.vsix

# Structurizr generated files
.structurizr/
**/workspace.json
docs/architecture/linter/workspace-generated.dsl

# nvim tree-sitter generated files
vscode-extension/nvim-txtx/src/parser.c
vscode-extension/nvim-txtx/src/grammar.json
vscode-extension/nvim-txtx/src/node-types.json
vscode-extension/nvim-txtx/src/tree_sitter/
vscode-extension/nvim-txtx/parser/
vscode-extension/nvim-txtx/build/
vscode-extension/nvim-txtx/node_modules/
37 changes: 37 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch txtx LSP Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}/vscode-extension",
"${workspaceFolder}/examples"
],
"outFiles": ["${workspaceFolder}/vscode-extension/**/*.js"],
"preLaunchTask": "Build txtx Binary"
},
{
"name": "Launch txtx LSP (Custom Project)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}/vscode-extension",
"${input:projectPath}"
],
"outFiles": ["${workspaceFolder}/vscode-extension/**/*.js"],
"preLaunchTask": "Build txtx Binary"
}
],
"inputs": [
{
"id": "projectPath",
"type": "promptString",
"description": "Path to your txtx project",
"default": "${env:HOME}/your-txtx-project"
}
]
}
28 changes: 26 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,29 @@
"rust-analyzer.linkedProjects": [
],
"rust-analyzer.showUnlinkedFileNotification": false,
"git.ignoreLimitWarning": true
}
"git.ignoreLimitWarning": true,
"files.associations": {
"*.tx": "txtx"
},
"rust-analyzer.cargo.buildScripts.enable": true,
"rust-analyzer.cargo.features": ["cli"],
"rust-analyzer.cargo.noDefaultFeatures": true,
"rust-analyzer.checkOnSave.command": "build",
"rust-analyzer.checkOnSave.allTargets": false,
"rust-analyzer.checkOnSave.extraArgs": [
"--package",
"txtx-cli",
"--features",
"cli"
],
"rust-analyzer.runnables.command": "cargo",
"rust-analyzer.runnables.extraArgs": [
"--package",
"txtx-cli",
"--features",
"cli"
],

// Point to the local txtx binary for LSP (uses workspace-relative path)
"txtx.lspPath": "${workspaceFolder}/target/release/txtx"
}
15 changes: 15 additions & 0 deletions .vscode/settings.json.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Example VSCode settings for txtx development
// Copy this to .vscode/settings.json and adjust paths as needed

// Point to your local txtx binary
"txtx.lspPath": "${workspaceFolder}/target/release/txtx",

// Enable LSP tracing for debugging
"txtx.trace.server": "verbose",

// File associations
"files.associations": {
"*.tx": "txtx"
}
}
15 changes: 15 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Build txtx Binary",
"type": "shell",
"command": "cargo build --package txtx-cli --bin txtx",
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$rustc"
}
]
}
Loading
Loading