Quick Look – это очень удобная “фича” операционной системы macOS, которая позволяет предварительно просматривать содержимое многих популярных форматов файлов и документов, отображать информацию о папках и подключенных дисках, без необходимости открывать их.
Эта функция предоставляет очень быстрый и удобный доступ к содержимому файлов, что делает работу с данными более комфортной и эффективной. Для просмотра содержимого файла достаточно кликнуть по нему (выделить), а затем нажать Пробел – Quick Look мгновенно откроет окно предпросмотра и отобразит содержимое файла без необходимости открывать его в приложении.
Quick Look впервые появилась в операционной системе Mac OS X Leopard (10.5), которая была выпущена в октябре 2007 года. Эта функция стала значительным улучшением в юзабельности операционной системы, позволяя пользователям быстро просматривать содержимое большинства форматов файлов в Finder, что экономило время и облегчало работу с документами.
С тех пор прошло много лет, Quick Look продолжает развиваться и давно уже стала стандартной функцией macOS. В новых версиях операционной системы Quick Look обзавелась новыми базовыми инструментами, такими как увеличение или уменьшение изображения, поворот, обрезка фото и видео, и т. д. Так же появилась поддержка множества новых различных форматов, включая текстовые файлы, изображения, видео, аудио, PDF-документы, документы Microsoft Office, архивы и многое другое.
Однако, функционал Quick Look небезграничен, особенно когда речь заходит о специфических задачах или о разработке. Quick Look хорошо справляется с теми форматами файлов, которые знает и понимает операционная система macOS. И, к сожалению, плохо с теми, которые macOS незнакомы. К счастью, Quick Look поддерживает расширения (плагины), за счёт которых его функционал может быть расширен. Сегодня у нас на обзоре как раз одно такое очень классное расширение.
Syntax Highlight
Syntax Highlight — это расширение (Extension) для Quick Look, которое добавляет поддержку большинства форматов исходных файлов с подсветкой синтаксиса кода прямо в окне предпросмотра Quick Look. Это очень удобно, особенно когда нужно быстро просмотреть содержимое большого количества файлов без необходимости открывать их в текстовом редакторе или среде разработки.
В отличии от стандартного определения формата файла по расширению (.txt
, .css
, .html
), Syntax Highlight использует идентификатор унифицированного типа (Uniform Type Identifier, или UTI) для определения поддерживаемых форматов. Для чего это нужно и что это означает? Некоторые типы файлов могут быть связаны с несколькими установленными в операционной системе приложениями. Таким образом, некоторые расширения имён файлов могут ассоциироваться с несколькими UTI в зависимости от установленных в данный момент приложений. По этой причине Syntax Highlight определяет тип файла не по расширению имени файла, а по идентификатору UTI. Это позволяет Syntax Highlight поддерживать форматы файлов большинства языков программирования, а также обрабатывать некоторые обычные текстовые форматы файлов даже без расширений.
Список поддерживаемых форматов внушает:
- Ada (
.ada
) - Adobe Acrobat Sequence files (
.sequ
) - Adobe Flash ActionScript source files (
.as
) - Adobe JSX script files (
.jsx
) - Apple workflow (
.wflow
) asplist (XML)
- AppleScript (
.scpt
,.applescript
,.ascr
) - Apple shell script files (
.command
) - Assembler source files (
.asm
,.s79
) - Astro files (
.astro
) as JSX. - Autolit files (
.au3
,.a3x
) - Azkaban flow files (
.flow
) asYAML
- ATL files (
.atl
) - (G)AWK files (
.awk
) - Bash Script files (
.bash
) - Bezel (
.bezel
) as plain text - BibTex (
.bib
) - C shell script files (
.csh
) - C source files (
.c
,.h
) - C# source files (
.cs
) - C++ source files (
.cpp
,.cp
,.c++
,.cc
,.cxx
,.hpp
,.hh
,.hxx
,.ipp
) - ClojureScript (
.cli
,.cljs
,.cljc
,.edn
) - CMake files (
.cmake
) - CocoaPod files (
.podspec
) asRuby
- CoffeeScript source files (
.coffee
) - ColdFusion files (
.cfc
,.cfm
,.cfml
) - Configuration files (
.conf
) - Configuration profiles (
.mobileconfig
) asXML
- Crystal language (
.cr
) - CSON source files (
.cson
) - CSS files (
.css
) - D (
.d
) - Dart source files (
.dart
) - Diff files (
.diff
,.patch
) - Dockerfile (
.dockerfile
) - Document Type Definition (
.dtd
) - DOS batch files (
.bat
,.cmd
) - Dylang (
.dylan
) - ECore files (
.ecore
) - Eiffel project files (
.ecf
) - Eiffel source files (
.e
,.ex
,.exs
) - Erlang source files (
.erl
,.hri
) - F# source files (
.fsx
,.fs
) - fish source files (
.fish
) - Fortran source files (
.f
,.for
,.f90
,.f95
) - GCC linked files (
.ld
,.map
,.d
) - Gdscript (Godot engine) (
.gd
). - Golang source files (
.go
) - Google Earth KML Document files (
.kml
) - Gradle source files (
.gradle
) - Graphics Language Transmission Format (
.gltf
) - Groovy source files (
.groovy
) - Haskell source files (
.hs
,.lhs
) - HTML Abstraction Markup Language (
.haml
) - IDL source files (
.pro
) - INF files (
.inf
) - INI configuration files (
.ini
,.cfg
) - Inno source files (
.iss
) - INO source files (
.ino
) - IntelliJ IDEA module (
.iml
) - Interface Builder Storyboard (
.storybard
) - Interface Builder XIB (
.xib
) - Java Compiled Class (
.class
) - Java Properties files (
.properties
) - Java Server Page files (
.jsp
) - Java source code (
.java
,.jav
) - Java Web Start (
.jnlp
) - JavaFX ML (
.fxml
) - JavaScript files (
.js
,.jscript
,.javascript
,.mjs
,.jsm
) - JSON files (
.json
,.jsonc
) - JSON Line files (
.jsonl
) - Julia source files (
.jl
) - Kermeta source files (
.kmt
) - Korn Shell script files (
.ksh
) - Kotlin source files (
.kt
,.kts
) - LESS stylesheet (
.less
) - Lilypond files (
.ly
)x1 - Lisp source files (
.lisp
,.lsp
,.asd
,.el
) - Logos source files (
.xm
) - Lua source files (
.lua
) - Makefile files (
.mk
,.mak
) - Markdown files (
.md
,.rmd
) - Media Presentation Description (
.mpd
) - MF source files (
.mf
) - Microsoft Active Server Page files (
.asp
,.aspx
) - Microsoft PowerShell files (
.psm1
,.psd1
,.ps1
) - NextFlow (
.nf
) as Groovy (Java) - Nim source files (
.nim
) - Node CommonJS module (
.cjs
) - Objective-C source files (
.m
) - Objective-C++ source files (
.mm
) - OCaml source files (
.ml
,.mll
,.mly
) - OpenSSH RSA public key (
.pub
) - OPML (Outline Processor Markup Language) files (
.opml
) - Oracle PL/SQL files (
.fnc
,.prc
,.trg
,.pks
,.pkb
,.pck
,.tps
,.tpb
,.typ
,.tab
,.avt
,.con
,.sqs
,.vw
,.mvw
,.trg
) - Paradox files (
.sc
) - Pascal source files (
.pas
) - Patch files (
.patch
,.diff
) - PDE source files (
.pde
,.ino
) - Perl script files (
.pl
,.pm
,.t
) - Planning Domain Description Language (
.pddl
) - PHP source files (
.php
,.php3
,.php4
,.ph3
,.ph4
,.phtml
) - Properties files (
.properties
) - Property List files (
.plist
) - Python source files (
.py
) - R (
.r
) - Racket (
.rkt
) - RDF files (
.rdf
) - README files (
.readme
) - reStructuredText document (
.rst
) - Rez files (
.r
) - Ruby on Rails files (
.rhtml
,.erb
,.rjs
) - Ruby Gems file (
.gemfile
) - Ruby script (
.rb
,.rbw
) - Rust source files (
.rs
) - SageMath files (
.sage
) - SAS files (
.sas
) - SASS/SCSS files (
.scss
) - Scala source files (
.sc
,.sbt
,.scala
) - Scheme source files (
.scm
) - Shell script files (
.bashrc
,.zshrc
,.sh
) - Smali (
.smali
) - Solidity source files (
.sol
) - SQL files (
.sql
) - Standard ML source files (
.ml
) - Stata files (
.do
,.ado
) - Steam app manifest files (
.acf
) - Svelte (
.svelte
) - Swift source files (
.swift
) - Symfony Twig files (
.twig
) - TCL source files (
.tcl
) - Tenex C Shell script files (
.tcsh
) - Terraform files (
.tfvars
,.tf
,.hcl
) - TeX and LaTeX files (
.tex
,.sty
,.cls
,.latex
,.ltx
,.texi
,.ctx
,.sty
) - Text files (
.txt
,.text
) - TOML files (
.toml
) - TypeScript files (
.ts
,.tsx
,.cts
,.mts
) - Visual Studio Code Workspace (
.code-workspace
) - Verilog HDL files (
.v
,.vl
) - VHDL source files (
.vhd
,.vhdl
) - VIM script files (
.vim
) - Visual Basic source files (
.vb
,.bas
,.basic
,.vbs
) - Vue source files (
.vue
) - XAML source files (
.xaml
) - Xcode entitlement files (
.entitlements
) - Xcode localizable strings files (
.strings
,.stringsdict
) - XHTML files (
.xhtml
) - XML files (
.xml
) - XSD Schema files (
.xsd
,.xquery
,.xq
,.xu
) - XUL files (
.xul
) - YAML files (
.yaml
) - Z shell script files (
.zsh
)
Но не обошлось и без “ложки дёгтя”. Так, например, macOS 10.15 Catalina не позволяет переопределять (и, соответственно, рендерить при помощи Syntax Highlight) некоторые форматы файлов, например .xml
, .plist
, .html
, .ts
, .dart
, .txt
, .jpg
, .gif
, .png
(но не ограничиваясь ними)… На macOS 13 Ventura под Apple Silicon расширение .json
зарезервировано системой и так же не может быть обработано при помощи Syntax Highlight. А файлы в формате .xml
зарезервированы на всех операционных системах до macOS 12 Monterey. Тем не менее, Syntax Highlight обладает множеством других положительных качеств (иначе я бы не делал на него обзор).
Установка
Приложение Syntax Highlight является open source проектом (т.е. проектом с открытым исходным кодом), поэтому его можно установить несколькими различными способами:
- Самостоятельно скомпилировав из исходников, загрузив пакеты с репозитория разработчика.
- Установив через Homebrew Cask, выполнив следующую команду:
brew install --cask --no-quarantine syntax-highlight
- Загрузив готовый скомпилированный релиз (мы рассмотрим только такую установку).
Приступим! Для начала загрузим последний доступный релиз по этой ссылке тыц. Теперь нужно распаковать архив и распакованное приложение Syntax Highlight.app поместить в папку Программы. Нужно иметь ввиду, что скомпилированное приложение не подписано цифровой подписью доверенного разработчика и, соответственно, не прошло проверку на подлинность. Поэтому при первом запуске система может выдать предупреждение о невозможности проверить программу на наличие вредоносного программного обеспечения. Решить эту проблему можно несколькими способами (о которых я подробно рассказывал здесь), но для начала попробуйте просто щелкнуть правой кнопкой мыши (или удерживая клавишу Control ⌃) на значке приложения и в контекстном меню выберите Открыть, а затем, в появившемся окне с предупреждением, снова Открыть. После первого успешного запуска программы в Системных настройках появится новое расширение – Syntax Highlight Quicklook Extension – его нужно активировать. Для этого переходим в → Системные настройки… → Конфиденциальность и безопасность → Расширения → Быстро просмотреть (в macOS до версии 13 Ventura это находится в → Системные настройки… → Расширения → Quick Look):
Здесь ставим “флажок” напротив Syntax Highlight Quicklook Extension и на этом установка окончена:
Настройки
Главное окно программы является основным окном настроек приложения. Оно лаконичное, достаточно продуманное и имеет множество различных параметров, связанных с отображением кода в окне предпросмотра Quick Look. Здесь можно выбрать движок рендеринга, цветовые схемы, шрифты, способы отображение и переноса строк, размер табуляций и задать максимальный размер окна предпросмотра Quick Look. Подробно разбирать настройки в данном обзоре я не буду – всё подробно описано в документации автора на GitHub.
Сам же предпросмотр Quick Look выглядит так:
Syntax Highlight распространяется в надежде на его полезность, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Developed by sbarex with ❤️.