lervag / vimtex

VimTeX: A modern Vim and neovim filetype plugin for LaTeX files.
MIT License
5.51k stars 389 forks source link

Slow syntax with package fontawesome5 #2580

Closed kiryph closed 1 year ago

kiryph commented 1 year ago

Description

When loading the fontawesome5 package in a LaTeX file, syntax highlighting becomes very slow (e.g. cursor becomes laggy in normal mode).

Use :syntime on and view full report with :redir > report.txt, :syntime report and :e report.txt.

Workaround in init.lua (neovim):

vim.g.vimtex_syntax_packages = {
  fontawesome5 = {load = 0},
}
:syntime report (first 200 of 1889 lines; github has 65536 characters limit) ``` TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 0.010004 1452 0 0.000138 0.000007 texLigature \v%(``|''|,,) 0.006592 1452 0 0.000060 0.000005 texMathZoneLI \%(\\\@\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{image\} 0.004032 1452 0 0.000099 0.000003 texCmdFontawesome \v\\faSalesforce>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{salesforce\} 0.003987 1452 0 0.000100 0.000003 texCmdFontawesome \v\\faFilm>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{film\} 0.003984 1452 0 0.000133 0.000003 texCmdFontawesome \v\\faUserShield>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{user-shield\ 0.003976 1452 0 0.000099 0.000003 texCmdFontawesome \v\\faStripeS>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{stripe-s\} 0.003960 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faSortAmountUp\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{sort-amount-up\} 0.003958 1452 0 0.000061 0.000003 texCmdFontawesome \v\\faCompress>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{compress\} 0.003956 1667 685 0.000141 0.000002 texComment %.*$ 0.003944 1452 0 0.000103 0.000003 texCmdFontawesome \v\\faGooglePlus>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{google-plus\ 0.003919 1452 0 0.000062 0.000003 texCmdFontawesome \v\\faHandshakeSlash>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{handshak 0.003917 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faBabyCarriage>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{baby-carri 0.003914 1452 0 0.000050 0.000003 texCmdFontawesome \v\\faCalendar>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{calendar\} 0.003908 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faPray>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{pray\} 0.003891 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faSellsy>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{sellsy\} 0.003891 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faRedditSquare>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{reddit-squ 0.003890 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faCloudsmith>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cloudsmith\} 0.003886 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faCoffee>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{coffee\} 0.003885 1452 0 0.000105 0.000003 texCmdFontawesome \v\\faProductHunt>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{product-hun 0.003877 1452 0 0.000094 0.000003 texCmdFontawesome \v\\faFileImage>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{file-image\} 0.003874 1452 0 0.000105 0.000003 texCmdFontawesome \v\\faOpenid>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{openid\} 0.003874 1452 0 0.000042 0.000003 texCmdFontawesome \v\\faLaughBeam>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{laugh-beam\} 0.003864 1452 0 0.000099 0.000003 texCmdFontawesome \v\\faEllipsisH>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{ellipsis-h\} 0.003863 1452 0 0.000049 0.000003 texCmdFontawesome \v\\faPrescriptionBottle>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{pres 0.003859 1452 0 0.000105 0.000003 texCmdFontawesome \v\\faChild>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{child\} 0.003857 1452 0 0.000097 0.000003 texCmdFontawesome \v\\faThumbsDown>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{thumbs-down\ 0.003856 1452 0 0.000056 0.000003 texCmdFontawesome \v\\faSortNumericDown\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{sort-numeric-dow 0.003849 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faCaretLeft>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{caret-left\} 0.003847 1452 0 0.000093 0.000003 texCmdFontawesome \v\\faGavel>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{gavel\} 0.003845 1452 0 0.000099 0.000003 texCmdFontawesome \v\\faCrutch>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{crutch\} 0.003843 1452 0 0.000042 0.000003 texCmdFontawesome \v\\faIcicles>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{icicles\} 0.003838 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faGoogleWallet>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{google-wal 0.003837 1452 0 0.000040 0.000003 texCmdFontawesome \v\\faRaspberryPi>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{raspberry-p 0.003834 1452 0 0.000058 0.000003 texCmdFontawesome \v\\faFrog>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{frog\} 0.003833 1452 0 0.000097 0.000003 texCmdFontawesome \v\\faCcPaypal>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cc-paypal\} 0.003828 1452 0 0.000056 0.000003 texCmdFontawesome \v\\faPiedPiperHat>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{pied-piper 0.003823 1452 0 0.000100 0.000003 texCmdFontawesome \v\\faFulcrum>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{fulcrum\} 0.003821 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faMicroblog>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{microblog\} 0.003820 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faLiraSign>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{lira-sign\} 0.003817 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faTradeFederation>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{trade-f 0.003814 1452 0 0.000061 0.000003 texCmdFontawesome \v\\faForumbee>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{forumbee\} 0.003813 1452 0 0.000082 0.000003 texCmdFontawesome \v\\faCalculator>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{calculator\} 0.003812 1452 0 0.000043 0.000003 texCmdFontawesome \v\\faBroadcastTower>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{broadcas 0.003812 1452 0 0.000046 0.000003 texCmdFontawesome \v\\faSkiing>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{skiing\} 0.003809 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faRssSquare>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{rss-square\} 0.003806 1452 0 0.000101 0.000003 texCmdFontawesome \v\\faDollyFlatbed>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{dolly-flat 0.003805 1452 0 0.000086 0.000003 texCmdFontawesome \v\\faHourglass>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{hourglass\} 0.003804 1452 0 0.000064 0.000003 texCmdFontawesome \v\\faChessKnight>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{chess-knigh 0.003803 1452 0 0.000096 0.000003 texCmdFontawesome \v\\faMapSigns>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{map-signs\} 0.003799 1452 0 0.000089 0.000003 texCmdFontawesome \v\\faAppStore>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{app-store\} 0.003799 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faYandex>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{yandex\} 0.003797 1452 0 0.000073 0.000003 texCmdFontawesome \v\\faBox>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{box\} 0.003797 1452 0 0.000073 0.000003 texCmdFontawesome \v\\faIoxhost>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{ioxhost\} 0.003795 1452 0 0.000096 0.000003 texCmdFontawesome \v\\faUserCheck>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{user-check\} 0.003795 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faInternetExplorer>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{intern 0.003794 1452 0 0.000064 0.000003 texCmdFontawesome \v\\faHippo>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{hippo\} 0.003794 1452 0 0.000066 0.000003 texCmdFontawesome \v\\faChartArea>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{chart-area\} 0.003790 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faBezierCurve>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{bezier-curv 0.003786 1452 0 0.000057 0.000003 texCmdFontawesome \v\\faGrinTongue>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{grin-tongue\ 0.003782 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faFigma>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{figma\} 0.003781 1452 0 0.000061 0.000003 texCmdFontawesome \v\\faJsSquare>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{js-square\} 0.003781 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faUmbrella>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{umbrella\} 0.003778 1452 0 0.000064 0.000003 texCmdFontawesome \v\\faUndo\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{undo\} 0.003773 1452 0 0.000056 0.000003 texCmdFontawesome \v\\faTractor>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{tractor\} 0.003773 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faPepperHot>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{pepper-hot\} 0.003773 1452 0 0.000051 0.000003 texCmdFontawesome \v\\faVirusSlash>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{virus-slash\ 0.003771 1452 0 0.000081 0.000003 texCmdFontawesome \v\\faNutritionix>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{nutritionix 0.003770 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faStudiovinari>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{studiovina 0.003768 1452 0 0.000059 0.000003 texCmdFontawesome \v\\faWpexplorer>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{wpexplorer\} 0.003768 1452 0 0.000105 0.000003 texCmdFontawesome \v\\faDemocrat>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{democrat\} 0.003766 1452 0 0.000069 0.000003 texCmdFontawesome \v\\faUserInjured>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{user-injure 0.003765 1452 0 0.000100 0.000003 texCmdFontawesome \v\\faTextHeight>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{text-height\ 0.003765 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faYarn>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{yarn\} 0.003764 1452 0 0.000089 0.000003 texCmdFontawesome \v\\faAlignCenter>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{align-cente 0.003763 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faOptinMonster>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{optin-mons 0.003759 1452 0 0.000056 0.000003 texCmdFontawesome \v\\faKey>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{key\} 0.003758 1452 0 0.000100 0.000003 texCmdFontawesome \v\\faCalendarCheck>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{calendar- 0.003756 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faDiceThree>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{dice-three\} 0.003755 1452 0 0.000039 0.000003 texCmdFontawesome \v\\faToriiGate>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{torii-gate\} 0.003755 1452 0 0.000056 0.000003 texCmdFontawesome \v\\faWeightHanging>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{weight-ha 0.003753 1452 0 0.000103 0.000003 texCmdFontawesome \v\\faBluetooth>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{bluetooth\} 0.003751 1452 0 0.000046 0.000003 texCmdFontawesome \v\\faSmile>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{smile\} 0.003747 1452 0 0.000040 0.000003 texCmdFontawesome \v\\faBicycle>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{bicycle\} 0.003742 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faEuroSign>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{euro-sign\} 0.003742 1452 0 0.000055 0.000003 texCmdFontawesome \v\\faGithub\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{github\} 0.003742 1452 0 0.000105 0.000003 texCmdFontawesome \v\\faPauseCircle>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{pause-circl 0.003740 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faShoePrints>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{shoe-prints\ 0.003739 1452 0 0.000059 0.000003 texCmdFontawesome \v\\faHeadset>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{headset\} 0.003739 1452 0 0.000099 0.000003 texCmdFontawesome \v\\faConciergeBell>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{concierge 0.003737 1452 0 0.000130 0.000003 texCmdFontawesome \v\\faFacebookF>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{facebook-f\} 0.003736 1452 0 0.000099 0.000003 texCmdFontawesome \v\\faPhoenixFramework>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{phoeni 0.003734 1452 0 0.000100 0.000003 texCmdFontawesome \v\\faTwitch>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{twitch\} 0.003732 1452 0 0.000097 0.000003 texCmdFontawesome \v\\faDeploydog>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{deploydog\} 0.003731 1452 0 0.000074 0.000003 texCmdFontawesome \v\\faHouzz>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{houzz\} 0.003731 1452 0 0.000066 0.000003 texCmdFontawesome \v\\faEdgeLegacy>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{edge-legacy\ 0.003729 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faSignOut\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{sign-out\} 0.003728 1452 0 0.000095 0.000003 texCmdFontawesome \v\\faFileSignature>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{file-sign 0.003728 1452 0 0.000046 0.000003 texCmdFontawesome \v\\faCartPlus>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cart-plus\} 0.003728 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faMonero>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{monero\} 0.003724 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faVolumeOff>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{volume-off\} 0.003724 1452 0 0.000085 0.000003 texCmdFontawesome \v\\faCoins>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{coins\} 0.003723 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faSplotch>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{splotch\} 0.003720 1452 0 0.000068 0.000003 texCmdFontawesome \v\\faAviato>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{aviato\} 0.003717 1452 0 0.000092 0.000003 texCmdFontawesome \v\\faFighterJet>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{fighter-jet\ 0.003715 1452 0 0.000097 0.000003 texCmdFontawesome \v\\faEnvira>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{envira\} 0.003714 1452 0 0.000061 0.000003 texCmdFontawesome \v\\faAngleDoubleDown>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{angle-d 0.003714 1452 0 0.000055 0.000003 texCmdFontawesome \v\\faPhone>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{phone\} 0.003712 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faBellSlash>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{bell-slash\} 0.003712 1452 0 0.000073 0.000003 texCmdFontawesome \v\\faArchway>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{archway\} 0.003708 1452 0 0.000043 0.000003 texCmdFontawesome \v\\faImages>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{images\} 0.003706 1452 0 0.000066 0.000003 texCmdFontawesome \v\\faLifeRing>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{life-ring\} 0.003705 1452 0 0.000067 0.000003 texCmdFontawesome \v\\faCss3\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{css3\} 0.003705 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faThemeco>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{themeco\} 0.003704 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faObjectGroup>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{object-grou 0.003701 1452 0 0.000064 0.000003 texCmdFontawesome \v\\faRenren>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{renren\} 0.003699 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faChessQueen>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{chess-queen\ 0.003699 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faSquareFull>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{square-full\ 0.003698 1452 0 0.000046 0.000003 texCmdFontawesome \v\\faTaxi>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{taxi\} 0.003696 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faFileContract>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{file-contr 0.003692 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faChessKing>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{chess-king\} 0.003692 1452 0 0.000076 0.000003 texCmdFontawesome \v\\faBatteryThreeQuarters>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{ba 0.003691 1452 0 0.000041 0.000003 texCmdFontawesome \v\\faGg>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{gg\} 0.003690 1452 0 0.000067 0.000003 texCmdFontawesome \v\\faHeadSideVirus>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{head-side 0.003689 1452 0 0.000038 0.000003 texCmdFontawesome \v\\faMercury>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{mercury\} 0.003689 1452 0 0.000100 0.000003 texCmdFontawesome \v\\faFileImport>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{file-import\ 0.003689 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faPoop>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{poop\} 0.003689 1452 0 0.000068 0.000003 texCmdFontawesome \v\\faMarsDouble>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{mars-double\ 0.003679 1452 0 0.000061 0.000003 texCmdFontawesome \v\\faCcAmazonPay>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cc-amazon-p 0.003679 1452 0 0.000044 0.000003 texCmdFontawesome \v\\faGit>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{git\} 0.003677 1452 0 0.000050 0.000003 texCmdFontawesome \v\\faList>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{list\} 0.003677 1452 0 0.000064 0.000003 texCmdFontawesome \v\\faFrownOpen>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{frown-open\} 0.003676 1452 0 0.000056 0.000003 texCmdFontawesome \v\\faSoundcloud>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{soundcloud\} 0.003673 1452 0 0.000059 0.000003 texCmdFontawesome \v\\faGrinWink>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{grin-wink\} 0.003672 1452 0 0.000065 0.000003 texCmdFontawesome \v\\faFastBackward>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{fast-backw 0.003668 1452 0 0.000059 0.000003 texCmdFontawesome \v\\faAngleDoubleRight>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{angle- 0.003666 1452 0 0.000058 0.000003 texCmdFontawesome \v\\faMailchimp>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{mailchimp\} 0.003665 1452 0 0.000043 0.000003 texCmdFontawesome \v\\faBlind>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{blind\} 0.003661 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faAngrycreative>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{angrycrea 0.003660 1452 0 0.000059 0.000003 texCmdFontawesome \v\\faWatchmanMonitoring>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{watc 0.003654 1452 0 0.000068 0.000003 texCmdFontawesome \v\\faSuperscript>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{superscript 0.003651 1452 0 0.000098 0.000003 texCmdFontawesome \v\\faReadme>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{readme\} 0.003650 1452 0 0.000046 0.000003 texCmdFontawesome \v\\faCalendarWeek>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{calendar-w 0.003646 1452 0 0.000053 0.000003 texCmdFontawesome \v\\faCreativeCommonsNcJp>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cre 0.003645 1452 0 0.000042 0.000003 texCmdFontawesome \v\\faMouse>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{mouse\} 0.003644 1452 0 0.000063 0.000003 texCmdFontawesome \v\\faSortAlphaDown\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{sort-alpha-down\} 0.003643 1452 0 0.000060 0.000003 texCmdFontawesome \v\\faUserTag>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{user-tag\} 0.003643 1452 0 0.000038 0.000003 texCmdFontawesome \v\\faRss>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{rss\} 0.003641 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faXing>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{xing\} 0.003638 1452 0 0.000062 0.000003 texCmdFontawesome \v\\faHireAHelper>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{hire-a-help 0.003638 1452 0 0.000049 0.000003 texCmdFontawesome \v\\faArrowCircleUp>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{arrow-cir 0.003637 1452 0 0.000062 0.000003 texCmdFontawesome \v\\faStrava>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{strava\} 0.003635 1452 0 0.000054 0.000003 texCmdFontawesome \v\\faPause>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{pause\} 0.003633 1452 0 0.000048 0.000003 texCmdFontawesome \v\\faMapMarked>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{map-marked\} 0.003632 1452 0 0.000043 0.000003 texCmdFontawesome \v\\faMemory>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{memory\} 0.003629 1452 0 0.000073 0.000002 texCmdFontawesome \v\\faToiletPaperSlash>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{toilet 0.003628 1452 0 0.000059 0.000002 texCmdFontawesome \v\\faCcStripe>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cc-stripe\} 0.003626 1452 0 0.000043 0.000002 texCmdFontawesome \v\\faBowlingBall>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{bowling-bal 0.003618 1452 0 0.000064 0.000002 texCmdFontawesome \v\\faShuttleVan>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{shuttle-van\ 0.003616 1452 0 0.000043 0.000002 texCmdFontawesome \v\\faMicrophone>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{microphone\} 0.003614 1452 0 0.000100 0.000002 texCmdFontawesome \v\\faLeaf>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{leaf\} 0.003610 1452 0 0.000064 0.000002 texCmdFontawesome \v\\faHooli>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{hooli\} 0.003610 1452 0 0.000057 0.000002 texCmdFontawesome \v\\faCloudSunRain>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{cloud-sun- 0.003609 1452 0 0.000061 0.000002 texCmdFontawesome \v\\faJedi>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{jedi\} 0.003609 1452 0 0.000093 0.000002 texCmdFontawesome \v\\faSortAmountDown>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{sort-amo 0.003607 1452 0 0.000117 0.000002 texCmdFontawesome \v\\faSortAlphaUp\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{sort-alpha-up\} 0.003604 1452 0 0.000040 0.000002 texCmdFontawesome \v\\faBehanceSquare>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{behance-s 0.003604 1452 0 0.000053 0.000002 texCmdFontawesome \v\\faPython>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{python\} 0.003602 1452 0 0.000059 0.000002 texCmdFontawesome \v\\faUserClock>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{user-clock\} 0.003599 1452 0 0.000062 0.000002 texCmdFontawesome \v\\faVoicemail>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{voicemail\} 0.003598 1452 0 0.000059 0.000002 texCmdFontawesome \v\\faStickyNote>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{sticky-note\ 0.003595 1452 0 0.000044 0.000002 texCmdFontawesome \v\\faStripe>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{stripe\} 0.003594 1452 0 0.000042 0.000002 texCmdFontawesome \v\\faCopy>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{copy\} 0.003591 1452 0 0.000041 0.000002 texCmdFontawesome \v\\faBlackberry>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{blackberry\} 0.003591 1452 0 0.000045 0.000002 texCmdFontawesome \v\\faFile>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{file\} 0.003590 1452 0 0.000061 0.000002 texCmdFontawesome \v\\faCreativeCommonsPd>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{creat 0.003587 1452 0 0.000043 0.000002 texCmdFontawesome \v\\faWaveSquare>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{wave-square\ 0.003582 1452 0 0.000060 0.000002 texCmdFontawesome \v\\faFistRaised>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{fist-raised\ 0.003582 1452 0 0.000041 0.000002 texCmdFontawesome \v\\faLuggageCart>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{luggage-car 0.003581 1452 0 0.000103 0.000002 texCmdFontawesome \v\\faDungeon>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{dungeon\} 0.003578 1452 0 0.000038 0.000002 texCmdFontawesome \v\\faDiagnoses>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{diagnoses\} 0.003578 1452 0 0.000054 0.000002 texCmdFontawesome \v\\faHospital>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{hospital\} 0.003577 1452 0 0.000095 0.000002 texCmdFontawesome \v\\faPlaystation>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{playstation 0.003577 1452 0 0.000061 0.000002 texCmdFontawesome \v\\faHryvnia>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{hryvnia\} 0.003577 1452 0 0.000062 0.000002 texCmdFontawesome \v\\faCreativeCommonsPd\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{creative-commo 0.003575 1452 0 0.000087 0.000002 texCmdFontawesome \v\\faRoute>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{route\} 0.003573 1452 0 0.000040 0.000002 texCmdFontawesome \v\\faPaypal>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{paypal\} 0.003573 1452 0 0.000074 0.000002 texCmdFontawesome \v\\faConnectdevelop>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{connectd 0.003573 1452 0 0.000101 0.000002 texCmdFontawesome \v\\faStarHalf\*|\\faIcon\*\s*%(\[%(regular|solid)])?\s*\{star-half\} 0.003568 1452 0 0.000036 0.000002 texCmdFontawesome \v\\faAngleRight>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{angle-right\ 0.003565 1452 0 0.000040 0.000002 texCmdFontawesome \v\\faDirections>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{directions\} 0.003564 1452 0 0.000029 0.000002 texCmdFontawesome \v\\faVolleyballBall>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{volleyba 0.003561 1452 0 0.000063 0.000002 texCmdFontawesome \v\\faArchive>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{archive\} 0.003561 1452 0 0.000053 0.000002 texCmdFontawesome \v\\faUsb>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{usb\} 0.003560 1452 0 0.000054 0.000002 texCmdFontawesome \v\\faUserPlus>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{user-plus\} 0.003560 1452 0 0.000063 0.000002 texCmdFontawesome \v\\faYoast>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{yoast\} 0.003558 1452 0 0.000061 0.000002 texCmdFontawesome \v\\faXRay>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{x-ray\} 0.003542 1452 0 0.000086 0.000002 texCmdFontawesome \v\\faStop>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{stop\} 0.003536 1452 0 0.000044 0.000002 texCmdFontawesome \v\\faDumbbell>\ze%([^*]|$)|\\faIcon\s*%(\[%(regular|solid)])?\s*\{dumbbell\} ```

