если добавить вот такое в z80asm.tmLanguage
Код:
		<dict>
			<key>begin</key>
			<string>(?=//\[).*</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>comment.line.asm</string>
				</dict>
			</dict>
			<key>end</key>
			<string>//]</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>comment.line.asm</string>
				</dict>
			</dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
			<key>comment</key>
			<string>Custom fold block</string>
			<key>contentName</key>
			<string>custom.fold.block.asm</string>
		</dict>
то блоки между //[ и //] будут "помечены" как custom.fold.block.asm регионы.

регионы можно фолдить используя, что-то типа view.fold(view.find_by_selector('custom.fold.block .asm'))

к сожалению пока не знаю как это подружить с фолдингом искаропки