STAR*NET Language Support for VSCode
Visual Studio Code extension providing syntax highlighting and intelligent hover tooltips for STAR*NET survey adjustment data files (.dat).
Features
🎨 Syntax Highlighting
Full syntax highlighting support for STAR*NET data files including:
- Data Line Types: C, E, P, A, D, V, B, M, BM, DV, TB, T, TE, DB, DN, DM, DE, SS, L
- Inline Options: .UNITS, .DELTA, .3D, .SCALE, .REFRACTION, and more
- Comments: Lines starting with
#
- Angles: DMS format (123-45-30.5)
- Bearings: N45-30-15E format
- Fixity Symbols: !, *, &
- Descriptors: Text following single quotes
- Measurements: Coordinates, distances, elevations
Intelligent hover support showing:
- Data Line Formats: Hover over line type codes (C, M, TB, etc.) to see expected format and examples
- Inline Options: Descriptions of what each option does
- Fixity Symbols:
! = Fixed (observation will not be adjusted)
* = Free (observation has no weight/influence)
& = Default (use project default standard error)
- Special Formats: HI/HT (Height of Instrument/Target), angles, bearings
⚡ Code Completion
Auto-completion suggestions for:
- All data line type codes
- Inline options with descriptions
- Quick insertion with proper spacing
📁 Code Folding
Automatic code folding for:
- Traverse blocks (TB...TE)
- Direction sets (DB...DE)
Installation
From VSIX Package
- Download the latest
.vsix file from releases
- Open VSCode
- Go to Extensions (Ctrl+Shift+X)
- Click the
... menu at the top
- Select "Install from VSIX..."
- Choose the downloaded
.vsix file
From Command Line
code --install-extension starnet-language-support-0.1.0.vsix
Usage
- Open any
.dat file in VSCode
- The extension will automatically activate
- Hover over any code element to see documentation
- Use
Ctrl+Space for auto-completion suggestions
Example Data File
# Sample STAR*NET Project
.UNITS FeetUS
.3D
# Fixed coordinates
C 1 1000.00 2000.00 100.00 ! ! ! 'Control Point A
# Traverse
TB N45-30-40W 'Starting bearing
T 1 123-40-28 537.52 90-00-00 5.1/5.2
T 2 217-11-37 719.56 89-30-15 5.2/5.1
TE 5
# Measurements
M 2-1-3 134-45-12 2244.35 91-22-54 5.1/5.2 'Iron Pipe
A 3-2-4 102-34-12.5 2.5
D Roger-Frank 1034.23 0.05
B tower-flagpole N34-23-45.7E !
# Leveling
L 101-105 -7.476 12634 'BM to BM
Supported Data Types
| Code |
Description |
| C/CH |
Coordinates (with optional ellipsoid height) |
| E/EH |
Elevation (with optional ellipsoid height) |
| P/PH |
Geodetic Position |
| A |
Horizontal Angle |
| D |
Distance |
| V |
Vertical Observation (Zenith/Elevation Diff) |
| B |
Bearing or Azimuth |
| M |
Measure (all observations to a point) |
| BM |
Bearing and Measurements |
| DV |
Distance and Vertical |
| TB/T/TE |
Traverse Begin/Point/End |
| DB/DN/DM/DE |
Direction Set Begin/Direction/Direction+Measure/End |
| SS |
Sideshot |
| L |
Differential Leveling |
| G0-G3 |
GPS Vector data |
Inline Options Supported
.UNITS - Change units (FeetUS, Meters, etc.)
.DELTA - Toggle slope/zenith or horiz/elev diff mode
.ORDER - Change coordinate (NE/EN) or angle (AtFromTo/FromAtTo) order
.3D / .2D / .3REDUCE - Change data format mode
.SCALE - Apply scale factor
.REFRACTION - Set refraction coefficient
.PELEVATION - Set project elevation
.INSTRUMENT - Change weighting scheme
.ELLIPSE - Specify error ellipse output
.RELATIVE - Specify relative error ellipse connections
.PTOLERANCE - Specify positional tolerance checking
.MAPMODE - Use bearings/azimuths in traverses
.COPYINPUT - Control input data copying to listing
.LWEIGHT - Change leveling observation weighting
.DATA - Enable/disable data reading (debugging)
.CURVE - Enable/disable earth curvature corrections
.ADDCENTERING - Apply centering errors to explicit standard errors
.EDM - Set EDM error calculation method
.LOSTSTATIONS - Mark stations as lost (not shown on plot)
.ALIAS - Define point name aliases
.PRISM - Apply prism offset corrections
.NORMALIZE - Control normalization of reverse face observations
.INCLUDE - Include another data file
.SEPARATOR - Change station name separator
.LONGITUDE - Set longitude sign convention
.ELEVATION - Specify elevation type (orthometric/ellipsoidal)
.MULTIPLIER - Apply unit conversion multiplier
.VLEVEL - Convert STAR*LEV format data
.MEASURED / .GRID - Define observation types in grid projects
Requirements
- Visual Studio Code version 1.75.0 or higher
Extension Settings
This extension works out of the box with no configuration required. It automatically activates when you open a .dat file.
Language Features
Syntax Highlighting Colors
The extension uses standard TextMate scopes that work with all VSCode themes:
- Keywords (data codes): Theme's keyword color
- Comments: Theme's comment color
- Strings (descriptors): Theme's string color
- Numbers: Theme's number color
- Constants (angles, bearings): Theme's constant color
- Operators (fixity symbols): Theme's operator color
Code Intelligence
- Hover Information: Detailed format specifications and examples
- IntelliSense: Context-aware code completion
- Code Folding: Collapse traverse and direction set blocks
Known Issues
None currently reported. Please file an issue on the repository if you encounter any problems.
Release Notes
0.1.0
Initial release featuring:
- Complete syntax highlighting for STAR*NET data files
- Hover tooltips for data types, inline options, and special symbols
- Auto-completion for data line codes and inline options
- Code folding for traverses and direction sets
- Support for all STAR*NET data formats (2D, 3D, GPS, leveling)
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Building from Source
# Clone the repository
git clone https://github.com/your-username/starnet-vscode.git
cd starnet-vscode
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Package extension
npm run package
# Install locally
code --install-extension starnet-language-support-0.1.0.vsix
Credits
Based on the STAR*NET adjustment software by MicroSurvey Software Inc.
Documentation reference: STAR*NET User Manual Chapter 5 - Preparing Input Data
Resources
Support
For issues, feature requests, or questions:
- File an issue on GitHub
- Check existing issues for solutions
- Review the STAR*NET documentation for data format questions
License
MIT License - See LICENSE file for details
Enjoy using STAR*NET Language Support!
If you find this extension helpful, please consider:
- ⭐ Starring the repository
- 📢 Sharing with other surveyors and geodesists
- 🐛 Reporting bugs or suggesting features
- 🤝 Contributing improvements
This extension is not officially affiliated with MicroSurvey Software Inc.