Download full report: syntime.txt

Do you use a latexmkrc file?

no

VimtexInfo

System info:
  OS: macOS 12.6.1 (21G217)
  Vim version: NVIM v0.8.1
  Has clientserver: true
  Servername: /var/folders/2z/bljkcy1j2cbf7l9zf3dk0nqc0000gn/T/vimr_5E46FE94-9C53-4AF3-A633-BAA3BE4F79AE.sock

VimTeX project: pgfgantt-fontawesome5-milestones
  base: pgfgantt-fontawesome5-milestones.tex
  root: /Users/kiryph/Documents/pgfgantt-fontawesome5-milestones
  tex: /Users/kiryph/Documents/pgfgantt-fontawesome5-milestones/pgfgantt-fontawesome5-milestones.tex
  main parser: fallback current file
  document class: standalone
  packages: epstopdf-base expl3 fontawesome5 fontawesome5-generic-helper graphics graphicx ifluatex iftex ifthen keyval l3keys2e pgf pgfcalendar pgfcomp-version-0-65 pgfcomp-version-1-18 pgfcore pgffor pgfgantt pgfkeys pgfmath pgfplots pgfrcs pgfsys preview shellesc tikz tikz-dimline trig xcolor xkeyval xparse
  compiler: latexmk
    engine: -pdf
    options:
      -verbose
      -file-line-error
      -synctex=1
      -interaction=nonstopmode
    callback: 1
    continuous: 1
    executable: latexmk
  viewer: sioyek
  qf method: LaTeX logfile

