# CNC Sinumerik
[![Release](https://img.shields.io/github/tag/deathaxe/sublime-s840d.svg?style=flat-square)](https://github.com/deathaxe/sublime-s840d/releases)
[![The MIT License](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)](http://opensource.org/licenses/MIT)
[![Package Control](https://packagecontrol.herokuapp.com/downloads/CNC%20Sinumerik.svg?style=flat-square)](https://packagecontrol.io/packages/CNC%20Sinumerik)
This package provides syntax highlighting support for **SINUMERIK 840D/ONE**
Computerized Numerical Control to [Sublime Text][1].
#### G-Code example
![gcode](example.jpg)
## 🚀 Features
#### NC cycles
* file extensions: MPF, SPF, DEF, TEA
* syntax highlighting
- ISO G-Code
- SINUMERIK highlevel commands
- known NC cycles, functions and commands
- known NC variables and machine data (NC-Version 04.07.02.01)
- Highlight illegal usage of control keywords.
* indention rules
* code-snippets for most common control functions
* commands to `Minify`, `Beautify`, `Add/Update block numbers`, `Save Protected Program File (CPF)`
* Goto Definition
- Show labels in local symbol list
- Show PROC names in indexed symbol list
* Context sensitive auto completions for:
- variable attributes in definitions (access rights, unit)
- ISO parameters (e.g.: SPOS= , FP=, ...)
- ISO commands (e.g.: TRANS, ROT, ...)
- functions (e.g.: COUPDEF(...))
* tooltip support
- \*.mdat \*.svar files from CreateMyConfig
### EasyScreen / RunMyScreens
* file extensions: COM
* syntax highlighting
* indention rules
* code-snippets for
- classes: `ARRAY`, `BLOCK`, `DIALOG`, `MENU`
- methods: `LOAD`, `UNLOAD`, `PRESS`, ...
- functions: `RNP`, `WNP`, `CP`, `DP`, `EP`, ...
* Goto Definition for classes.
#### NC archives (text)
* file extensions: ARC
* embedds NC cycles and RunMyScreens syntax highlighting
### Step7 PLC sources
* AWL syntax highlighting
* ASC symbol table syntax highlighting
* SCL syntax
## 💾 Installation
### Package Control
For all Sublime Text 3 users install via [Package Control][2] is recommended.
1. [Install][3] Package Control if you haven't yet.
2. Use ctrl+shift+P then `Package Control: Install Package`
3. Look for `CNC Sinumerik` and install it.
### Manual Installation
Clone the repository in your Sublime Text Packages directory, located somewhere
in user's "Home" directory:
```shell
git clone git://github.com/deathaxe/sublime-s840d.git "CNC Sinumerik"
```
You can also download the latest source from GitHub
[https://github.com/deathaxe/sublime-s840d][zip] and extract the whole content
into the _"Packages/CNC Sinumerik"_ directory.
## âš™ Settings
All settings are organized per view and can therefore be placed to any valid
Sublime Text settings file or may be applied temporarily for single views.
#### Basic Setup
If `s840d_arc.sublime-settings`, `s840d_gcode.sublime-settings` or
`s840d_hmi.sublime-settings` don't exist in the user folder they will be
automatically created to ensure the following essential syntax specific
settings:
```JavaScript
"ensure_newline_at_eof_on_save": true,
"translate_tabs_to_spaces": true,
"use_tab_stops": false
```
They are all required to ensure NC will read the resulting file correctly. You
can override these settings by creating your own syntax specific setting
`Preferences -> Settings - Syntax Specific`
#### G-Code block start
`"s840d_gcode_block_start": 0`
If not explicitly called with `"start": 0815` the `s840d_renumber` command will
use this setting as first block number. With default value `0` the first block
number is automatically selected to so all block numbers have same length.
#### G-Code block increment
`"s840d_gcode_block_increment": 10`
If not explicitly called with `"increment": 0815` the `s840d_renumber` command
will use this setting to increment the block numbers.
## © License
The code is available at [GitHub][home] under [MIT licence][lic].
[home]:
[zip]:
[lic]:
[1]:
[2]:
[3]: