first commit

This commit is contained in:
ZennDev1337 2024-01-08 09:23:06 +01:00
commit 8c39952965
1956 changed files with 1460685 additions and 0 deletions

View file

@ -0,0 +1,35 @@
{
"folders":
[
{
"folder_exclude_patterns":
[
".pio*",
"MarlinFirmware/lib",
"Marlin/lib",
"datatmp",
".vscode"
],
"binary_file_patterns":
[ "*.psd", "*.png", "*.jpg", "*.jpeg", "*.bdf", "*.patch", "avrdude_5.*", "*.svg", "*.bin", "*.woff" ],
"file_exclude_patterns":
[
"Marlin/platformio.ini",
"Marlin/.travis.yml",
"Marlin/.gitignore",
"Marlin/*/platformio.ini",
"Marlin/*/.travis.yml",
"Marlin/*/.gitignore",
"*.d"
],
"path": "../../.."
}
],
"settings":
{
"ensure_newline_at_eof_on_save": true,
"tab_size": 2,
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true
}
}

View file

@ -0,0 +1,225 @@
%YAML 1.2
---
#
# G-Code (RepRap, not ISO-6983)
# Author: @thinkyhead
#
# RapRap G-Code is very simple.
#
# TODO: Lines that start with N get a different context, accepting a checksum.
#
name: G-Code (RepRap)
file_extensions:
- [ g, gco, gcode ]
scope: source.gcode
variables:
decimal: '[+-]?\d+(\.\d*)?'
contexts:
prototype:
- match: \s+
- include: mixin_comment
- match: $
pop: true
main:
- meta_scope: line.gcode
- match: '([Nn]\s*(\d+))'
captures:
1: entity.nword.gcode
2: constant.numeric.line-number.gcode
- match: ()
set: gcode_command
# G, M, or T command
gcode_command:
- meta_content_scope: ctx.command.gcode
# M20 S2 P/path/to/file/name.gco
- match: ([Mm](20))\s*((S)(2)\s*(P))
captures:
1: entity.command.gcode markup.bold.gcode
2: constant.numeric.command.gcode
3: ctx.params.gcode
4: keyword.param.gcode
5: constant.numeric.param.gcode
6: keyword.param.gcode
set: gcode_string_arg
# M117 or M118 - Commands taking a string
- match: ([Mm]\s*(11[78]))\b
captures:
1: entity.command.gcode markup.bold.gcode
2: constant.numeric.command.gcode
set: gcode_string_arg
# Other commands, followed by data
- match: ([GMTgmt]\s*(\d+)((\.)(\d+))?)
captures:
1: entity.command.gcode markup.bold.gcode
2: constant.numeric.command.gcode
4: entity.separator.subcode
5: constant.numeric.subcode
set: gcode_params
- match: ()
set: syntax_error
# Parameters of a command
gcode_params:
- meta_content_scope: ctx.params.gcode
# M32 [S<pos>] [P<bool>] !/path/file.gco#
- match: \!
scope: punctuation.string.path.open.gcode
push: gcode_path_arg
# asterisk starts a checksum
- match: \*
scope: punctuation.marker.checksum.gcode
set: gcode_checksum
# parameter and single-quoted value
- match: ([A-Za-z])\s*(')
captures:
1: keyword.param.gcode
2: punctuation.quote.single.open.gcode
push: gcode_string_arg_quoted_single
# parameter and double-quoted value
- match: ([A-Za-z])\s*(")
captures:
1: keyword.param.gcode
2: punctuation.quote.double.open.gcode
push: gcode_string_arg_quoted_double
# parameter and list of values
- match: ([Ee])\s*(({{decimal}}\s*:\s*)+{{decimal}})
captures:
1: keyword.param.gcode
2: constant.numeric.param.gcode
# parameter and numeric value
- match: ([A-Za-z])\s*({{decimal}})
captures:
1: keyword.param.gcode
2: constant.numeric.param.gcode
# parameter with no value
- match: '[A-Za-z]'
scope: keyword.param.gcode
set: gcode_params
- match: ()
set: syntax_error
gcode_string_arg_quoted_single:
- meta_content_scope: string.quoted.single.gcode
- match: ([^'\\]+)
- match: (\\)
scope: punctuation.string.escape.gcode
push: escape_char
- match: (')
scope: punctuation.quote.single.close.gcode
pop: true
- match: ()
set: syntax_error
gcode_string_arg_quoted_double:
- meta_content_scope: string.quoted.double.gcode
- match: ([^"\\]+)
- match: (\\)
scope: punctuation.string.escape.gcode
push: escape_char
- match: (")
scope: punctuation.quote.double.close.gcode
pop: true
- match: ()
set: syntax_error
gcode_string_arg:
- meta_content_scope: ctx.string.gcode
- match: ([^;]+)
scope: string.unquoted.gcode
escape_char:
- meta_scope: string.escape.gcode punctuation.string.escape.gcode
- match: '.'
pop: true
gcode_path_arg:
- meta_content_scope: string.unquoted.path.gcode
- match: (#)
scope: punctuation.string.path.close.gcode
pop: true
gcode_checksum:
- meta_content_scope: constant.numeric.checksum.gcode
- meta_include_prototype: false
- match: \d+
- match: ( *)$
pop: true
- include: mixin_comment
- match: ()
set: syntax_error
# Done interpreting to the end of the line
gcode_line_done:
- match: \s*$
pop: true
# Comments begin with a ';' and finish at the end of the line.
mixin_comment:
- match: ^\s*;
scope: punctuation.comment.line.start
set: gcode_comment
- match: \s*;
scope: punctuation.comment.eol.start
set: gcode_comment
- match: \s*\(
scope: punctuation.paren.comment.open
push: gcode_comment_paren
# Comment to end of line.
gcode_comment:
- meta_content_scope: comment.gcode
- match: \s*$
pop: true
gcode_comment_paren:
- meta_content_scope: paren.comment.gcode
- match: '[^)]+'
- match: '[)]'
scope: punctuation.paren.comment.close
pop: true
- match: \s*$
pop: true
# Everything after this point is broken by a syntax error
syntax_error:
- meta_scope: invalid.error.syntax.gcode
- match: .*$
pop: true

View file

@ -0,0 +1,106 @@
; SYNTAX TEST "G-code.sublime-syntax"
; This is a G-code comment
;^comment
G1 X100 Y100 ; Move to 100,100
;^entity.command.gcode
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
; ^comment
T0 (This is a comment) S12
;^entity.command.gcode
; ^punctuation.paren.comment.open
; ^paren.comment.gcode
; ^punctuation.paren.comment.close
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
M20 P'/path/to/macro/macro.g' R12
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^punctuation.quote.single.open.gcode
; ^string.quoted.single.gcode
; ^punctuation.quote.single.close.gcode
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
M117 This is a message ; and comment
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^string.unquoted.gcode
; ^punctuation.comment.eol.start
; ^comment.gcode
M118 This is a message ; and comment
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^string.unquoted.gcode
; ^punctuation.comment.eol.start
; ^comment.gcode
M98 P'/path/to/macro/macro.g' R12
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^punctuation.quote.single.open.gcode
; ^string.quoted.single.gcode
; ^punctuation.quote.single.close.gcode
M98 P"/path/to/macro/macro.g" R12
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^punctuation.quote.double.open.gcode
; ^string.quoted.double.gcode
; ^punctuation.quote.double.close.gcode
M32 S100 P0 !/path/file.gco#
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
; ^punctuation.string.path.open.gcode
; ^string.unquoted.path.gcode
; ^punctuation.string.path.close.gcode
G28 ; Home All
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^punctuation.comment.eol.start
; ^comment.gcode
N123 G1 X5 Y0 *64 ; EOL Comment
;<-entity.nword.gcode
;^constant.numeric.line-number.gcode
; ^entity.command.gcode
; ^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
; ^punctuation.marker.checksum.gcode
; ^constant.numeric.checksum.gcode
N234 G1 X-5 Y+2 *64 error
;<-entity.nword.gcode
;^constant.numeric.line-number.gcode
; ^entity.command.gcode
; ^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
; ^punctuation.marker.checksum.gcode
; ^constant.numeric.checksum.gcode
; ^invalid.error.syntax.gcode
N234 M107 *64
; ^-invalid.error.syntax.gcode
M92 E304.5:304.5:420:420:420:420 ; EOL Comment
;<-entity.command.gcode
;^constant.numeric.command.gcode
; ^keyword.param.gcode
; ^constant.numeric.param.gcode
; ^constant.numeric.param.gcode
; ^punctuation.comment.eol.start
; ^comment.gcode

View file

@ -0,0 +1,40 @@
Overview:
1) Install Sublime
2) Install Deviot (?optional?)
3) Install WebDevShell (this will execute the auto-build script)
4) Copy the menu configuration to the proper Sublime directory
5) Add platformio to your path (usually not needed)
Sublime with autobuild
Tools
Install Package Control
Tools
Command Palette
Package Control: Install Package
type in deviot and click on it
Tools
Command Palette
Package Control: Install Package
type in WebDevShell and click on it
in Sublime, open Marlin directory with "platformio.ini" in it
starting in the top level directory, go to the folder "Buildroot/shared/Sublime"
copy the folder "auto_build_sublime_menu" and contents to:
Windows
\Users\your_user_name\AppData\Roaming\Sublime Text 3\Packages
Linux
/home/your_user_name/.config/sublime-text-3/Packages/User
macOS (Click on the Finder's 'Go' menu and hold down Option to open...)
~/Library/Application Support/Sublime Text 3/Packages/User
The menu should now be visible
If you get an error message that says "file not found" and "subprocess.Popen(['platformio' ... "
then you'll need to add platformio to your path.
macOS
sudo nano /etc/paths
add these to the bottom
/Users/bob/.platformio
/Users/bob/.platformio/penv/bin

View file

@ -0,0 +1,66 @@
[
{
"caption": "Auto Build",
"children": [
{
"caption": "PIO Build",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py build"
}
},
{
"caption": "PIO Clean",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py clean"
}
},
{
"caption": "PIO Upload",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py upload"
}
},
{
"caption": "PIO Upload (traceback)",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py traceback"
}
},
{
"caption": "PIO Upload using Programmer",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py program"
}
},
{
"caption": "PIO Test",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py test"
}
},
{
"caption": "PIO Debug",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py debug"
}
},
{
"caption": "PIO Remote",
"command": "webdevshell",
"args": {
"command": "python buildroot/share/vscode/auto_build.py remote"
}
}
],
"id": "AutoBuild",
"mnemonic": "A"
}
]