Probably related issue

Conceal fontawesome5 (#2506)

lervag commented 1 year ago

I guess the solution here is to keep this package deactivate by default. I'm curious, though: do you use the conceal feature?

kiryph commented 1 year ago

do you use the conceal feature?

Currently not. However, I occasionally use conceal for equations.

I have noticed an issue when enabling the conceal feature with :set conceallevel=1. The fontawesome symbol is not visible and even a too large part of the text is completely hidden.

Consider this MWE:

\documentclass[margin=1cm]{standalone}
\usepackage{pgfgantt}
\usepackage{fontawesome5}

\newganttchartelement*{checkin}{
  checkin/.style={font={\faSignIn*}}
}

\newganttchartelement*{checkout}{
  checkout/.style={font={\faSignOut*}}
}

\begin{document}

hello \faImage

  \begin{ganttchart}{1}{12}
    \gantttitle{2022}{12} \\
    \gantttitlelist{1,...,12}{1} \\
    \ganttgroup{Group 1}{1}{7} \\
    \ganttbar{Task 1}{1}{2} \\
    \ganttlinkedbar{Task 2}{3}{7} \ganttnewline
    \ganttcheckin{}{4}
    \ganttmilestone{Milestone}{7}
    \ganttcheckout{}{10}\ganttnewline
    \ganttbar{Final Task}{8}{12}
    \ganttlink{elem2}{elem3}
    \ganttlink{elem3}{elem6}
  \end{ganttchart}
\end{document}

which shows as

Screenshot 2022-11-25 at 12 52 48

Notice in the lines after \newganttchartelement the completely hidden text except the closing }.

