I don’t know if I’m in some beta or something, but I do see that “code block” for my tasks and it works as a code block. Doesn’t seem to have specific language support, which is a bit of a bummer, but it does seem to be available now? Anyone else seeing the same?
You are not seeing things - they just added the <> code block functionality. It’s pretty basic but is there now.
You have been very helpful
Have a good day.
What a glorious day!
Very excited to see this finally implemented! ![]()
Code snippets still miss the syntax highlighting ![]()
Do you mean highlight errors in syntax based on the coding language used?
Understood, thanks for clarifying.
Having a better code snippet formatting is a big win I think, people have been waiting for years, I am not sure we’ll get syntax highlighting, which requires auto-detecting the language or having a dropdown to pick it, which seems far away from the kind of stuff Asana usually does. But that’s simply my humble opinion. It would be cool for sure
I do think it’s interesting they implemented code snippets without highlighting. I have to imagine that there are plenty of libraries (basically pre-made solutions for developers) for doing this already.
+1
Without it, it feels like asana is not meant for programmer teams ![]()
I’m so sorry for missing this thread to be able to update you all sooner! But I personally wrote a spec for this while I wait for a new PM who will own the Text Editor to join. I’ve created a task for myself to read through all 371 comments!
At a minimum we will deliver improvements to syntax highlighting in the next 3 months. But we’re also exploring going one step further and delivering a JIRA like experience for lite code editing via CodeMirror. If you’re reading this and would find value in it, can you please help share detail about your use case and anything else that would help me ensure the spec is what you all need?
I’d say Further Markdown Support first, and then add languages where you can indicate which language (optional) by naming it after the start of the code block, like obsidian does:
@Garrett_Knoll, for context, this is coming from someone who has to juggle thinking about things from a product, GTM, and sales engineering perspective.
I’d say leveraging ProseMirror’s ability to render an instance of CodeMirror as an embedded node is probably the right way to go here.
Functionally, it offers the most flexibility to any user who wants to use code blocks in task descriptions, comments, notes, and anywhere else we can invoke it.
Currently I just paste code from my clipboard because the ProseMirror code block can’t handle indenting much less intelligent indenting/dedenting…
Not to mention the perks of being able to benefit from bracket matching, autocomplete, multiple cursors, and code folding (which would be wonderful).
Syntax highlighting is great and all and would be more lightweight and easier to maintain from a resource perspective using a library like Highlight.js, but that’s not gonna be enough to get buy-in from dev teams to use Asana for product development/management.
Especially customers in the midmarket, enterprise, and F500 segments where there’s already separate budgets for different departments and teams for products like this.
You’ll have the marketers and ops folks using Asana and the engineers using JIRA if they’re masochistic or Linear if they want to enjoy life.
I don’t know what % of Asana’s individual user base are developers, software engineers/architects, PMs, etc. but I imagine it’s quite a bit less than other roles.
Building an experience that makes writing and documenting code easier as a first step would reasonably make it more likely that you’d increase buy-in and adoption from them, though.
Especially if they’re currently using JIRA because no one I’ve ever met or talked to actually wants to use JIRA. But maybe less so if they’re using Linear since it has all the other things that make life easier for engineers.
If you just want to make referencing code easier, yeah, just use a highlighting library.
But if you want to find white space and expand ARR within your existing enterprise segment, then I’d be thinking less along the lines of how to deliver a more “JIRA-like experience” and more along the lines of how to deliver a more Linear-like experience instead.
What I mean by that...
When I say a more Linear-like experience I’m thinking way beyond the scope of this FR. Think:
- native sprint/cycle management
- dedicated triage workflows
- faster task management through
- a robust command palette that can not only navigate but take action too[1]
- keyboard shortcuts for everything
- robust syncing with GitHub and Slack[2]
- an object model that supports how tasks get captured and how projects sometimes emerge from tasks instead of the other way around[3]
- ways to show, save, and work with things distributed across different teams, projects, etc.[4]
- an object model that can support how teams work[5]
And all the stuff their managers want like scatterplots, histograms, and cumulative flow diagrams with mean, median, and mode percentile lines for:
- cycle time
- lead time
- triage time
- item age[6]
I would weep and then start a riot if Linear ever got rid of that. ↩︎
Linear Asks is, hands down, the most delightful Slack app I’ve never had to pester people to use; they just do it willingly haha. ↩︎
You can’t, as far as I know, create a task without associating it with either a Project OR an Assignee. e.g., the “Create task” action button is disabled when using
TabQfor the quick add shortcut with a tooltip saying as much. You have to create the task first, then remove those associations to accomplish that, then save–er–favorite an advanced search to keep up with them. ↩︎Favoriting advanced searches sort of does this but they don’t support board view (just list/table and calendar); group by; sharing with a workspace (just the link); custom column ordering; column width changes that don’t reset on page reload; nor easily changing logic without having to re-favorite, rename, and delete the old version. And favoriting just isn’t the same as saving; both options exist in Linear. ↩︎
Sub-teams because portfolios just aren’t the same thing and sections within the curated work area of the Team object overview just feels hacky as a workaround. But I get Asana has their own opinions on the function of teams given they aren’t in the pyramid of clarity and the recent changes to how project ownership works (which I actually like). ↩︎
Which would require the status property of the custom task type object to start logging timestamps on change events like you currently do for the Sections object. PS - Just please never deprecate it on the Sections object. I depend on that to calculate flow metrics in Nave haha. ↩︎
You’ll have the marketers and ops folks using Asana and the engineers using JIRA if they’re masochistic or Linear if they want to enjoy life
![]()
@Skyler I really appreciate the level of detail you shared above! It’s been circulated with my team in helping us scope / validate our roadmap.



