diff options
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 8 | ||||
| -rw-r--r-- | queries/desktop/folds.scm | 1 | ||||
| -rw-r--r-- | queries/desktop/highlights.scm | 94 | ||||
| -rw-r--r-- | queries/desktop/injections.scm | 8 |
5 files changed, 114 insertions, 0 deletions
diff --git a/lockfile.json b/lockfile.json index b09de6b4a..cedb9df95 100644 --- a/lockfile.json +++ b/lockfile.json @@ -107,6 +107,9 @@ "dart": { "revision": "9ac03bb2154316624fb4c41fe0f372a5f1597b43" }, + "desktop": { + "revision": "0d8b8cf7c9311fe3f1730df8e193d836f6dd9d1b" + }, "devicetree": { "revision": "16c9cb959675bc9bc4f4e5bebe473d511a12a06d" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index f6731303d..fd79f8af7 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -365,6 +365,14 @@ list.dart = { maintainers = { "@akinsho" }, } +list.desktop = { + install_info = { + url = "https://github.com/ValdezFOmar/tree-sitter-desktop", + files = { "src/parser.c" }, + }, + maintainers = { "@ValdezFOmar" }, +} + list.devicetree = { install_info = { url = "https://github.com/joelspadin/tree-sitter-devicetree", diff --git a/queries/desktop/folds.scm b/queries/desktop/folds.scm new file mode 100644 index 000000000..624ca8a86 --- /dev/null +++ b/queries/desktop/folds.scm @@ -0,0 +1 @@ +(group) @fold diff --git a/queries/desktop/highlights.scm b/queries/desktop/highlights.scm new file mode 100644 index 000000000..7a5ebf241 --- /dev/null +++ b/queries/desktop/highlights.scm @@ -0,0 +1,94 @@ +(comment) @comment @spell + +(group_name) @markup.heading + +(entry + key: (identifier) @property) + +(localized_key + name: (identifier) @property) + +[ + (language) + (country) + (encoding) + (modifier) +] @string.special + +(string) @string + +(escape_sequence) @string.escape + +(field_code) @character.special + +[ + (true) + (false) +] @boolean + +"=" @operator + +[ + ";" + "_" + "." + "@" +] @punctuation.delimiter + +[ + "[" + "]" +] @punctuation.bracket + +; Especial entries +((entry + key: (identifier) @_key + value: (string) @type) + (#eq? @_key "Type") + (#any-of? @type "Application" "Link" "Directory")) + +((entry + key: (identifier) @_key + value: (string) @number) + (#eq? @_key "Version")) + +((entry + key: (identifier) @_key + value: (string) @string.special.path) + (#any-of? @_key "TryExec" "Path")) + +((entry + key: (identifier) @_key + value: (string) @string.special.url) + (#eq? @_key "URL")) + +; https://specifications.freedesktop.org/menu-spec/latest/category-registry.html +((entry + key: (identifier) @_key + value: (list + (string) @constant.builtin)) + (#eq? @_key "Categories") + (#any-of? @constant.builtin + ; Main categories + "AudioVideo" "Audio" "Video" "Development" "Education" "Game" "Graphics" "Network" "Office" + "Science" "Settings" "System" "Utility" + ; Additional Categories + "Building" "Debugger" "IDE" "GUIDesigner" "Profiling" "RevisionControl" "Translation" "Calendar" + "ContactManagement" "Database" "Dictionary" "Chart" "Email" "Finance" "FlowChart" "PDA" + "ProjectManagement" "Presentation" "Spreadsheet" "WordProcessor" "2DGraphics" "VectorGraphics" + "RasterGraphics" "3DGraphics" "Scanning" "OCR" "Photography" "Publishing" "Viewer" "TextTools" + "DesktopSettings" "HardwareSettings" "Printing" "PackageManager" "Dialup" "InstantMessaging" + "Chat" "IRCClient" "Feed" "FileTransfer" "HamRadio" "News" "P2P" "RemoteAccess" "Telephony" + "TelephonyTools" "VideoConference" "WebBrowser" "WebDevelopment" "Midi" "Mixer" "Sequencer" + "Tuner" "TV" "AudioVideoEditing" "Player" "Recorder" "DiscBurning" "ActionGame" "AdventureGame" + "ArcadeGame" "BoardGame" "BlocksGame" "CardGame" "KidsGame" "LogicGame" "RolePlaying" "Shooter" + "Simulation" "SportsGame" "StrategyGame" "Art" "Construction" "Music" "Languages" + "ArtificialIntelligence" "Astronomy" "Biology" "Chemistry" "ComputerScience" "DataVisualization" + "Economy" "Electricity" "Geography" "Geology" "Geoscience" "History" "Humanities" + "ImageProcessing" "Literature" "Maps" "Math" "NumericalAnalysis" "MedicalSoftware" "Physics" + "Robotics" "Spirituality" "Sports" "ParallelComputing" "Amusement" "Archiving" "Compression" + "Electronics" "Emulator" "Engineering" "FileTools" "FileManager" "TerminalEmulator" "Filesystem" + "Monitor" "Security" "Accessibility" "Calculator" "Clock" "TextEditor" "Documentation" "Adult" + "Core" "KDE" "COSMIC" "GNOME" "XFCE" "DDE" "GTK" "Qt" "Motif" "Java" "ConsoleOnly" + ; Reserved + "Screensaver" "TrayIcon" "Applet" "Shell")) diff --git a/queries/desktop/injections.scm b/queries/desktop/injections.scm new file mode 100644 index 000000000..1666a0430 --- /dev/null +++ b/queries/desktop/injections.scm @@ -0,0 +1,8 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +((entry + key: (identifier) @_exec + value: (string) @injection.content) + (#eq? @_exec "Exec") + (#set! injection.language "bash")) |