kiryph commented 1 year ago

I guess the solution here is to keep this package deactivated by default.

The default vim 9.0 & neovim 0.8.1 setting for conceallevel is 0, i.e. deactivated. So in this circumstance deactivating the part of this syntax for concealment is certainly sensible. Users who have activated conceal, the syntax enhancement could be activated as well.

Also extending g:vimtex_syntax_conceal for fontawesome5 would be a good idea with a note that slowdowns for fontawesome5 (and probably more) have been observed:

*g:vimtex_syntax_conceal*
  A dictionary for specifying which core conceal features to activate. This
  mostly implies concealing particular elements with a replacement unicode
  character. For more info, see |vimtex-syntax-conceal|. To disable all
  conceal features in one go, use |g:vimtex_syntax_conceal_disable|.

  The following keys are available:

    accents~
      Conceal accented characters, e.g. `\^a` --> `â`.

    ligatures~
      Conceal ligatures such as `\aa` --> `å` and `''` --> `“`.

    cites~
      Conceal LaTeX cite commands such as `\citet[...]{ref00}`. The conceal
      style is specified by |g:vimtex_syntax_conceal_cites|.

    fancy~
      Some extra fancy replacements, e.g. `\item` --> ○.

    greek~
      Replace TeX greek letter commands into the equivalent unicode greek
      letter.

    math_bounds~
      Conceal the TeX math bounds characters: pairs of `$` and `$$`, `\(` ...
      `\)`, and `\[` ... `\]`.

    math_delimiters~
      Replace possibly modified math delimiters with a single unicode
      letter. Modified means delimiters prepended with e.g. `\left` or
      `\bigl`. As an example, this will perform the replacement

        `\Biggl\langle ... \Biggr\rangle` --> `〈 ... 〉`

    math_fracs~
      Replace some simple fractions like `\frac 1 2` --> ½.

    math_super_sub~
      Replace simple math super and sub operators, e.g. `x^2` --> `x²`.

    math_symbols~
      Replace various math symbol commands to an equivalent unicode character.
      This includes quite a lot of replacements, so be warned!

    sections~
      Conceal `\(sub)*section` commands. The titles are replaced with Markdown
      style ATX headers, e.g.:

        `\section{Test}`    --> `# Test`
        `\subsection{Test}` --> `## Test`

    styles~
      Conceal the LaTeX command "boundaries" for italicized and bolded style
      commands, i.e. `\emph`, `\textit`, and `\textbf`. This means that one
      will see something like:

        `\emph{text here}` --> `text here`

