Professional Pine Script v6 development in VS Code with IntelliSense, real-time validation, and 100% language coverage.
Real-time validation, IntelliSense, and hover documentation for Pine Script v6
Complete function signatures with parameter hints and documentation
Search for "Pine Script v6 IDE Tools" in VS Code Extensions or install directly from marketplace
Download the latest .vsix from Releases and install:
code --install-extension pinescript-v6-extension-0.6.1.vsix- 6,665 language constructs from official TradingView reference
- 457+ functions with autocomplete (ta., math., str., array., etc.)
- 31 constant namespaces (xloc, yloc, extend, scale, display, etc.)
- 22 function namespaces with full parameter validation
- 32 strategy. variables* (position_size, equity, netprofit, etc.)
- Repainting β
request.security()reading the current, forming bar ta.*in a conditional β silently corrupts the indicator's own history- Accumulator lifetime β a
vartotal a loop re-adds to every bar and never resets, so it grows for the life of the chart - Scope errors β
plot/bgcolorinsideif, functions defined in a block - Platform limits β 64 plots, 40
request.*()calls, counted before TradingView rejects you - Unbounded risk β
strategy.entrywith no exit anywhere
Suppress one you have considered: // pine-ignore: S1
- Catches undefined functions and variables
- Detects missing/extra parameters
- Validates namespace properties
- Zero false positives on the golden corpus β four committed fixtures exercising every construct that has ever produced one, asserted clean on every commit, plus real scripts checked locally
- Smart autocomplete for all built-in functions
- Parameter hints with type information
- Hover documentation
- Namespace-aware suggestions
- Complete Pine Script v6 syntax support
- Built-in variables and constants
- Keywords, operators, and functions
- Comments and strings
//@version=6
indicator("My Indicator", overlay=true)
// All valid v6 syntax - no false positives! β
length = input.int(14, "Length")
source = input.source(close, "Source")
// Technical analysis with autocomplete
sma_value = ta.sma(source, length)
ema_value = ta.ema(source, length)
rsi_value = ta.rsi(source, 14)
// Math functions with precision parameter
rounded = math.round(close, 2) // β
v0.4.4+ supports precision
max_val = math.max(open, close)
// Strategy variables fully supported
if strategy.position_size > 0
plot(strategy.equity, "Equity")
plot(strategy.netprofit, "Net Profit")
// Plot with all v6 constants
plot(sma_value, "SMA", color=color.new(color.blue, 50), style=plot.style_line)
plot(ema_value, "EMA", color=color.new(color.red, 50), style=plot.style_linebr)
// All namespace constants work
x = xloc.bar_index
y = yloc.price
e = extend.both
s = scale.left
The extension works out of the box with zero configuration. All Pine Script v6 features are automatically recognized.
Repainting request.security, ta.* inside conditionals, scope errors, platform
limits, entries with no exit. Suppress one you have considered with
// pine-ignore: S1.
Published as pinescript-v6-validator
and shared with the agent plugin, so both cannot disagree about a file.
The coordinate forms of line.new, label.new and box.new are official v6
overloads, but the bundled reference only carried the chart.point form β so
correct code lit up red. Overloads are now modelled properly.
// Before v0.5.0: 10 errors on these three lines. Now: clean. β
line.new(x1=bar_index[1], y1=low[1], x2=bar_index, y2=high)
label.new(x=bar_index, y=high, text="hi")
box.new(left=bar_index[5], top=high, right=bar_index, bottom=low)
Also fixed: for β¦ in loop iterators, comments and blank lines inside wrapped
calls, nested parentheses in arguments, user-defined type/enum namespaces, and
two indentation rules TradingView removed in December 2025.
A 1,302-line script validates in 12.3ms, down from 158ms.
Ten months of TradingView releases the bundled reference was missing β
multiline strings ("""β¦"""), request.footprint(), calc_on_every_history_tick,
sort_field, active on inputs, timeframe_bars_back, syminfo.isin,
box.set_xloc().
67 β 169 tests, including a golden corpus asserted to produce zero errors and paired "must still flag" cases for every fix β so a check can never be quietly deleted instead of repaired.
See CHANGELOG for complete version history.
- 169/169 tests passing (100%)
- Golden corpus: four committed fixtures asserted to produce zero errors, and proven able to fail β reintroducing a fixed bug turns them red
- Paired regression tests: every false-positive fix ships with a "must still flag" counterpart, so a check cannot be silently deleted instead of repaired
- Performance budget: enforced in CI (<100ms for a 1,300-line script)
npm test # full suite
node validate-cli.js file.pine # headless single-file validationContributions welcome! See docs/CONTRIBUTING.md for guidelines.
- Check existing issues
- Create a new issue with:
- Pine Script code that triggers the problem
- Expected vs actual behavior
- Extension version
- Report false positives/negatives
- Suggest feature improvements
- Submit pull requests
- Share feedback
| Project | What it is |
|---|---|
| pinescript-plugin | Pine Script v6 skills and MCP tooling for coding agents β consumes this extension's validation engine, so an agent and your editor never disagree about a file. |
- Marketplace: Pine Script v6 IDE Tools
- Repository: GitHub
- Issues: Bug Reports
- Releases: Changelog
- Story: How This Extension Was Built (Medium)
- TradingView Pine Script Reference: Official Docs
MIT License - see LICENSE for details.
Created by Jaroslav Pantsjoha
- Website: jpantsjoha.com
- GitHub: @jpantsjoha
- LinkedIn: in/johas
Special thanks to:
- TradingView for Pine Script
- VS Code extension development community
- All contributors and testers
Full Language Coverage: 6,665 Pine Script v6 constructs Test Coverage: 169 tests Current Version: 0.6.1