This would allow users to have concealment for math but not for fontawesome5 symbols.

lervag commented 1 year ago

I've tried to improve the docs related to the conceal stuff. Please see :help vimtex_syntax_packages; you can now disable the fontawesome5 layer with

let g:vimtex_syntax_packages = {'fontawesome5': {'conceal': 0}}
lervag commented 1 year ago

Also extending g:vimtex_syntax_conceal for fontawesome5 would be a good idea with a note that slowdowns for fontawesome5 (and probably more) have been observed:

I instead extended g:vimtex_syntax_packages. The _conceal option is directed to the core part.

lervag commented 1 year ago

I have noticed an issue when enabling the conceal feature with :set conceallevel=1. The fontawesome symbol is not visible and even a too large part of the text is completely hidden.

Reproduced. Looking into it now.

lervag commented 1 year ago

I believe it is fixed now.

kiryph commented 1 year ago

I believe it is fixed now.

Yes, I can confirm this. Though my font does not have a symbol for \faSignIn* and \faSignOut* and shows a fallback symbol.

I instead extended g:vimtex_syntax_packages. The _conceal option is directed to the core part.

I can also confirm that the newly introduced option in g:vimtex_syntax_packages is helpful. Disabling concealment only for fontawesome5 with let g:vimtex_syntax_packages = {'fontawesome5': {'conceal': 0}} but concealment for other symbols active, does resolve this issue.

As always thank you very much.

lervag commented 1 year ago

Glad to hear it! :)